堆叠分裂为什么致命
堆叠设备对外是一个逻辑实体,成员之间靠堆叠线缆交换控制信息。一旦堆叠链路全部断开,就会分裂成两台各自认为自己是主设备的机器:两边同时持有相同的管理地址、网关地址与 MAC,形成双主。后果是地址冲突、ARP 冲突、路由与生成树震荡,整片网络时通时断。MAD(多主检测)就是为了兜住这种情况:通过独立的检测通道发现分裂,让其中一侧进入恢复状态,牺牲一半接入保住另一半可用。
基本信息
| 适用平台 | 华为 iStack 的 MAD、H3C IRF 的 MAD;思科 StackWise 无对应概念 |
|---|---|
| 检测方式 | 华为支持 LACP MAD、直连 MAD 与中继 MAD;H3C 支持 BFD MAD 与 LACP MAD |
| 恢复动作 | 检测到双主后让一侧进入恢复状态,关闭业务口或整机禁用 |
| 权限要求 | 系统视图 / 全局配置模式 |
| 恢复操作 | 双主消除后需要人工把恢复状态的一侧拉起(如华为 mad restore) |
典型使用场景
- 双机柜堆叠:机柜间线缆意外断开时的兜底保护
- 堆叠链路维护:拔插堆叠线前确认 MAD 已配置并可正常工作
- 故障演练:模拟分裂验证恢复动作与业务影响范围
- 变更评审:堆叠扩容前核对 MAD 检测通道是否仍然完整
- 事故复盘:双主发生后确认 MAD 是否生效、恢复侧是否需要人工拉起
华为 VRP
华为 VRP
! LACP MAD:借助业务聚合口检测(无需额外连线)
[Huawei] interface Eth-Trunk 1
[Huawei-Eth-Trunk1] mode lacp-static
[Huawei-Eth-Trunk1] mad detect mode relay
<Huawei> display mad # 查看检测模式与当前状态
<Huawei> display interface Eth-Trunk 1 # 确认成员口与检测通道正常思科 IOS
思科 IOS
! StackWise 没有华为与 H3C 意义上的 MAD 配置
SW-CORE-01# show switch # 查看成员与主备状态
SW-CORE-01# show switch stack-ports # 确认堆叠链路是否双线冗余
! VSS 或虚拟化场景才有双主检测(dual-active detection)H3C Comware
H3C Comware
[H3C] vlan 100 # 专用检测 VLAN
[H3C] interface Vlan-interface 100
[H3C-Vlan-interface100] mad bfd enable
[H3C-Vlan-interface100] mad ip address 192.168.100.1 24 member 1
[H3C] interface GigabitEthernet1/0/48 # 检测链路
[H3C-GigabitEthernet1/0/48] port link-type trunk
[H3C-GigabitEthernet1/0/48] port trunk permit vlan 100
<H3C> display mad verbose检测方式与注意事项
| 方式 | 实现要点 | 注意 |
|---|---|---|
| LACP MAD(华为/H3C) | 借业务聚合口承载检测报文 | 上游设备需正确转发,检测通道不能与业务环共用 |
| 直连 MAD(华为) | 成员之间额外拉一条直连检测线 | 占用端口,布线需预留 |
| 中继 MAD(华为) | 通过中间设备转发检测报文 | 依赖中间设备,需放通指定 VLAN |
| BFD MAD(H3C) | 专用 VLAN 加三层接口,用 BFD 检测 | 检测 VLAN 必须专用,不能承载业务 |
| StackWise(思科) | 依赖堆叠链路冗余与自动合并 | 无独立 MAD 配置,靠物理冗余与快速合并 |
分裂发生后不要急于操作设备:先查 MAD 状态确认为什么分裂,再决定是恢复链路还是人工拉起。检测通道必须与业务隔离,占用业务 VLAN 或形成环路时,检测报文本身就可能引发二层问题。