TRILL技术白皮书

 

概述

1.1  产生背景

随着IT应用的快速增长,传统的数据中心正迅速扩大,随之也带来了各种各样的问题。比如硬件资源利用率低,数据中心的空间面临挑战,数据中心所消耗的能耗快速上升,管理成本的急剧增加。为了解决这些问题,服务器虚拟化技术应运而生。

服务器虚拟化把原来的多台运行单一应用的低利用率的服务器整合到一台服务器,安全可靠的使服务器达到很高的硬件利用率,减少了数据中心对物理服务器的需求,降低了数据中心所消耗的空间和能耗,同时支持快速统一部署服务器,降低了运行维护成本。

服务器虚拟化后,带来了对服务器动态迁移的需求,这需要灵活的二层网络支持;同时随着服务器数量的增加,网络范围也随之逐渐扩大,对带宽的要求也越来越高。

但传统的网络架构被设计为对静态应用提供高可用性,已无法满足诸如服务器虚拟化和大量弹性分布式应用等工业趋势所要求的,在物理数据中心区域动态移动的能力,以及提供支持任意带宽通信的高带宽的适应能力。

传统的二层网络使用STP协议来对网络进行管理。STP协议是用于在局域网中消除数据链路层物理环路的协议。运行STP协议的设备通过彼此交互信息发现网络中的环路,并有选择的对某些端口进行阻塞,最终将环路网络结构修剪成无环路的树型网络结构,从而防止报文在环路网络中不断增生和无限循环,避免设备由于重复接收相同的报文造成的报文处理能力下降的问题发生。

STP协议为了避免环路,对冗余链路进行阻断,不可避免的导致了链路利用不充分、非最优路径转发的问题;同时为了避免其链路拓扑变化引起广播风暴的可靠性差问题,必须通过三层网络进行网络分割,导致其实际组网规模受限;另外,由于所有终端的地址都要被学习在STP路径的所有交换机上,导致了STP网络中MAC地址学习泛滥。所以从以上角度考虑,二层网络一般被限制在一个小范围的区域内使用。

图1 传统的STP网络

 

尽管对于管理大型的数据中心来说,二层交换可以提供灵活的适应性,但相比于稳定、可扩展、高性能的三层路由解决方案来说,它也同时带来了上面所述的种种缺点。但三层路由解决方案配置复杂,网络缺少灵活性。相对于原始网络规划,其对现有数据中心的任何改变都是复杂的,需要很多配置并且具有不可复制性。这阻止了数据中心灵活的适应最近的虚拟化技术的要求。

TRILLTRansparent Interconnection of Lots of Links,多链路透明互联)技术是一种改变传统数据中心网络构建方式的新的技术创新。它把三层路由的稳定、可扩展、高性能的优点,引入了适应性强但性能受限、组网范围受限的二层交换网络,建立了一个灵活、可扩展、可升级的高性能的新二层架构。用户可使用采用TRILL技术的二层交换设备,构建大型的具有高性能、可扩展的灵活支持动态迁移的现代数据中心网络。

1.2  技术优点

支持TRILL协议的设备具有以下优点:

(1)      简化网络配置,减少了维护管理费用:

¡  从配置角度来说,H3CRB设备几乎是免配置的。实际上,除了TRILL使能命令外,唯一必须的配置只有端口类型配置(需要区分核心端口和边缘端口,核心端口连接汇聚层交换机,边缘端口连接终端设备),其余的参数均不需要进行优化调节,并且用于TRILL网络的RB设备路由地址Nickname也是被自动分配的。

¡  单一控制协议被用于单播转发、组播转发和VLAN减枝。相比于使用STP协议的传统网络,减少了管理配置工作。

¡  动态适应性。基于IP地址的网络设计对于服务器及服务的位置均实现做了各种假设。一旦其发生变化,就要进行复杂的重新分配。而基于TRILL的大二层网络充分利用了二层网络的优点,能够动态适应网络的变化。

(2)      基于被实际应用证明了的成熟的IS-IS技术提供:

¡  TRILL使用的控制协议建立在功能强大的ISIS路由协议基础之上,TRILL也天然继承了ISIS的快速收敛的特点和能用于大规模的业务环境的特点。TRILL协议完全使用了标准的IS-IS协议规范。

¡  通过引入类似IPTTL字段和RPF算法在数据转发平面进行环路避免和消除,有助于确保安全可靠的转发。

(3)      高效率和高性能:

¡  由于引入了三层路由的ECMPEqual Cost Multiple Path,等价多路径)特性,TRILL网络在任意两台RB设备间可以使用所有可用链路。

¡  通过控制协议计算出最短路径树,数据报文通过最短路径被转发到目的地。相对于STP协议,进一步减少了端点间报文交换的延迟。

¡  汇聚层设备不需要学习大量的终端设备MAC地址。

技术实现

2.1  概念介绍

·              RBRouting Bridge,路由桥):运行TRILL协议的设备称为RB,也写作RBridgeRB包含传统交换机的所有功能,同时又具有传统路由器的路由功能。根据RBTRILL网络中的位置,又可将其分为Ingress RBTransit RBEgress RB三种,分别表示报文进入TRILL网络的入节点、在TRILL网络中经过的中间节点以及离开TRILL网络的出节点

·              TRILL网络:由RB构成的二层网络称为TRILL网络。

·              System ID:是RBTRILL网络中的唯一标识,长度固定为6个字节。

·              Nickname:是RBTRILL网络中的地址,长度固定为2个字节。

·              DRBDesignated Routing Bridge,指定路由桥)IS-IS中的DISDesignated IS,指定中间系统)相类似,在广播网络中也存在一个DRB除了可以简化网络拓扑,DRB还负责为广播网络中各RB上的VLAN分配AVF和指定端口等。

·              AVFAppointed VLAN-x Forwarder,指定VLAN转发者)和指定端口:为了防止环路,广播网络上一个VLAN中的所有本地流量必须从同一RB上的同一端口出、入TRILL网络,该RB称为该VLANAVF,相应的端口称为指定端口。

·              LSPDULink State Protocol Data Unit,链路状态协议数据单元):简称LSP,用于描述链路状态并在邻居设备间进行扩散。

2.2  运行机制

RB通过运行自己的链路状态协议学习TRILL网络的拓扑,同时使用SPFShortest Path First,最短路径优先)算法生成从自身到TRILL网络的各个RB的单播路由转发表项以及组播路由转发表项。当一台RB接收到普通以太网数据帧时就查找本地MAC表,若存在,同时该MAC源发自某TRILL网络中的某边缘RB,就将数据帧转换成TRILL 数据帧按单播路由转发表项在TRILL网络里转发;如果RB接收到的普通以太网报文的目的MAC在其MAC表中不存在,或此报文为广播或组播报文,就将数据帧转换成TRILL数据帧按组播路由转发表项在TRILL网络里转发。当报文转发到TRILL网络出口时由出口RB设备对报文进行解封装,还原成最初进入TRILL网络的以太网数据帧,再进行转发。

图2 TRILL网络的封装与转发

 

为解决环路问题,TRILL协议在TRILL报文头中增加了TTL字段,这样TRILL报文在TRILL网络中转发过程中即使遇到环路也不会造成严重后果。

上面介绍了TRILL协议的基本原理,下面将对TRILL控制协议与数据转发的原理分别进行介绍。

2.2.2  TRILL控制协议原理

TRILL将路由协议IS-IS的设计思路引入到二层技术中,同时对IS-IS进行了必要的改造,形成TRILL IS-IS协议。在组网方面,TRILL网络的核心设备为RB,众多RB组成TRILL网络。RB之间通过运行TRILL IS-IS协议来感知整个TRILL网络的拓扑,每个RB使用SPF算法生成从自身到TRILL网络中其他RB的路由转发表项,用以完成数据报文的转发。

1. Nickname的获取

为了节省TRILL头空间和简化转发查找过程,RB之间需要运行一个动态的Nickname获取协议,该协议用于为RB选择2字节的Nickname。该Nickname在整个TRILL网络中唯一,是RBISIS ID的简写。2字节的Nickname用于在TRILL头中指明入口和出口RB设备。

每个RB必须保证自己的Nickname是全网唯一的,RBNickname信息在LSP中携带,通告给全网其他RB,每个RB接收到其他RBLSP时需要进行Nickname的冲突检测,如果冲突发生,按照持有Nickname的优先级、System ID的顺序进行比较。有较高优先级的RB或在优先级相同时System ID较大的一方保留Nickname,另一方需要重新生成Nickname

2. DRB的选择

IS-IS DIS的概念类似,TRILL IS-IS也需要在广播网络上选取一个DRB用来创建和更新伪节点,并负责生成伪节点的LSP。为了避免环路,TRILL DRB除了具有三层IS-IS DIS的功能外,还有负责为每个VLAN分配一个RB负责转发该VLAN报文,即指定AVF

DRB选举过程如下:一个RB的端口up后默认自己为DRB,直到收到其它更高优先级的RB发送的TRILL Hello报文;一个RB的端口在长时间没有收到DRBTRILL Hello报文时,重新将自己视为DRB。选举时机和IS-IS一样,在使能后的两个Hello报文间隔开始选举,以保证邻居关系稳定。

IS-IS DIS选举不同,TRILL DRB的选举仅仅依赖于优先级和MAC地址,与双向链接无关(RB 1收到RB 2TRILL Hello,但该报文的邻居列表中不存在RB 1)。此做法是为了保证一个链路上只能选择出一个DRB,避免环路的产生。但RB在通告其LSP时,其邻居列表仅包括存在双向链接的RB邻居。

3. AVF的选择与抑制

为避免环路,一个链路上只能有一个RB负责某一VLAN报文的转发,对于转发者的指定由DRB来完成。DRB选举完成后,DRB会为每个VLAN指定一个RB作为该VLAN的转发者(AVF),负责该VLAN下报文的转发。AVF信息在DRB发送的Hello报文中携带,各RB设备通过接收DRBHello报文来了解AVF信息的变化。由于网络振荡有可能会存在多个RB作为同一个VLANAVF的情况,为避免环路的发生,当RB检测到此中冲突时需要进行AVF抑制,详细描述如下:

RB发现链路上的根桥发生了变化(STP BPDU报文触发),需要对自己作为AVF的所有VLAN自我抑制一段时间。启动抑制后不再转发本地报文,抑制期间如果收到了DRBHello报文携带AVF变化信息,就会更新本地的转发VLAN列表,结束抑制。如果没有收到AVF变化信息,抑制期满后,结束抑制,恢复对原VLAN本地报文的转发。

VLAN-xAVF收到其他RB发送的宣称是这个VLANAVFHello报文(AF位为1),且是在VLAN-x上收到的(或这个报文原本是在VLAN-x上发送的,这是存在VLAN映射的情况下),需要对自己在VLAN-x上进行抑制。即RB需要在自己的转发VLAN集合中去掉VLAN-x,将VLAN-x存入被抑制VLAN集合中。停止转发VLAN-x本地报文。同时启动时间长度为5Hello报文间隔(长度只要大于DRB发送Hello报文的间隔就可以)的定时器。如果抑制过程中收到了DRBHello报文携带VLAN-xAVF变化信息,本RB不再作为被抑制的VLAN-xAVF,则直接从转发VLAN中删除VLAN-x,并删除抑制定时器;当抑制定时器超时后,抑制VLAN集合中还存在这个VLAN,就重新恢复对VLAN-xAVF角色。

4. 多端口识别

对于有多个端口位于同一链路上的RB来说,会收到DRB的对某VLAN指定AVF的同一Hello报文,但如果这多个端口都使能了该VLAN,则必须指定其中一个为该VLANAVF以避免环路,所以需要根据在不同端口上收到相同伪节点的Hello报文来判断这些端口接入同一个链路并认为它们属于同一个端口组,在收到指定AVFHello报文时,只选择其中一个端口作为该VLANAVF

5. 转发表项的生成

TRILL转发表项分为以下两种:

·              单播转发表项:用于已知单播报文的转发。

·              组播转发表项:用于组播、广播和未知单播报文的转发。

对于单播转发表项,每个RB在其生成的LSP中都会携带Nickname信息。计算单播转发表项时,每个RB以自己为根,使用SPF算法计算最短路径树,然后根据最短路径树和每个RBNickname信息生成单播转发表项。单播转发表项支持ECMP,用于出口RB相同的单播流量的负载分担。

对于组播转发表项,每个RB在其生成的LSP中都会携带Nickname及其作为树根的优先级、组播计算能力、AVF、组播路由器和组播接收者信息。每个RB根据收到的所有LSP中的Nickname作为树根的优先级进行排序,计算指定个数的组播树:组播数的个数由Nickname作为树根优先级最高的RB决定,但不能超过每个RB可以计算的组播树的能力最小值。

计算组播转发表项时,每个RB以指定的树根为根,使用SPF算法计算最短路径树,然后根据最短路径树和每个RBAVF、组播路由器和组播接收者信息生成组播转发表项。

组播转发表项的内容主要有一个标识和一个端口列表:该标识用于说明当前RB的本地网络中是否存在接收者,如果存在的话需要将收到的TRILL数据报文解封装;端口列表中存在一个或多个端口,在每个端口的下游RB的本地网络中都存在该报文的接收者。

2.2.3  TRILL数据转发原理

TRILL协议被设计用于把三层路由的稳定性、可扩展性和高性能引入二层网络。

传统以太网报文进入TRILL网络被转发时,在原有报文前添加了一个TRILL头和外层以太头,在TRILL网络中转发时使用TRILL的路由信息进行转发。报文到达目的RB后被解封装,最终通过原始的以太网报文头进行普通的交换处理。根据使用的转发表项不同,TRILL网络中的数据报文分为已知单播报文和组播报文(由于组播、广播和未知单播报文在TRILL网络中的转发机制相同,因此本文中将这三种报文统称为组播报文)。

第一次转发某一目的MAC的单播报文时,由于MAC表中没有记录该目的MACRB的对应关系,该报文将使用组播转发表项按照未知单播报文进行转发。在Egress RB处,RB会学习源MACIngress nickname的对应关系。所以经过一次报文交互后,Ingress RBEgress RBMAC表中记录了相关的目的MACRB的对应关系,后续的报文就使用单播转发表项按照已知单播报文进行转发:将目的MAC对应的RBNickname添加到TRILL头中的Egress RB字段中,将本RBNickname添加到TRILL头中的Ingress RB字段中,M值设置为0。已知单播报文转发时,首先查看Egress RB是否为当前RB,如果是则对报文进行解封装;否则根据Egress RB查找单播路由表及其关联的下一跳表,更新外层以太头中的目的MAC新为下一跳RBMAC)和源MAC(更新为当前RBMAC),从指定接口发送出去。在转发过程中只修改TRILL头中的Hop Count字段。4详细说明了已知单播报文的转发处理流程。

图3 以太网中的TRILL数据报文格式

 

图4 已知单播报文的转发

 

当需要使用组播树转发的报文(包括未知单播报文、广播报文和组播报文)到达Ingress RB时,会根据一定规则(比如按照VLAN进行负载分担)选择使用的组播树根,封装TRILL报文:将树根的Nickname添加到TRILL头中的Egress RB字段,将本RBNickname添加到TRILL头中的Ingress RB字段中,M值设置为1。对于组播报文,外层以太网头的目的MAC固定为All-RBridges01-80-C2-00-00-40),源MAC在每个经过的RB上被更新为当前RBMAC。组播报文转发时,按照优先级的顺序先以RBVLANMACkey,再以RBVLANkey,最后以RBkey查找组播转发表项,按照表项中的端口列表进行报文转发(需要排出源端口)。如果查找的组播转发表项存在Egress标识,则还需要将该报文解封装,转发到本地网络中。5详细说明了组播报文的转发处理流程,假设树根为RB 2RB 3的本地网络中存在接收者。

图5 组播报文的转发

 

TRILL网络和传统以太网最基本的不同在于:在TRILL网络中,报文始终使用目的路由地址在核心网中进行路由转发。和三层IP网络需要配置IP地址、网关等复杂配置不同,TRILL网络中设备的路由地址会被自动协商分配,并且最终会根据TRILL网络中所有RB设备的路由地址计算出一个路由表用于单播和组播报文转发。TRILL网络把三层路由机制引入二层网络后,既提供了二层网络的简单性和灵活性,又具有了三层网络的稳定性和可扩展性。

H3C实现的技术特色

支持TRILL协议的H3C数据中心交换机是构建易管理可扩展高性能的新一代数据中心网络架构的基础。其通过H3C独有的IRFIntelligent Resilient Framework,智能弹性架构)专利技术,结合TRILL协议来构建一个高性能的网络系统。用于帮助客户简化和扩展其数据中心基础设施。基于支持TRILL协议的H3C数据中心交换机构建的TRILL网络能在任意设备的任两个端口之间提供最优的带宽和等价路径。而且,基于最新技术构建的网络架构不受传统二层网络的大小限制,从理论上来说几乎可以无限扩展。

典型组网应用

4.1  数据中心大二层组网应用

由于STP协议的限制,规模较大的数据中心一般被分为多个子网。6的数据中心A包括两个子网,子网通过三层路由协议和数据中心网络互通。如果要对子网接入数据中心的上行链路带宽进行扩展,可以采用H3CIRF技术(该技术允许每个接入交换机冗余连接到一对聚合交换机,而无需依赖于STP协议来消除环路和进行负载均衡),但IRF可以堆叠的数量毕竟有限,子网内接入交换机过多,则上行链路必然成为瓶颈;同时子网内的接入交换机由于STP协议的限制,也只能被限制在一定规模,无法大规模扩展;各子网接入的主机由于涉及到三层复杂配置,也无法灵活动态迁移。

图6 传统的数据中心网络

 

7所示的数据中心B基于TRILL协议提出了一种新的数据中心设计方案。在新方案中,虽然电缆布局完全不同,但实际上使用了和6中数据中心A相同数量的链路和交换机。在数据中心B中,每个接入交换机通过单一的上行链路连接到多个汇聚层交换机上。在接入层交换机和汇聚层交换机相连端口所构成的TRILL网络中运行TRILL协议,通过TRILL协议消除多个冗余链路导致的环路,并进而提供多路径等价路由特性,提供了IRF特性之外的更灵活的对接入网的带宽扩展能力;消除了原有的多个子网的设计,使多个跨三层的二层网络变成一个大的二层网络,提供了灵活的服务器迁移能力。

图7 采用TRILL协议的数据中心网络

 

新的TRILL架构带来下面的各种优点:

(1)      配置简单

在数据中心A中,每台交换机处于不同的角色,需要不同的IRFSTPIP地址和路由配置。

在数据中心B中,依赖于TRILL技术,每台交换机不再要求如此复杂的配置。

(2)      动态移动

在数据中心A中,接入交换机被分成多个区域,彼此只能通过三层进行通信。服务器被静态分配到某个区域中,在区域间移动服务器从可管理性上来说是相当复杂的。

在数据中心B中,接入交换机彼此二层可达,这使管理简化和虚拟机移动非常容易和快速。服务器不再必须从物理上驻留于某个区域中。

(3)      高带宽

在数据中心A中,每台接入交换机使用40G的带宽连接到相同区域中的对端实体。但访问其它区域中的实体时,所有接入交换机共享一个受限的上行带宽。

在数据中心B中,每台接入交换机可以使用自己的40G带宽,尽可能的利用最短路径和等价路由,去和网络中的任何实体进行通信。

(4)      可靠性

在数据中心A中,一台汇聚层交换机的宕机减少了被影响的接入交换机的50%可用带宽。

在数据中心B中,一台汇聚层交换机的宕机只减少了被影响的接入交换机的25%可用带宽。

4.2  高性能计算组网应用

用于高性能计算的数据中心被设计出来以便于所有服务器彼此能利用最小的负载进行通信。在传统的基于STP协议的数据中心网络,由于要接入重要的南/北向吞吐率,三层边界通常被指定在STP根桥附近。然而,因为传统网络最终根据STP路径转发流量,这意味着在任意两个桥设备间即使存在多条可用链路,最终也仅仅能有一条链路能够用于流量转发。而横向的东西向流量典型的具有更高的负载。这个约束严重限制网络的双向带宽。

TRILL引入了三层路由的ECMP技术消除了STP网络的这种限制。如8所示。

图8 基于TRILL技术的计算网络

 

在每个接入交换机上,上行链路连接到16个不同的汇聚层交换机,提供了相对于STP网络16倍的可用带宽。每个接入交换机的接入端口,能够通过这16个汇聚层交换机并行通达到网络中的任意实体。通过结合使用H3CIRF技术和最新的40G/100G技术,该网络的计算能力能被进一步扩展。

技术总结

二层网络的一些形式对于现代的高度虚拟化的数据中心来说仍然是必须的。然而,桥接网络的大小受限于传统的透明的桥接数据平面的一些约束。基于TRILL技术的采用了Comware平台的H3C系列网络产品把二层交换的灵活性和三层路由的高性能及可扩展性结合到一起,提出了一种简单的、可扩展和高性能的数据中心网络解决方案。

参考文献

·              RFC 6325Routing Bridges (RBridges): Base Protocol Specification

·              RFC 6326Transparent Interconnection of Lots of Links (TRILL) Use of IS-IS

·              RFC 6327Routing Bridges (RBridges): Adjacency

·              RFC 1195Use of OSI IS-IS for Routing in TCP/IP and Dual Environments

附件下载

联系我们