M-LAG(Multichassis Link Aggregation Group)的两大核心设计:DAD(Dual-active Detection)双主检测机制以及其独特的 二层/三层流量转发逻辑

M-LAG 的核心价值在于将两台物理设备虚拟化为一台,实现链路聚合的跨设备扩展。为了保证这种“虚拟化”不因控制平面故障而引发网络灾难,DAD 机制是其灵魂。


1. DAD(Dual-active Detection)双主检测机制

在 M-LAG 中,两台交换机(DFS Group)通过 Peer-link 同步状态。一旦 Peer-link 故障,两台设备会失去联系,此时会发生“双主冲突(Split-brain)”,导致 MAC 地址漂移和流量黑洞。

检测流程

DAD 是一种通过带外管理网口业务网口建立的独立三层心跳通道。

  1. 故障触发 :当 Peer-link 链路 DOWN 时,M-LAG 状态机立即触发 DAD 报文交互。
  2. 双主判定
  • 如果 DAD 心跳正常,且两台设备都认为自己是 Master,则说明 Peer-link 确实断了。
  • 备选(Slave)设备将执行 Error-down 动作 :立即关闭除保留端口(如管理口、Peer-link 口、堆叠口等)以外的所有业务端口。
  1. 单边转发 :此时,仅有主(Master)设备负责流量转发,从而彻底规避了因双主在线导致的物理环路和 IP 冲突。

2. M-LAG 双归接入时的流量转发逻辑

在双归接入(Active-Active)场景下,M-LAG 需要解决如何将流量均匀分布并防止环路的问题。

A. 二层流量转发(L2 Forwarding)

  • 已知单播(Known Unicast)
  • 上行 :接入设备通过标准链路聚合(Eth-Trunk)负载分担。
  • 下行 :M-LAG 两台成员交换机通过 Peer-link 同步 MAC 地址表。无论报文到达哪一台,由于两台设备对下挂设备拥有相同的虚拟系统 ID(System ID),均可直接转发。
  • BUM 流量(Broadcast, Unknown Unicast, Multicast)
  • 防环机制 :这是 M-LAG 的关键。为了防止环路,M-LAG 遵循 单向隔离机制(Local Preference)
  • 逻辑 :从 Peer-link 收到的 BUM 报文,严禁转发给该设备所连接的 M-LAG 成员端口。这意味着 BUM 流量只能由接收到的第一台设备直接转发给下游,不会通过 Peer-link 绕行后再向下转发。

B. 三层流量转发(L3 Forwarding)

在分布式网关场景下(通常结合 V-STP 或双活网关配置):

  1. 网关同步 :两台 M-LAG 交换机配置相同的虚拟 IP 和虚拟 MAC 地址。
  2. 就近转发(Local First)
  • 上行 :服务器将网关指向虚拟 MAC。由于两台交换机都拥有该 MAC,流量会按照 Eth-Trunk 算法随机进入某一台,并在本地完成三层解封装,通过本地路由上行。
  • 下行 :外部网络通过路由协议(如 OSPF/BGP)看到两台 M-LAG 交换机有相同的开销值,流量通过 ECMP(等价多路径)到达其中一台。

3. 技术细节总结与权威参考

根据华为 VRP 系统的最佳实践,M-LAG 的高效性源于其 控制平面独立 。相比于堆叠(iStack/CSS),M-LAG 在升级和故障隔离上具有显著优势:

  • 配置一致性检查 :M-LAG 会通过 Peer-link 自动检查两端 VLAN、LACP 模式等关键配置。如果不一致,端口将无法进入 M-LAG 状态。
  • STP 的角色 :在 M-LAG 环境中,通常建议配置 V-STP 。它让两台设备对外呈现为一个 STP 逻辑节点,从而欺骗接入侧交换机,避免其因检测到两台物理设备而阻塞链路。

专家提示:

在实际工程中,Peer-link 的可靠性是 M-LAG 成功的关键。通常建议将 Peer-link 配置为多条链路聚合(建议至少 20G 以上带宽),并且物理路径尽量冗余,以减少触发 DAD 的概率。