Administrator
Published on 2026-04-14 / 5 Visits
0
0

M-LAG简介和基本建立过程

一、什么是 M-LAG(Multi-Chassis Link Aggregation)


M-LAG(Multichassis Link Aggregation Group)即跨设备链路聚合组。M-LAG是将两台设备DeviceA和DeviceB与ServerA(可以是设备或主机)进行跨设备链路聚合,如同一台设备和ServerA建立了链路聚合关系,从而把链路可靠性从单板级提高到了设备级。

二、为什么需要 M-LAG

传统的聚合链路是单设备和单设备间的对接,若链路出现故障或者对端设备故障,设备或服务器将无法与对端设备继续进行通信。M-LAG的出现解决了上述问题,它是将M-LAG系统不同设备上的端口聚合到一个逻辑接口中,即使其中某台设备故障或其中一条聚合链路出现故障,也不会导致聚合链路完全失效,从而保证了数据流量的可靠传输。M-LAG在提升链路可靠性的同时还具备如下优势:

  • M-LAG系统的两台设备在逻辑上被虚拟成一台设备,它本身提供了一种没有环路的二层拓扑,逻辑组网更清晰,链路利用更充分。

  • M-LAG两台设备可以独立升级,实现效率高,业务秒级中断的目标。

因此,M-LAG主要使用在工业制造场景中造场景中,满足对组网可靠性要求高、对升级过程业务中断时间要求高的业务诉求。但是要注意M-LAG与传统园区场景中的堆叠等无法同时部署。

在传统网络中:

  • 单核心:❌ 单点故障

  • 双核心 + STP:❌ 有阻塞链路(带宽浪费)

M-LAG解决:

问题

传统方案

M-LAG方案

单点故障

无(双活)

带宽利用

一半(STP阻塞)

全部利用

收敛速度

慢(STP)

快(毫秒级)

可靠性


三、M-LAG基本建立过程

在M-LAG基本建立过程中,根据主备M-LAG成员口产生方式的不同,可将M-LAG工作模式分为2种:双活模式和主备模式。

3.1、双活模式

图1所示,在两台独立的设备DeviceA和DeviceB上,建立一个跨设备的Eth-Trunk与用户侧设备DeviceC的普通Eth-Trunk并通过M-LAG机制进行对接,共同组成一个M-LAG系统。双活模式下,DeviceA和DeviceB通过动态交换服务组DFS Group(Dynamic Fabric Service Group),进行M-LAG设备配对,协商出M-LAG主备设备和M-LAG成员口的主备状态,同时进行表项同步。DeviceA和DeviceB的直连链路为peer-link链路,用于交换协商报文及转发部分流量,peer-link口默认加入所有VLAN和BD。M-LAG成员口即DeviceA和DeviceB上连接用户侧DeviceC的Eth-Trunk接口,用于流量接入。

双活模式下,两条链路一方面可以起到负载分担流量转发的作用,一方面可以起到备份保护的作用。

图1 M-LAG双活模式基本拓扑

M-LAG的建立过程分为如下几个步骤:

(1)DFS Group配对

DFS Group是动态交换服务组,主要用于实现DeviceA和DeviceB设备之间的配对。当M-LAG两端设备完成配置后,设备首先通过peer-link链路(必须为聚合链路)发送DFS Group的Hello报文。当设备收到对端的Hello报文后,会判断报文中携带的DFS Group编号是否和本端相同,如果两台设备的DFS Group编号相同,则两台设备DFS Group配对成功。

(2)DFS Group协商主备

配对成功后,两台设备会向对端发送DFS Group的设备信息报文,设备根据报文中携带的DFS Group优先级以及系统MAC地址确定出DFS Group的主备状态。DFS Group的角色分为DFS主设备(M-LAG主设备)和DFS备设备(M-LAG备设备)。

以DeviceB为例,当DeviceB收到DeviceA发送的报文时,DeviceB会查看并记录对端信息,然后比较DFS Group的优先级,如果DeviceA的DFS Group优先级高于本端的DFS Group优先级,则确定DeviceA为DFS主设备,DeviceB为DFS备设备。如果DeviceA和DeviceB的DFS Group优先级相同,比较两台设备的系统MAC地址,确定系统MAC地址小的一端为DFS主设备。

注意:正常情况下,M-LAG主设备和M-LAG备设备同时进行业务流量的转发,转发行为没有区别,仅在故障场景下,主备设备的转发行为会有差别。

(3)M-LAG成员接口协商主备

在DFS Group协商出主备状态后,M-LAG的两台设备会通过peer-link链路发送M-LAG设备信息报文,报文中携带了M-LAG成员口的配置信息。在成员口信息同步完成后,确定M-LAG成员口的主备状态。

初始状态,M-LAG成员口的主备状态与M-LAG设备的主备状态一致,即:M-LAG主设备上的成员口为M-LAG主成员口,M-LAG备设备上的成员口为M-LAG备成员口。其他场景下,与对端同步成员口信息时,状态由Down先变为Up的M-LAG成员口成为M-LAG主成员口,对端对应的M-LAG成员口为M-LAG备成员口,且主备状态默认不回切,即:如果M-LAG成员口状态为主的设备故障,则对端对应的M-LAG成员口从备状态升级为主状态;当M-LAG成员口状态为主的设备故障恢复后,先前由备状态升级为主状态的接口仍保持主状态,恢复故障的M-LAG成员口状态为备。

注意:仅在M-LAG接入组播场景下,主备M-LAG成员口的转发行为存在差异。

(4)双主检测

协商出M-LAG主备设备后,两台设备之间会通过双主检测链路(心跳链路,又称为DAD link,是一条三层互通链路。)按照1s的周期发送M-LAG双主检测报文,当两台设备均能够收到对端发送的报文时,M-LAG系统即开始正常的工作。一旦设备感知peer-link故障,会在双主检测延时时间(缺省值为3s)后,按照200ms的周期发送三个双主检测链路报文进行加速检测,防止误触发双主加速检测,导致一端M-LAG设备端口被Error-Down。

正常情况下,双主检测链路不会参与M-LAG的任何转发行为,只在DFS Group配对失败或者peer-link故障场景下,用于检查是否出现双主的情况,所以即便双主检测失败也不会影响M-LAG正常工作。设备支持的双主检测链路部署方式具体如表1所示。

表1 双主检测链路部署方式

方式

说明

使用单独心跳线作为双主检测链路

推荐使用。

使用单独心跳线作为双主检测链路时,建议使用三层主接口作为双主检测链路接口,如果使用VLANIF接口,则需要保证peer-link接口不允许通过该VLAN,否则会有环路或MAC漂移的现象。

另外,为避免peer-link故障场景下,双主检测链路接口被Error-Down,需要配置peer-link故障场景下,双主检测链路接口不被Error-Down。

无单独心跳线,使用管理网口作为双主检测链路

推荐使用。

使用管理网口作为双主检测链路时,DFS Group绑定的管理网口IP地址要保证可以互通,管理网口下绑定VPN实例,保证双主检测报文与业务流量隔离。

无单独心跳线,使用业务接口作为双主检测链路

不推荐使用。

使用业务口作为双主检测链路时,需要关闭二次故障增强功能(即不能配置双主检测的peer ip-address参数),否则在peer-link故障场景下,会因一端M-LAG设备的业务口被Error-Down,进而产生Error-Down震荡。

注意:双主检测链路和peer-link链路不能共用,若双主检测报文通过peer-link链路转发,peer-link链路Down时,双主检测不能进行,无法触发一端M-LAG设备端口Error Down,可能会导致流量转发异常。

(5)M-LAG同步信息

正常工作后,两台设备之间会通过peer-link链路发送M-LAG同步报文实时同步对端的信息,M-LAG同步报文中包括MAC表项、ARP表项、ND表项等,发送M-LAG成员口的状态,这样任意一台设备故障都不会影响流量的转发,保证正常的业务不会中断。

3.2、主备模式

图2所示,在两台独立的设备DeviceA和DeviceB上,建立一个跨设备的Eth-Trunk与用户侧服务器Server并通过M-LAG机制进行对接,共同组成一个M-LAG系统。主备模式下,DeviceA和DeviceB通过动态交换服务组DFS Group,进行M-LAG设备配对,协商出M-LAG主备设备和选举出主备M-LAG成员口,同时进行表项同步。DeviceA和DeviceB的直连链路为peer-link链路,用于交换协商报文及转发部分流量,peer-link口默认加入所有VLAN和BD。M-LAG成员口即DeviceA和DeviceB上连接用户侧Server的主备网卡,用于流量接入。

主备模式仅适用于服务器主备网卡接入M-LAG场景,两条链路可以起到备份保护的作用,但没有负载分担的作用。正常情况下,仅主网卡对接的M-LAG设备收发流量,备网卡对接的M-LAG设备收到流量后,通过peer-link口绕行到主网卡对接的M-LAG设备;当服务器主网卡对接的M-LAG成员口状态变为Down时,流量从peer-link口引流到备网卡对接的M-LAG设备,流量通过备M-LAG成员口直接转发给服务器,完成快速切换,提高服务器主备网卡接入M-LAG场景下的故障切换性能。

图2 M-LAG主备模式基本拓扑

与双活模式类似,主备模式下M-LAG的建立过程也分为如下几个步骤:

  1. DFS Group配对

  2. DFS Group协商主备

  3. M-LAG成员接口选举主备

  4. 双主检测

  5. 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设备收到选主报文后,M-LAG备成员口也会升主。当服务器的主网卡故障恢复后,M-LAG成员口的主备状态默认不回切,主备状态是否回切,依赖于主网卡故障恢复后是否发送选主报文。如果故障恢复后的主网卡重新发送选主报文进行M-LAG成员口主备选举,则主备状态回切。

设备当前支持ARP、ND、IGMP、DHCP和MLD报文进行M-LAG成员口主备选举。

注意:主备模式下,M-LAG成员口的主备选举依赖选主报文上送CPU。为了使IGMP/DHCP/MLD报文上送CPU,需要先在VLAN或BD下开启IGMP Snooping功能,才可以支持通过IGMP报文进行主备选举;或者在全局下开启DHCP功能,才可以支持通过DHCP报文进行主备选举;或者在VLAN或BD下开启MLD Snooping功能,才可以支持通过MLD报文进行主备选举。另外,当M-LAG设备作为二层透传设备或二层网关时,ARP/ND报文不会上送CPU,无法通过选主报文进行主备选举,这种情况下需要在VLAN下开启ARP二层代答功能,在BD下开启ARP广播抑制功能或NS组播抑制功能,才可以支持通过ARP/ND报文进行主备选举。


Comment