什么是M-LAG ?
M-LAG(Multichassis Link Aggregation Group)提供一种跨设备链路聚合的技术。M-LAG通过将两台接入交换机以同一个状态和用户侧设备或服务器进行跨设备的链路聚合,把链路的可靠性从单板级提升到设备级。同时,由于M-LAG设备可以单独升级,保证了业务流量的稳定性,使得M-LAG技术在数据中心网络广泛应用。
PS:M-LAG 技术虽然大家都有,但各大品牌并不互相兼容。
为什么需要M-LAG
近几年来,M-LAG作为一项虚拟化技术被广泛使用,然而M-LAG技术的发展并非一蹴而就。
众所周知,传统的数据中心网络采用设备和链路冗余保证高可靠性。因其链路利用率低和网络维护成本高,数据中心交换机又提出了堆叠技术,将多台交换机虚拟成一台交换机,达到简化网络部署和降低网络维护的目的。
为了满足业务量增大和对网络更高可靠性的要求,于是出现了M-LAG虚拟化技术,通过多台设备间的链路聚合将链路的可靠性从单板级提高到设备级。
STP+VRRP技术
传统的数据中心网络采用STP+VRRP协议来保障链路冗余,满足了基本的可靠性需求。
STP+VRRP技术示意图
但STP+VRRP方案存在如下痛点,已无法满足数据中心流量和规模的快速增长。
-
STP的阻塞链路机制,导致二层链路利用率低。
-
VRRP的主备备份功能,导致三层链路利用率低。
-
Server仅支持以主备方式接入设备。
针对STP+VRRP方案的缺点,先后出现了堆叠和M-LAG虚拟化技术,用于满足业务量增大和对网络更高可靠性的要求。
堆叠和M-LAG虚拟化技术
堆叠和M-LAG实现跨设备链路聚合提高二层链路利用率,M-LAG的双活网关技术提高了三层链路利用率,且服务器可以通过链路聚合实现双活接入设备。
堆叠和M-LAG虚拟化技术示意图
M-LAG和堆叠都可以解决传统数据中心网络的问题,但从业务稳定性考虑,通常选择M-LAG。
堆叠和M-LAG作为广泛运用于数据中心网络接入层的两种横向虚拟化技术,他们都可实现终端的冗余接入,实现链路冗余备份,提高数据中心网络的可靠性和可扩展性。然而,与堆叠技术相比,M-LAG存在更高的可靠性和独立升级的优势。
对比了堆叠和M-LAG的优劣。针对升级过程业务中断时间要求高、对组网可靠性要求高的场景,我们推荐用户使用M-LAG技术,用作数据中心网络终端接入技术。
堆叠
和M-LAG的对比
如何实现M-LAG组网
在M-LAG系统中,ServerA、DeviceA和DeviceB进行跨设备链路聚合。DeviceA和DeviceB通过动态交换服务组DFS Group(Dynamic Fabric Service Group)完成M-LAG设备之间的配对,当DeviceA和DeviceB配对成功后会协商出主备关系。在M-LAG正常工作后,DeviceA和DeviceB之间通过peer-link链路实时同步对端信息。而M-LAG的故障检测则主要依赖于双主检测链路(DAD link,Dual-Active Detection link),设备通过双主检测链路定期互发心跳报文。
M-LAG组网示意图
M-LAG组网详细的实现流程包括以下五步:DFS Group配对、DFS Group协商主备、M-LAG成员口协商主备、双主检测和M-LAG信息同步。
M-LAG组网实现过程
M-LAG是如何工作的
M-LAG正常工作场景
-
已知单播流量转发
当M-LAG正常工作时,自用户侧发往网络侧的已知单播流量(图中绿色流量)由M-LAG主备设备形成逐流负载分担,共同进行流量的转发。反之,自网络侧发往用户侧的已知单播流量(图中黄色流量)同样由M-LAG主备设备形成逐流负载分担,共同进行流量的转发。
M-LAG已知单播流量转发示意图 -
组播、广播和未知单播流量转发
当M-LAG正常工作时,自用户侧发往网络侧的组播、广播和未知单播流量(图中黄色流量)在设备间泛洪扩散。对于可能造成的环路(图中红色),则利用M-LAG的单向隔离机制隔绝由peer-link发往M-LAG成员口的流量。反之,当网络侧发往用户侧的组播、广播和未知单播流量(图中绿色流量)在设备间泛洪扩散时,同样利用单向隔离机制隔绝由peer-link发往M-LAG成员口的流量。
M-LAG组播、广播和未知单播流量转发示意图
M-LAG故障工作场景
-
上行链路故障
M-LAG接入普通以太网场景,由于M-LAG主设备的上行链路故障,通过M-LAG主设备的流量均经过peer-link链路进行转发。M-LAG接入三层网络场景下,需要在M-LAG主备设备间配置三层逃生链路,使得到达M-LAG主设备的上行流量通过三层逃生链路到达M-LAG备设备。
当故障的上行链路恰好为双主检测链路,此时对于M-LAG正常工作没有影响。一旦peer-link也发生故障,M-LAG出现双主冲突,双主检测又无法进行,此时用户侧发往Master的流量会因为没有上行口而被丢弃。针对这个问题我们可以用管理口作为双主检测链路;也可以配置Monitor-link功能,将M-LAG成员口和上行口关联,一旦上行链路故障会联动M-LAG成员口故障,这样就防止了流量的丢失。
上行链路故障示意图 -
M-LAG成员口故障
当M-LAG成员口故障时,用户侧发往网络侧的流量(图中绿色流量)由正常链路负载分担转发,网络侧不感知故障,流量依然发送给双归设备。由于M-LAG成员口故障,双归场景变为单归场景,此时端口隔离机制放开。当M-LAG成员口故障设备收到从网络侧发往用户侧流量(图中黄色流量),会通过peer-link将流量交给正常工作的M-LAG设备转发到用户侧。
当M-LAG成员口故障恢复后,M-LAG成员口UP会触发一次M-LAG系统的MAC表项同步,单归场景恢复为双归场景,流量恢复负载分担转发。
M-LAG成员故障示意图 -
peer-link故障
M-LAG双归接入设备一旦感知peer-link链路状态为Down,会立即通过DAD链路发起一次双主检测。如果在一定时间内未收到对端发布的双主检测报文,则认为对端设备故障。如果收到对端发送的双主检测报文,则认为peer-link故障。
Peer-link故障时,两台M-LAG设备不能同时转发流量,若同时转发流量会出现广播风暴、MAC漂移等问题。因此M-LAG备设备会将除peer-link口、堆叠口和管理网口之外的所有物理接口Error-down。此时,流量都只会从M-LAG主设备转发。
Peer-link故障恢复后,peer-link接口UP,M-LAG系统将重新协商。协商完成后,为保障M-LAG的端口隔离机制生效,除M-LAG成员口以外的其他口恢复UP状态,而M-LAG成员口在4分钟后恢复UP状态。
peer-link故障示意图 -
M-LAG设备故障
M-LAG主设备故障,M-LAG备设备将升级为主,其设备侧Eth-Trunk链路状态仍为UP,流量转发状态不变,继续转发流量。M-LAG主设备侧Eth-Trunk链路状态变为Down,双归场景变为单归场景。
如果是M-LAG备设备发生故障,M-LAG的主备状态不会发生变化,M-LAG备设备侧Eth-Trunk链路状态变为Down。M-LAG主设备侧Eth-Trunk链路状态仍为UP,流量转发状态不变,继续转发流量,双归场景变为单归场景。
M-LAG设备故障恢复时,peer-link先UP,DFS状态重新协商,M-LAG成员口恢复UP,流量恢复负载分担。M-LAG主设备恢复后设备状态仍然为主,M-LAG备设备恢复后设备状态仍然为备。
M-LAG设备故障示意图
如何应用M-LAG技术
通过上文我们了解到M-LAG有负载分担流量和备份保护的作用,那么下面我们介绍M-LAG的应用场景。
M-LAG主要应用于将服务器或交换机双归接入二层网络、VXLAN网络和三层网络,以及多级M-LAG。
M-LAG双归接入二层网络
M-LAG双归接入二层网络时,需要将两台M-LAG设备模拟成同一个STP逻辑节点,达到与STP对接破环的目的。
我们可以通过手动配置双归设备为STP网络根桥或配置VSTP协议,将M-LAG两个设备模拟成一个STP节点。其中,VSTP协议的作用主要是在双归设备之间同步STP协议状态,将两台设备以同一个状态对外进行STP协商。
M-LAG双归接入二层网络示意图
M-LAG双归接入VXLAN网络
M-LAG双归接入VXLAN网络时,需要将两台M-LAG设备虚拟成一个VTEP。无论是手工建立隧道还是通过MP-BGP自动建立隧道,DeviceA和DeviceB均用这个虚拟的VTEP的IP和外界建立VXLAN隧道。
PS:VTEP IP地址需要在两台设备上都配置。
M-LAG双归接入VXLAN网络示意图
M-LAG双归接入三层网络
M-LAG双归接入三层网络时,M-LAG双归设备成为二层网络和三层网络的分界点,即承担网关的作用。由于是两台设备做网关,他们对网络侧需要展示相同的网关IP和MAC。在DeviceA和DeviceB上配置相同IP地址和虚拟MAC地址,达到相同网关的目的。
M-LAG双归接入三层网络示意图
多级M-LAG
在网络规模较大场景下,可以在Spine和Leaf同时部署M-LAG来保证链路可靠性。图中灰色底纹中的两台设备组成M-LAG。
多级M-LAG应用场景,不能使用手动配置根桥的方式来进行STP破环,需要通过VSTP协议来同步M-LAG双归设备的STP协议状态信息。
多级M-LAG网络示意图
防环机制-单向隔离机制
M-LAG本身具有防环机制,可以构造出一个无环网络。那么M-LAG是如何构造无环网络的呢?如下图所示,从接入设备或网络侧到达M-LAG配对设备的单播流量,会优先从本地转发出去,peer-link链路一般情况下不用来转发数据流量。当流量通过peer-link链路广播到对端M-LAG设备,在peer-link链路与M-LAG成员口之间设置单方向的流量隔离,即从peer-link口进来的流量不会再从M-LAG口转发出去,所以不会形成环路,这就是M-LAG单向隔离机制。
单向隔离机制-生效前提
当M-LAG两台设备协商出M-LAG主备后,系统通过M-LAG同步报文判断接入设备是否双活接入:
- 若接入设备双活接入M-LAG系统,则M-LAG两台设备下发对应M-LAG成员口的单向隔离配置,来隔离由peer-link口发往M-LAG成员口的流量。
PS:M-LAG防环机制中的单向隔离对二层(包括单播、组播、广播)流量生效,三层组播流量生效,三层单播流量不生效。
单向隔离机制实现原理
如下图所示,在设备双活接入M-LAG场景下,设备会默认按下列顺序下发全局ACL配置:
- Rule1:允许通过源端口为peer-link接口,目的端口为M-LAG成员口的三层单播报文;
- Rule2:拒绝通过源端口为peer-link接口,目的端口为M-LAG成员口的所有报文;
设备通过匹配ACL规则组来对实现peer-link接口与M-LAG成员口之间的单向隔离,隔离由peer-link接口发往M-LAG成员口的广播等泛洪流量。当M-LAG设备感知到本端的M-LAG成员口状态为Down时,会通过peer-link发送M-LAG同步报文,通知对端设备撤销自动下发的相应的M-LAG成员端口的单向隔离ACL规则组。
参考
https://info.support.huawei.com/info-finder/encyclopedia/zh/M-LAG.html
[https://support.huawei.com/enterprise/zh/doc/EDOC1100138437/8cad2ccf]