基于二层多路径技术的数据中心网络

时间:2022-08-13 09:08:36

基于二层多路径技术的数据中心网络

摘 要:随着信息化企业的不断推进,省级数据中心的规模越来越大,使用以往的二层和三层技术进行组网便暴露出了一些问题。本文在分析这些问题的基础上,介绍了二层多路径技术,并对FabricPath的运行模式和配置进行了阐述。

关键词:二层多路径;FabricPath;TRILL;STP

随着大量业务集中部署、大型ERP项目开展和信息化企业不断的深入,目前省级公司的数据中心规模也越来越大,选择何种技术才能建成高效、稳定、经济的数据中心网络,成为摆在信息化工作者面前的重要课题。

本文首先分析了目前数据中心通过二层和三层技术组网存在的问题,然后以TRILL协议为例阐述了二层多路径技术的基本原理,最后介绍了思科二层多路径技术(FabricPath)运行模式和基本配置。

1 目前数据中心组网技术存在的问题

当前大部分的数据中心网络都是按照标准的层次化理念建设的,分为接入层、汇聚层和核心层。接入层和汇聚层之间为二层链路,三层网关设在汇聚或核心,这种模式因为部署简单、接入层设备不需要复杂的配置、大部分的网络策略只要在汇聚层集中部署就能分发到全网等优点,在过去很长一段时间被大规模采用[1]。但是随着数据中心规模越来越大,甚至数据中心机房位于多个不同地点时,这种部署方式就暴露出了许多问题,归纳起来主要有以下几点。

1.1 生成树协议(STP)带来的问题

目前信息中心所有二层链路上都运行STP,当任意两点间有一条以上路径可达时,STP会阻塞掉多余的路径,以保证两点间只有一条路径可达,从而防止环路的产生,如图1所示。

如果两台网络设备之间只有一条链路可行,其余的万兆交换机端口全被阻塞,不仅投资的浪费极大,也无法支持业务的快速扩展;其次,STP收敛速度较慢,当某条链路出现问题时一般需要30至50秒才能完成网络收敛,即时使用快速STP(RSTP)也需要数秒钟时间,多数实时业务承受不了这么长时间的网络中断;再次,当交叉链路数量增加时,要规划哪条链路该保留哪条链路该阻断会变得非常复杂。

1.2 三层网关带来的问题

当数据中心规模过大,或者数据中心机房位于多个不同地点时通常也可以通过设置三层网关来互联。在汇聚交换机或者核心交换机设置IP网关,通过三层路由将所有交换机连接起来,如图2所示。

三层互连方式是目前连接广域数据中心的主流方式,但是首先这种方法和二层网络相比,会导致数据中心之间数据交换能力下降;其次,如果采用动态路由协议,动态协议的行为往往难以预测,为了保证网络行为的可控性,每台交换机的路由策略都要经过仔细琢磨,这个工作量过于庞大,但如果采用静态路由,一旦后期需要改动某个地址段的范围,可能需要改写一大段接入换机的路由表,相关访问控制策略变动也极不方便;最后在今后的虚拟化环境中,二层网络才是虚拟机迁移的基础,虚拟化的最大特点是可以将业务动态部署到数据中心的任何计算资源上,如果这些计算资源(也就是服务器)被过多的三层网关隔离开来,也就失去了虚拟化的优势。

综上所述,数据中心未来的发展方向是自动化、虚拟化,而相关特性的实现离不开一个高灵活性、高效能、广泛部署的二层网络环境,但是因二层网络的转发机制较简单,无法实现多路径和最优路径,尤其是STP协议带来的收敛慢和需要阻塞链路的问题,使现有的二层技术又不适应数据中心大规模发展的需要[2]。因此,二层多路径技术就随之产生了。

2 二层多路径技术原理

目前致力于实现二层多路径的标准化组织主要有IETF和IEEE,两家的标准分别为TRILL(Transparent Interonnection of Lots of Links,多链接透明互联协议)和SPB(Shortest Path Bridging,IEEE 802.1aq,最短路径桥接协议)。二者的目标都是简化网络拓扑,在数据中心网络的边缘和核心之间形成网状网,都采用了IS-IS作为路由协议,两个标准都运行在2层上,实现方式大同小异。

本文将以TRILL为例,简单介绍二层多路径技术原理[3]。

2.1 单播数据帧的转发原理

本文将运行TRILL协议的交换机称之为RB,即具有路由转发特性的二层交换设备。RB通过运行自己的链路状态协议(通过IS-IS扩展的)认知整个网络的拓扑,并使用最短路径树算法生成从该RB到达网络里的各个RB的路由转发表,RB又通过ESADI(End Station Address Distribution Information,终端地址交互协议)交互学习各自的Mac地址。

这样RB就知道了终端Mac究竟属于哪个RB,RB接收到普通以太网数据帧时(这里专指802.1)查找Mac表,若该Mac源发自某RB,就将数据帧转换成TRILL数据帧在网络里转发,TRILL数据帧包含有源RB和目的RB的信息,而RB又有到达各个RB的路由信息,这样RB可以对TRILL数据帧进行转发,当一台RB接收到一个TRILL数据帧时,该数据帧的目的RB为其自身,则解封装TRILL报头,获得最初进入trill campus的以太网数据帧,再进行转发。

这也就是说TRILL作为二层转发技术,通过引入三层路由的链路状态发现协议将此前的二层交换机设备升级成了具备路由能力的交换机设备。

2.2 广播和多播数据帧转发原理

此类报文的处理正是二层链路协议的核心和重点,不合理或存在漏洞的二层链路协议会造成二层环路,纯802.1二层网络一旦出现环路将造成广播报文的激增,整网将处于瘫患状态,直到环路解除为止。

TRILL协议首先针对二层环路没有TTL的问题进行了改进,在TRILL报文头中引入了TTL字段,这样TRILL报文在网络中即使发生了环路问题也不至于造成严重的后果。

另外TRILL协议对多播及广播报文的转发设计了分发树(distribution tree)的多播转发行为,它的分发树类似于STP的生成树,也有一个类似于根桥的root bridge,与STP的生成树算法不同的是TRILL的分发树是从ISIS的网络拓扑中计算产生的,并为每一个VLAN生成一棵分发树,在发生VLAN变化或接口变化时,这种分发树的过程不需要额外的配置,完全是由RB自动完成的。当一台边缘RB收到一个某VLAN的广播帧或多播帧时,RB除了向自己的其它普通vlan口分发该数据帧外,还要封装该数据帧为TRILL数据帧,目的RB为该VLAN分发树的根桥,通过根桥将该数据帧扩散的与该VLAN相关的其它所有RB设备上。

3 FabricPath技术

思科公司在TRILL的制定过程中参与较深,并与2010年6月了FabricPath技术。虽然FabricPath是思科的私有解决方案,但可以看作一个“增强版的TRILL”,是TRILL的基本功能加上“基于会话的MAC地址学习”、“Vpc+”和“多重拓扑”等功能的合集。同时,思科了支持FabricPath的Nexus 7000板卡,并且承诺现有架构与TRILL标准兼容,当TRILL正式标准化之后,只需要升级现有设备的软件,就能够与标准的TRILL交换机互联互通。

3.1 FabricPath的技术目标

总体上说,FabricPath技术目标是在保证二层网络环境的前提下,修复现有二层网络的缺陷,主要实现有以下功能:

・ 实现两点间多条路径同时转发流量EMCP(Equal Cost Multi Pathing);

・ 自动发现,操作简单,类似IP网络的平滑扩展;

・ 高可用性,实现快速收敛,防止广播风暴;

・ 保持原有二层网络配置的简洁性;

・ 带宽的高扩展性,克服STP需要阻塞链路端口的弊端。

3.2 FabricPath技术的工作模式

如图3所示,数据帧在进入FabricPath网络时,会被打上新帧头,在FabricPath网络内根据帧头里的switch ID进行转发,离开Fabric Path网络时,脱去帧头,进入传统的以太网交换环境。要加入FabricPath网络,只需在交换机对应端口上启用FabricPath模式即可,所有的地址分配和路由策略都自动生成,无需繁琐的配置。

FabricPath帧结构中定义了一个数据帧的最长生存周期(TTL)字段,每当数据帧经过一台交换设备TTL就减一,直到TTL为零时,这个帧将被丢弃。TTL保证了数据帧不会在成环的链路中被无限次转发,从而使得二层环境不再需要运行STP协议,不再有链路被Block,这是实现两点之间多路径转发的基础。

图4是一个典型的FabricPath组网,汇聚设备同接入设备之间为FabricPath网络,FabricPath网络内没有运行STP,多条链路都能够转发数据。基于IS-IS的特性,FabricPath网络设备的switch ID可以动态修改,而不影响流量转发,当数据中心规模不断扩张时,可以利用FabricPath平滑地扩展其汇聚层,并在接入设备间实现最多16条二层多路径。

接入设备作为网关连接了传统以太网络同FabricPath网络,FabricPath网关上可以进行“基于会话的MAC地址学习”,只有那些目的地址为本地设备的数据帧的源地址会被放入网关的MAC地址表,其他数据帧的源地址以及广播帧的源地址都不会被学习,这就保证了边缘网关设备的MAC地址表里只保存与本地有会话关系的MAC地址,这个举措能够大大缩小虚拟化数据中心内接入设备的MAC地址表体积。

3.3 FabricPath的配置

FabricPath的配置较为简单,不需要手工进行IS-IS的 配置,只需输入“feature-set”关键字就会自动将FabricPath需要的多个Service同时打开(例如L2 IS-IS,LLDP等)。下面是一个进行FabricPath配置的简单示例。

N7K(config)# feature-set fabricpath

N7K(config)# vlan 10-19

N7K(config-vlan)# mode fabricpath

N7K(config)# interface port-channel 1

N7K(config-if)# switchport mode fabricpath

4 结论

当前数据中心的规模越来越大,对于虚拟化、自动化的特性需求越来越强烈,传统的二层、三层技术不再能满足其全部需求。在网络领域,二层多路径技术是一个显著的进步,正如笔者所介绍的,FabricPath简化了网络设计,提高了网络可扩展性和弹性。FabricPath网络不再需要运行生成树协议(STP),没有链路被阻断,大大增加了网络传输带宽,很好地支持了服务器之间迅猛增加的横向流量。同时,FabricPath能够实现类似三层的路由功能,支持二层网络的平滑扩展。

但是同时也要看到,目前二层多路径技术的标准还不统一,市场上支持该技术的设备较少(只有思科的N7000板卡)且价格较为昂贵,在部署实施时需要综合考虑今后该技术的兼容性和发展趋势。

[参考文献]

[1]李斌.拨云见日 FabricPath从交换到路由[J].弯曲评论网,2011.3.21.

[2]李智鹏.交换机新生[J].计算机世界,2011年第15期.

[3](美)Joe Touch.Transparent Interconnection of Lots of Links (TRILL):Problem and Applicability Statement.RFC 5556.2009.5.

上一篇:谈谈记忆单词的八种方法 下一篇:学生,并非如我们所想