2. MLAG基础原理与术语体系
MLAG(Multi-Chassis Link Aggregation,多机箱链路聚合)是数据中心接入层与汇聚层最常用的高可用技术之一。它的核心思想是:把两台独立的物理交换机“伪装”成一台逻辑交换机,让下游服务器或上游设备用一条跨设备的链路聚合(LAG)同时连接到这两台交换机。这样,服务器侧看到的是一个标准的 IEEE 802.3ad LACP 聚合口,而网络侧则由两台交换机通过内部链路协同转发,实现链路级和设备级的双重冗余。
理解 MLAG,关键不是记住配置命令,而是先建立一套清晰的术语体系。下面围绕 Peer-Link、Peer-Address、MLAG Domain、角色选举和一致性检查五个核心概念展开。
Peer-Link:MLAG 的“内部骨干”
Peer-Link 是两台 MLAG 交换机之间的一条或多条直连链路,通常由多个 40G/100G 端口组成一个 Port-Channel。它承担两类流量:一是 MLAG 控制协议报文(如 Arista 的 MLAG 协议、STP BPDU、LACP 报文等)的交互;二是当某台交换机上行链路故障时,跨设备转发的数据流量。因此 Peer-Link 必须是高带宽、低延迟的直连链路,不能经过中间设备。
在 Arista EOS 中,Peer-Link 通常配置为 Port-Channel,并显式指定为 MLAG Peer-Link。例如:
interface Port-Channel100
description MLAG-Peer-Link
switchport mode trunk
switchport trunk allowed vlan 10,20,30
!
interface Ethernet1/1
channel-group 100 mode active
interface Ethernet1/2
channel-group 100 mode active
!
mlag configuration
peer-link Port-Channel100
注意:Peer-Link 本身不参与普通业务流量的负载均衡,它的主要职责是控制平面同步和故障时的数据兜底。如果 Peer-Link 断开,两台交换机会进入“双主”状态,此时必须依赖 Peer-Address 和一致性检查来避免转发环路。
Peer-Address:控制平面的“心跳地址”
Peer-Address 是两台 MLAG 交换机之间用于建立控制平面会话的 IP 地址,通常配置在一个独立的 VLAN 接口上,该 VLAN 可以承载在 Peer-Link 之上,也可以走带外管理网络。Peer-Address 的作用是让两台交换机交换 MLAG 状态、角色信息、MAC 地址表同步和一致性检查结果。
在 Arista EOS 中,Peer-Address 通常这样配置:
interface Vlan4094
description MLAG-Peer-Address
ip address 10.255.255.1/30
!
mlag configuration
peer-address 10.255.255.2
peer-link Port-Channel100
Peer-Address 必须可达,且不能与业务 VLAN 混用。如果 Peer-Address 不可达,MLAG 会认为对端失效,从而触发角色重新选举或进入孤立状态。
MLAG Domain:逻辑交换机的“身份标识”
MLAG Domain 是一个逻辑概念,用来标识一对 MLAG 交换机所属的同一个逻辑交换机。同一对交换机必须配置相同的 Domain ID,不同对交换机之间必须使用不同的 Domain ID。Domain ID 通常是一个字符串或数字,例如:
mlag configuration
domain-id DC1-RACK01
peer-address 10.255.255.2
peer-link Port-Channel100
Domain ID 的作用是防止不同 MLAG 对之间误建会话。如果两台交换机 Domain ID 不一致,MLAG 会话无法建立,Peer-Link 也不会被激活。
主备角色选举:谁说了算
MLAG 的两台交换机在逻辑上是一台设备,但在控制平面上必须有一个“主”角色来负责生成树、LACP 等协议的决策。Arista EOS 使用一套基于优先级和 MAC 地址的选举机制:优先级数值越小越优先;如果优先级相同,则比较系统 MAC 地址,MAC 地址小的成为主设备。
角色选举的结果可以通过以下命令查看:
show mlag
show mlag config-sanity
在正常情况下,主设备负责响应 LACP 报文、处理 STP 根桥选举等;备设备则同步主设备的状态,并在主设备故障时接管。需要注意的是,MLAG 的主备角色与 STP 根桥角色是独立的,不要混淆。
一致性检查:防止“貌合神离”
MLAG 要求两台交换机在关键参数上保持一致,否则会出现转发异常。一致性检查主要覆盖以下方面:
- VLAN 成员关系:两台交换机上允许的 VLAN 列表必须一致,否则某些 VLAN 的流量可能只从一台设备转发。
- STP 配置:包括 STP 模式、优先级、端口开销等,必须一致,否则可能产生环路。
- MTU 和端口速率:Peer-Link 和成员口的 MTU、速率、双工模式必须匹配。
- LACP 参数:系统优先级、端口优先级、超时时间等必须一致。
- MLAG 成员口配置:同一 MLAG 组内的成员口配置必须对称。
一致性检查的结果可以通过 show mlag config-sanity 查看。如果出现不一致,MLAG 会阻止相关端口加入聚合组,或者将设备置为“孤立”状态,从而避免转发黑洞。
MLAG 的工作机制:从建立到转发
MLAG 的建立过程可以概括为:两台交换机通过 Peer-Link 和 Peer-Address 建立控制会话,选举主备角色,同步 MAC 地址表和 ARP 表,然后对下游设备呈现为一个逻辑交换机。当服务器发送流量时,如果目的 MAC 在本地 MAC 表中,则直接转发;如果不在,则通过 Peer-Link 转发到对端交换机,由对端查找并转发。
下面这张图展示了 MLAG 的核心组件与数据流关系:
从图中可以看到,Peer-Link 和 Peer-Address 是两条独立的逻辑通道:Peer-Link 负责数据兜底和控制报文,Peer-Address 负责会话建立和状态同步。两者缺一不可。如果 Peer-Link 断开但 Peer-Address 仍可达,MLAG 会进入“双主”状态,此时需要依赖 STP 或其它机制防止环路;如果 Peer-Address 断开,MLAG 会认为对端失效,备设备可能接管主角色。
工程实践中的关键判断
在实际部署中,判断 MLAG 是否健康,可以依次检查以下内容:
- 执行
show mlag,确认状态为active,且角色为primary或secondary。 - 执行
show mlag config-sanity,确认没有inconsistent项。 - 检查 Peer-Link 的 Port-Channel 状态,确认成员口全部
up。 - 检查 Peer-Address 的 VLAN 接口是否
up,且能 ping 通对端。 - 检查 MLAG 成员口的 LACP 状态,确认
show lacp neighbor中能看到对端系统 ID。
如果发现一致性检查报错,优先检查两侧的 VLAN 允许列表、STP 配置和 MTU 是否完全一致。很多看似复杂的转发问题,根源往往只是某一侧漏配了一个 VLAN。
总结来说,MLAG 的本质是“逻辑合一、物理分离”。Peer-Link 是内部骨干,Peer-Address 是控制心跳,Domain 是身份标识,角色选举决定谁主谁备,一致性检查则是防止“貌合神离”的安全阀。把这五个术语理解清楚,后续的配置、排障和优化就有了坚实的基础。