通过TRILL实现大二层扩展及多路径转发

网络 通信技术
TRILL(Transparent Interconnection of lots of links,多链路透明互联)是IETF为实现数据中心大二层扩展制定的一个标准,目前已经有一些协议文稿标准化,如RFC6325,6326,6327等等。

TRILL(Transparent Interconnection of lots of links,多链路透明互联)是IETF为实现数据中心大二层扩展制定的一个标准,目前已经有一些协议文稿标准化,如RFC6325,6326,6327等等。该协议的核心思想是将成熟的三层路由的控制算法引入到二层交换中,将原先的L2报文加一个新的封装(隧道封装),转换到新的地址空间上进行转发。而新的地址有与IP类似的路由属性,具备大规模组网、最短路径转发、等价多路径、快速收敛、易扩展等诸多优势,从而规避STP/MSTP等技术的缺陷,实现健壮的大规模二层组网。

一、 TRILL——实现二层多路径转发

TRILL标准涉及几个重要的概念:

Routing Bridge:路由桥,简称RBridge或RB,是支持TRILL功能的网络节点的统称,类似一个IP Router;

VLAN x Forwarder:VLAN X转发器,类似于VPN中的PE角色,基于VLAN来选举。主要功能是对用户侧的报文封装TRILL头送入TRILL网络进行转发或者将TRILL网络的报文解封装还原成用户侧的报文发送给用户;

Nickname:16bit长,类似于IP地址,是RB节点路由计算的基础。Nickname从Mac地址演变而来,因为Mac地址有48个bit,如果直接用于编码开销太大,而且表示的空间太大,因此从48bit缩减到16bit,64K范围。每个节点的Nickname各不相同,Nickname可以自动选举也可以手工配置,每个RB可以有多个Nickname。

“多路径”概念以往只用于IP转发。当两台路由器间存在多条等价转发路径(等价或非等价),路由器可根据路由协议的计算结果,将IP报文沿最短路径、并按照路径度量值,基于流的方式进行分担转发,由此可充分利用带宽资源。如果我们仔细回想一下我们交换机中最常使用的L2转发表,即MAC表,我们可以看到对于一个单播表项,其出端口只能是唯一的一个物理端口或者聚合端口,并不能同时有多个独立的物理端口,如果是那样的话,表项就变成了一个多播表项。也就是说MAC转发表天生不具备二层多路径能力。TRILL技术的出现并没有改变这种状况,而是通过隧道封装,将原本的二层MAC转发转换成一个类IP的三层路由转发,即TRILL技术将IP报文转发思路应用于以太帧转发,支持TRILL技术的以太网交换机被称为“RBridge(Routing Bridge)”。

由于RB要对用户侧的报文进行封装和解封装操作,我们可以通俗的将负责报文加封装/拆封装的端点设备称为Vlan X Forwarder,类似VPN中的PE。

路由器可通过链路状态路由协议计算相互之间的最短路径、等价多路径/ECMP,并在拓扑变化时更新转发路径。RBridge间通过类似IS-IS路由协议的链路状态控制协议TRILL IS-IS实现相互间最短路径和等价多路径的计算。TRILL IS-IS只计算RBridge间的拓扑,而不关心网络中两台主机间的拓扑(事实上,两台RB之间最常使用的拓扑是直连方式)。

为了实现上述的路由控制功能,需要在网络中为每个RB定义一个全局唯一的标识,由于Router ID已经被IP使用了,且其形式类似IP地址,考虑到TRILL IS-IS还是为L2服务,因此TRILL重新选择了一种新的ID,名字叫Nickname,用来标识每个RB设备。TRILL IS-IS计算的最后结果就是为了形成到不同Nickname的单播和组播转发表。

图1. RBridge对已知单播的转发

如图1所示,当单播以太帧通过位于TRILL网络边缘的Ingress RBridge进入TRILL网络时,原始帧头前被增加一个额外的“TRILL头”(类似IP报文头),其中包含Ingress RBridge Nickname和Egress RBridge Nickname,就像IP头中的源IP地址和目的IP地址。“TRILL头”前还要添加“Next-Hop头”(就像IP报文前的MAC头或PPP头),由此完成TRILL帧封装。此后,TRILL帧在RBridge间的转发过程就像IP报文在路由器间的转发过程。RBridge根据TRILL头中的Egress Nickname进行逐跳转发,Next-hop头在每一跳都要修改,而TRILL头中只有TTL值发生变化。RBridge间对TRILL帧实现最短路径转发和等价路径分担,避免了传统二层网络由于运行STP造成的链路阻塞问题。TRILL帧最终在TRILL网络边缘的Egress RBridge被还原成标准以太帧,并被送出TRILL网。

#p#

RBridge只需要知道到达下一跳RBridge的最优路径即可,无需知道如何到达目的主机。因此,只有Ingress/Egress RBridge需要使能传统的MAC地址学习(MAC表中区分从本地端口学到的MAC地址,以及从远端Egress RBridge上学到的MAC地址),而TRILL网络上的核心RBridge无需维护与主机相关的MAC表。另外,RBridge之间可以采用传统以太交换机互联,并且在BRridge与互联交换机可运行STP协议,但RBridge会终结STP实例,不会将BPDU通过RBridge扩散。

图2. RBridge对多目的帧的转发

如图2所示,对于多目的以太帧(广播、组播、未知单播)的处理,要求RBridge通过TRILL IS-IS的计算结果生成出多棵具有不同树根的分发树。多目的帧进入TRILL网络,由Ingress RBridge选择一颗分发树用于该帧在TRILL网的转发,并将树根RBridge Nickname作为“TRILL头”中的Egress RBridge Nickname。此后的处理过程与IP组播报文在组播路由器间的转发类似,每个RBridge只根据树根RBridge标识的分发树选择TRILL的复制和转发策略。

需要说明一点,由于TRILL技术定义了新的帧格式,所以传统的以太网交换机不能通过升级软件支持该特性,只有采用新款ASIC/NP芯片的以太网交换机才能支持TRILL转发。

二、 TRILL的局限

虽然TRILL具备明显的特点,但它也存在一些问题待解决。到目前为止,TRILL还在不断的标准化过程中,依旧有大量的草案在讨论中。其协议本身问题主要包括:

不支持大于4K的VLAN扩展能力。对于虚拟化多租户的云计算数据中心,往往有大于4K的VLAN隔离需求,而TRILL的支持能力依旧限定在4K以内,难以满足需求;

OAM支持能力弱;

由于TRILL多用于数据中心,RB之间多是直连组网,不跨越传统Ethernet网络,对于这种组网,TRILL的外层以太头封装显得多余,可以精简优化。

只支持Level0,没有Multi Level的机制;

没有考虑如何承载FCoE业务。

三、 TRILL的应用

TRILL在国内的应用目前还处于起步阶段。部分运营商、金融、大企业以及互联网公司用户已经开始在关注或者开始考虑TRILL技术。

TRILL的组网需要考虑下列因素:

收敛比大小

L3网关的部署位置

L3网关的负载分担方式

设备本身MAC/ARP表项的大小

具体到组网应用,按照部署场景列举如下几种组网类型:

1. 组网模型1:现有组网扩建TRILL域

leaf+aggregation+spine三层组网环境,L3网关在aggregation层,集中式L3网关

图3. 现有组网扩建TRILL域

组网说明(如图3所示):

在现有的POD基础上,横向扩展新的TRILL POD域,TRILL域的L3网关在aggregation层,向上和核心层通过路由协议对接;

为了解决leaf层的双活接入的问题,leaf节点支持N:1虚拟化,如H3C的IRF;

两个aggregation节点也做N:1虚拟化,以便免VRRP配置,实现L3转发的流量在网关的均匀分担;

由于现有商用ASIC难以支持在一个Pipeline中同时处理TRILL+L3,那么aggregation节点处如何实现TRILL+L3转发?

采用板卡代理的方式:将设备上TRILL和L3分开到两种不同的板卡上,然后在他们之间启用proxy代理,本质上是将原先一个芯片一个pipeline流程分解到两块芯片上分开执行,降低对芯片的要求。典型的如思科N7K上的M1/F1板卡组合;

#p#

采用1:N设备虚拟化方式,将一个设备虚拟成两个设备,其中一个虚拟设备运行TRILL,一个虚拟设备运行L3。两个虚拟设备通过外部连线连接,就像完全独立的两台设备之间互联一样(如图4所示)。例如采用H3C的MDC技术,或者思科的VDC技术。

图4. 通过设备1:N技术实现TRILL+L3

这种组网模型能在现有传统技术组建的数据中心网络基础上平滑扩建TRILL域,实现TRILL域内的VLAN跨机架二层连通。免STP,链路全活利用率高,高可靠。但其TRILL域规模有限,VLAN只能在POD内二层连通,无法跨POD;才外,集中的L3网关使得L3转发性能有限。

2. 组网模型2:新建TRILL核心实现VLAN跨POD联通

新建TRILL core,和L3 core并列

图5. 新建TRILL核心实现VLAN跨POD联通

组网说明(如图5所示):

在组网模型1的基础上,满足VLAN跨POD更大范围的二层联通需求;

为了不影响现有的组网,加入专门的TRILL核心,和现有的L3核心并列;

VLAN分本POD内的本地VLAN,如VLAN10,20,30,40和跨POD VLAN,如VLAN1000;

POD内本地VLAN之间的三层转发流量,比如VLAN10和VLAN20之间或者VLAN30和VLAN40之间,直接在本地的L3网关上进行转发(如图5中流量1所示);

跨POD VLAN的L2互通,通过TRILL进行,绕行TRILL core(如图5中流量2所示);

跨PODVLAN和本地VLAN之间的L3转发,需要绕行L3 core进行转发(如图5中流量3所示)。

这种组网模型可以在现有组网基础上平滑演进,实现VLAN跨POD联通。但跨POD VLAN L3网关目前只能位于某个POD的aggregation节点上,存在性能瓶颈。

3. 组网模型3:新建两层架构的TRILL网络

完全新建TRILL,采用leaf+spine两层结构,网关集中在Spine节点上

图6. 新建两层架构的TRILL网络

组网说明(如图6所示):

取消aggregation层,整个网络精简为两层;

#p#

网关在spine节点上,多网关负载分担,由于网关数量大于2个,此处可采用VRRPE,实现多网关负载分担和备份功能。图6中用蓝色箭头示出了不同的host发出的流量采用不同的网关MAC,转发到不同的网关节点上进行分担。

这种组网模型的两层架构更精简,低时延;VLAN可以在数据中心内任意位置部署;L3网关负载分担和备份;L2转发可以做到横向无收敛,扩展性好。但是集中式网关对于大型组网来如几千甚至上万台虚拟化服务器组网来说,一是ARP表项要求高;其次VRRPE的分担方式对域同一个host的流量不能分担。

4. 组网模型4:L3网关在leaf节点使能

图7. L3网关在leaf节点

组网说明(如图7所示):

对于L3转发要求不高的场合,可以采用在leaf边缘使能集中的L3网关功能;

Spine节点不再担当L3网关的功能,只执行TRILL转发功能,也不学习用户的MAC;

执行leaf功能的节点可以做N:1虚拟化,实现免VRRP配置和网关双活转发。

这种组网模型spine节点处流量实现了均匀的分担和备份,将leaf节点翻上去,相当于三层设备组部署TRILL(如图8所示),核心集中到一台逻辑设备上。对于spine节点,完全按照TRILL的多路径进行L3转发流量的分担,即使对于同一个host发出的不同的流量,也可以在spine节点之间进行分担,分担更均匀。但局限性体现在该组网只适合L3转发性能要求不高的场合。

图8. 三层设备部署TRILL网络

5. 组网模型5:在模型3的基础上采用分布式L3网关方式

图9. 分布式L3网关组网

组网说明(如图9所示):

leaf节点和core节点同时使能L3网关功能;

#p#

为保证leaf节点VLAN之间的联通性,整网所有网关设备之间配置一个共同的互通VLAN。等价于将所有的网关节点连接在一个广播网上;

各网关设备上可以配置静态路由,也可以配置动态路由协议,形成路由转发表;

本地VLAN的网关在各个leaf节点上,跨leaf节点的VLAN的三层网关在spine节点上;

同leaf本地VLAN之间三层转发流量如图9中蓝色线所示,不同leaf节点本地VLAN之间转发需要通过互通VLAN转接,如图9中红色线所示;

Leaf节点的本地VLAN和跨leaf节点的VLAN之间互通需要到spine节点上去转发,如图9中粉色线所示;

这种组网模型将原先通过spine节点转发的leaf本地VLAN的三层接口下移到leaf节点,减轻了spine节点的负担,降低了ARP表项需求;但配置相对复杂,需要引入互联VLAN实现各leaf节点的路由可达。

四、 结束语

通过以上这些组网模型的优缺点分析,可以看出在满足大二层扩展、链路利用率以及稳定性可靠性方面,TRILL已经表现出比传统STP技术的明显优势。

技术在不断发展,TRILL也在不断发展进步之中,这其中既包括协议本身的完善,也包括ASIC功能的不断完善。当前的TRILL解决方案并不是十全十美的,还有改进优化的余地。我们期望未来能获得更完美的TRILL组网方案,更好的满足用户的需求。

责任编辑:遗忘者 来源: 51CTO.com
相关推荐

2011-05-13 14:55:13

负载均衡网关数据中心

2013-01-17 16:11:11

数据中心交换机网络虚拟化

2013-10-14 13:22:43

TRILL大二层STP

2018-11-04 05:00:36

组网技术二层网络数据中心

2018-04-12 08:28:42

数据中心大二层网络服务器虚拟化

2018-11-27 13:42:23

数据中心大二层网络VXLAN

2019-05-21 13:52:20

虚拟化数据中心大二层

2015-01-26 14:35:22

数据中心迁移

2014-08-15 10:30:58

SCC 华为

2019-08-14 15:37:53

服务器虚拟化网络

2013-11-26 09:18:31

大二层扁平化数据中心SDN

2019-05-16 09:51:40

数据中心架构云计算

2018-10-30 13:10:34

ECMP技术数据中心网络

2021-01-20 08:16:06

异步Dotnet Core多路径

2011-04-13 13:56:00

组播CGMPIGMP

2010-01-04 14:00:30

三层以太网交换机

2011-06-22 10:28:53

TRILLVLAN数据中心

2024-10-15 11:06:08

2013-12-27 10:10:43

数据中心虚拟化大二层网络
点赞
收藏

51CTO技术栈公众号