APP下载

MLAG技术在数据中心双归属中的原理及应用

2019-11-16石瑞华

电子技术与软件工程 2019年20期
关键词:报文端口链路

文/石瑞华

1 引言

随着网络规模的不断扩大,对网络设备可靠性的要求也在不断提高。尤其是在数据中心的应用场景中,几乎所有的数据中心服务器都需要实现双归属,通过双网卡形成链路聚合,再分别双上联交换设备,以增强其可靠性。当任何一台上联交换机出问题,或者任何一个上联端口出问题,都能实现快速切换,业务上切换时间实现小于50ms,丢包达到最小化。

要实现双归属,最常用的技术手段包括堆叠技术和MLAG技术。

2 堆叠技术

堆叠技术,即Stacking技术,主要是将两台或者多台设备通过堆叠口按照一定的形式进行互联互通。比如最常用的就是总线型组网和环型组网,复杂的还有星型组网等。这些设备对外呈现出的是一台设备。也就是说,这些设备互联之后,就组合成了一台大型设备,每台设备只相当于这一台大设备中的一块子线卡。

所有的设备都可以实现数据转发功能。在这些设备中有一台主设备,主要负责控制层面的运算。另外还有一台备设备,主要负责控制层面的备份,以应对主设备的意外故障。除了上述主备两台设备之外,其他的设备都称为从设备,只负责数据转发,不负责任何控制层面的运算。所有的配置信息都需要从主设备进行下发,下发到包括主设备、备设备和众多从设备在内的所有设备上。总的来说,堆叠系统就是一主一备多从的设备,通过一定的互联互通方式,实现的设备虚拟化技术。

对于大部分数据中心的应用来说,高可靠性固然重要,但并不需要太多的设备来实现这样的可靠性。一般来说,数据中心服务器只需要通过双网卡来实现聚合口双归属即可,并不需要能支持多台设备的堆叠技术。而且,一般支持堆叠系统的设备实现复杂。除了堆叠系统本身之外,所有模块还都需要支持HA(High Available,高可用性集群),需要实现实时备份、批量备份和数据平滑。这样复杂的系统一般价格昂贵,性价比低,不是一般小型数据中心能够承担的。是否有一种轻量化的技术能用来替代堆叠系统呢,这就引出了本文要重点介绍的MLAG技术。

图1:MLAG技术示意图

3 MLAG技术

MLAG全称是Multi-Chassis Link-Aggregation,即跨设备链路聚合。MLAG通过把两台设备的相关端口配置到同一个MLAG组中,来实现跨设备的链路聚合。这是一种端口虚拟化技术。两台设备并未像堆叠一样合成一台设备,两台设备还是分别独立的设备,无需进行复杂的控制面备份,实现相对简单,目前已被广泛使用。

3.1 MLAG技术的基本原理

如图1所示,下面两台双网卡服务器分别通过两条链路直接连接到上面的两台交换设备,这两条链路之间通过静态聚合或者LACP(Link Aggregation Control Protocol,链路汇聚控制协议)形成链路聚合组,以实现增大带宽和链路备份的功能。这两台服务器完全不需要感知到上行链路是两台设备还是一台设备。

对于上面的两台MLAG交换设备来说,和下行设备连接的两个端口需要绑定到同一个MLAG组内,对外表现成同一个聚合端口。当然连接的端口也可以是多个端口,比如一边3个端口,一共6个端口形成一个MLAG组,对外表现成一个有6个成员端口的聚合组。

对于上面两台MLAG设备来说,还需要通过中间的一条设备间聚合链路连接在一起,这条链路一般称作Peer-link。Peer-link可以让两台设备互相感知对方的存在,互相发送一些控制面信息。例如之前提到的如果要配置成同一个MLAG组的不同端口,彼此需要感知到对方的存在,这就要通过中间这条Peer-link链路发送信息来实现。另外,在下行MLAG口DOWN掉的时候,Peer-link还需要负责一部分数据流量的转发。

MLAG两台设备之间通过TCP连接,可以通过系统MAC地址选举出一台主设备和一台备设备。这里的主备仅就控制层面进行区分,在数据层面两台设备是对等的,并无主备的区别。

3.2 MLAG对于单播数据报文的转发原理

MLAG对于单播数据报文转发的核心实现原理是,下联口无论从哪个方向学习到FDB(Forwarding DataBase,MAC地址转发表),均会通过Peer-link同步到对端设备,并且将出口填成在本设备上对应的MLAG口。这样来自上联口(或者其他下联口)的数据报文无论从哪台设备过来,都能查找到FDB表项进行二层转发,而且是本地转发,无需通过Peer-link。

当下行端口中的任何一个端口DOWN掉,系统需要把在这个口上学习到的FDB的出口全部切换成Peer-link,让对应的数据报文收到之后可以通过Peer-link转发到对端设备,以实现下行聚合口的不间断数据转发。当DOWN掉的端口恢复时,系统再把指向Peer-link的出口再次切换回正常的下行聚合口,报文又可以恢复本地转发。

值得注意的是,FDB的老化只能在学习到的设备上完成,另一台设备不能在同步来的表项上做老化处理,否则会引起两台设备表项的不一致。

另外,系统配置的MLAG聚合组可以和AGG(Aggregation,聚合)聚合组一一对应,每个AGG聚合组只能绑定到一个MLAG组中,一个MLAG组也只能被一个AGG绑定。

最后,如果交换设备上除了MLAG口之外,还存在其他的非MLAG口(一般称之为Orphan Port),那么系统也可以进行处理。处理方法是,将Orphan Port上学到的FDB通过Peer-link同步到邻居设备,在该邻居设备上将此FDB出口指向Peer-link。收到数据报文的时候,通过Peer-link将报文转发到拥有这个Orphan Port的设备上,进行正常转发。

3.3 MLAG对于广播数据报文的转发原理

对于MAC地址全F(全1)的广播报文以及未知单播报文,系统需要做VLAN内广播处理。由于两台设备上均存在VLAN成员端口,以及上面提到的Orphan Port的存在,所以广播报文需要通过Peer-link转发到邻居设备。

最关键的问题在于,如何避免两台设备上同一个MLAG组内的端口同时转发这个广播流量,造成下行设备上收到双份数据流。处理此问题的核心原则是,设备对于来自Peer-link的流量往下行MLAG成员口做端口隔离,即不允许来自Peer-link的流量走下行MLAG成员口。但隔离有个前提,就是这个被隔离的成员口所对应的在邻居设备上的成员口是UP的。这样就能有效的避免双分流的产生。

当MLAG成员口发生DOWN的时候,系统需要将邻居设备上的对应口上的隔离打开,这样广播报文就能顺利的通过Peer-link从对应的MLAG成员口上被转发出来。等DOWN掉的口恢复时,系统再将邻居设备上对应的MLAG成员口上的隔离关闭,以免双份流量的产生。

此隔离主要用于广播流量。对于单播流量,只要处理好FDB成员口的切换,让其在MLAG口没有DOWN的时候进行本地转发,而不要转到Peer-link上,就不会存在双份流的问题。

3.4 MLAG其他需要考虑的问题

在二层网络中,为了避免广播风暴,一般会使用STP(Spanning Tree Protocol,生成树协议)。STP协议通过BPDU(Bridge Protocol Data Unit,网桥协议数据单元)报文进行协议处理。MLAG环境下两台设备是独立的设备,互相之间不做协议同步,所以不能让两台设备分别计算。否则一旦两台设备计算结果不一致,会造成两台设备上的MLAG成员口一边被阻塞而另一边被打开,从而引起故障。此时一般的做法是不论哪台设备上收到BPDU报文,均送给主设备进行STP协议运算,由主设备算出结果,再将结果分发到备设备上。

细节上还有其他需要讨论的内容,限于篇幅本文就不做展开了。

4 小结

本文基于数据中心服务器双归属的实际应用场景,介绍了一种轻量化的端口虚拟化的MLAG技术,通过该技术可以很方便的做到跨设备的链路聚合,以解决数据中心服务器对于高可靠性的要求。

猜你喜欢

报文端口链路
家纺“全链路”升级
基于J1939 协议多包报文的时序研究及应用
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
端口阻塞与优先级
ATS与列车通信报文分析
初识电脑端口
8端口IO-Link参考设计套件加快开发速度
基于3G的VPDN技术在高速公路备份链路中的应用
高速光纤链路通信HSSL的设计与实现