闲话大二层网络(3)—如何实现真正意义上的大二层网络? 下载本文

闲话大二层网络(3)—如何实现真正意义上的大二层网络?

这一篇的内容会略长一些,各位读者做好心理准备。

如上一篇介绍的那样,传统的二层技术无法实现真正意义上的大二层网络。所以就要另外动脑筋来想办法。

幸好这个世界上聪明的脑袋是很多的,这些技术大牛们各显神通,在最近十来年的时间之间,提出了很多大二层网络的解决方案。归纳总结一下,大概有这么几个流派:

? ? ?

釜底抽薪派 移花接木派 瞒天过海派

1 釜底抽薪派

1.1 思想

釜底抽薪派解决大二层网络困境,还是从二层网络的核心问题着手。既然二层网络的核心问题是环路问题,那么解决了环路问题,就一劳永逸了。抽了“环路”的“薪”,那么因环路导致广播风暴的“火”也就烧不起来了。也就意味着,二层网络想做多大就可以做多大。

当然,要有效解决大二层环境中的环路问题,传统的xSTP技术行不通了(具体原因前一篇中已经分析过了)。幸好现在我们有了新的武器,那就是网络设备虚拟化技术。

所谓网络设备虚拟化技术,就是将相互冗余的两台或多台物理网络设备组合在一起,虚拟化成一台逻辑网络设备,在整个网络中只呈现为一个节点。

(这里的网络虚拟化技术特指多虚一的技术,另外也有一虚多的技术,比如华为的VS(Virtual System)技术,可以把一台网络设备虚拟成多台网络设备使用,这种虚拟化技术就有点和服务器的虚拟化比较相似,但是我们本文中不涉及这种虚拟化)

网络设备虚拟化再配合链路聚合技术,就可以把原来的多节点、多链路的结构变成逻辑上单节点、单链路的结构,环路问题也就无疾而终了。(上一篇中已经说明了,单节点、单链路的树型结构网络是没有环路问题的)

而且虚拟化技术和链路聚合技术都具备冗余备份功能,单台物理设备或者链路故障时,可以自动切换到其他物理设备和链路来进行数据转发,保证网络的可靠性。

以网络设备虚拟化+链路聚合技术构建的二层网络天然没有环路,其规模仅受限于虚拟网络设备所能支持的接入能力,只要虚拟网络设备允许,二层网络就可以想做多大就做多大。

1.2 技术

网络设备虚拟化的主要技术大致可以分为三类:框式设备的堆叠技术、盒式设备的堆叠技术、框盒/盒盒之间的混堆技术。有华为的CSS、iStack、SVF,CISCO的VSS、FEX,H3C的IRF等。具体的技术本文就不赘述了,后续会有相关文章详细介绍。

1.3 番外

但是网络设备虚拟化方案也有一定的缺点:

1)这些协议都是厂家私有的,因此只能使用同一厂家的设备来组网。

2)受限于堆叠系统本身的规模限制,目前最大规模的堆叠/集群大概可以支持接入1~2万主机,对于超大型的数据中心来说,有时候就显得力不从心了。但是对于一般的数据中心来说,还是显得游刃有余的。

2 移花接木派

移花接木派要解决的也是二层网络的环路问题,但是着眼点不是杜绝或者阻塞环路,而是在有物理环路的情况下,怎样避免逻辑转发路径的环路问题。

这一派的大牛们从三层网络的机制中找到了灵感。

2.1 思想

我们都知道,二层以太网的帧交换不能有环路,冗余链路必须阻塞掉。但是三层转发网络也是有环路的,为啥就没有这些问题呢?而且三层网络还可以利用冗余链路做ECMP。它们的区别在哪里?

其实原因很简单,因为三层网络比二层网络“聪明”!二层网络的设备说不好听一点,都是“近视眼”,只看到和自己相连的链路,不知道整个网络的拓扑结构,转发的时候只能通过大喊大叫来寻找目标(向除入端口之外的其他端口广播),这种喊话的声音来回传递就形成了广播风暴。

而三层网络就聪明智能得多了。三层网络是依靠路由协议来计算转发路径的。通过路由协议,各台路由设备就可以收集、扩散和更新彼此的路由信息,进而每一台设备可以知道全部或者局部网络的拓扑信息,所以在数据转发的时候,可以保证从某个主机发出的报文只会向着目标主机一路前进,而不会再返回前续节点而造成路径循环。

所以,移花接木派就想到了能不能把三层网络的路由转发方式引入到二层网络中来呢?事实上他们做到了。通过在二层报文前插入额外的帧头,并且采用路由计算的方式控制整网数据的转发,不仅可以在冗余链路下防止广播风暴,而且可以做ECMP。这样可以将二层网络的规模扩展到整张网络,而不会受核心交换机数量的限制。当然这需要交换机改变传统的基于MAC的二层转发行为,而采用新的协议机制来进行二层报文的转发。

题外话:有喜欢钻研的同学可能会疑问,那为啥当初二层网络不直接按照这种方式设计呢?而要设计成这样一个比较弱智的转发行为模式?说白了,时代的不同而已,那个时候的网络设备性能很低,要进行完整的路由计算,就要求网络设备具有很高的性能(所以那个时候路由器很贵的!),而那个时候的局域网又都不大,没有遇到像现在这种大二层的网络需求,所以弱智一点的转发行为更符合经济的原则。所以TCP/IP协议族就把拓扑发现定义在第三层。

当前的网络设备的性能已经不可同日而语了,以太网交换机完全有能力承担更复杂的路由计算,而且又有大二层这种明确的需求,所以三层路由方式控制二层网络转发行为就变得可行和合理了。

2.2 技术

通过路由计算方式进行二层报文的转发,需要定义新的协议机制。这些新的协议包括TRILL、FabricPath、SPB等。

2.2.1 TRILL和FabricPath

TRILL是IETF推出的标准协议,而FabricPath则是CISCO在TRILL推出之前推向市场的“Pre-Standard”技术,内容与TRILL 类似,包含了一些私有的增强性功能和特性,我们暂不用去理会,基本上可以认为TRILL和FabricPath是差不多的(当然封装格式啥的有点不太一样)。

说起TRILL,就不能不提它的首席发明者Perlman,这是一个传奇般的天才女人。前面我