交换机堆叠后链路聚合失败?多半是你忽略了这点

两台交换机做了堆叠,服务器用双网卡分别接在不同成员上,配置了Eth-Trunk,结果聚合不生效,甚至丢包严重!”

这是堆叠+链路聚合场景中的经典陷阱

很多人以为:只要交换机堆叠成“一台逻辑设备”,任何端口都能像单机一样做链路聚合——

但现实是:跨物理设备的聚合需要额外机制支持,否则可能引发环路、MAC漂移、流量单通等严重问题。

今天就带大家深入解析:

  • 为什么普通链路聚合在堆叠跨设备时会失败?
  • 华为/Cisco 如何正确配置跨设备链路聚合(M-LAG / vPC / Eth-Trunk)
  • 故障排查 checklist 一键定位问题。

交换机堆叠后链路聚合失败?多半是你忽略了这点一、问题根源:堆叠 ≠ 真正的单机

虽然堆叠(Stack)将多台交换机虚拟为“一台逻辑设备”,但每个成员仍保留独立的转发芯片和物理端口

当服务器双网卡分别连接不同物理成员时:

  • 若使用普通静态聚合(mode on)或LACP
  • 交换机无法感知“这两个端口属于同一服务器”,
  • 导致:
    • MAC地址在两个端口间来回漂移
    • 流量只走一个端口(未真正负载分担)
    • STP阻塞其中一个端口(形成逻辑环路)

交换机堆叠后链路聚合失败?多半是你忽略了这点⚠️ 典型现象:

  • display eth-trunk 显示端口状态为 Unselected
  • 服务器 iperf 测试带宽仅为单链路
  • 日志出现 %MAC/4/MFL(MAC Flapping)

二、正确方案:启用“跨设备链路聚合”技术

不同厂商对此有不同实现:

交换机堆叠后链路聚合失败?多半是你忽略了这点✅ 关键前提
必须使用厂商指定的跨设备聚合机制,不能直接用普通LACP!

三、华为堆叠环境下的正确配置(以S6730为例)

场景:

  • 两台S6730通过堆叠线连接,形成CSS集群
  • 服务器双网卡 → 分别接 SW1 的 G0/0/1 和 SW2 的 G0/0/1
  • 目标:实现20Gbps聚合带宽

正确配置步骤:

1. 确认堆叠已成功建立

display stack

输出应显示:

Stack mode: CSS
Stack topology: Ring
Member ID 1: Master
Member ID 2: Standby

2. 在逻辑设备上创建Eth-Trunk(无需区分物理位置)

interface Eth-Trunk 1
port link-type trunk
port trunk allow-pass vlan 10 20
mode lacp # 推荐使用LACP动态协商

3. 将不同成员的物理口加入同一个Eth-Trunk

# 成员1的端口
interface GigabitEthernet 1/0/1
eth-trunk 1
# 成员2的端口
interface GigabitEthernet 2/0/1
eth-trunk 1

关键点
华为堆叠(CSS/iStack)原生支持跨设备Eth-Trunk,只要堆叠正常,上述配置即可生效,无需额外命令

4. 服务器侧配置LACP(以Linux为例)

# /etc/network/interfaces
auto bond0
iface bond0 inet static
address 192.168.10.100
netmask 255.255.255.0
bond-mode 4 # LACP
bond-miimon 100
bond-slaves eth0 eth1

四、验证与排错

1. 检查Eth-Trunk状态

display eth-trunk 1

✅ 正常输出应包含:

Local:

--------------------------------------------------------------------------------
Port Status Weight

--------------------------------------------------------------------------------
1/0/1 Selected 1
2/0/1 Selected 1 ← 两个端口均为Selected!

❌ 若显示 Unselected,可能原因:

  • 堆叠未建立(检查 display stack)
  • 两端LACP模式不匹配(一端active,一端passive)
  • 物理链路速率/双工不一致

2. 检查MAC学习是否稳定

display mac-address | include <服务器MAC>

✅ 应只显示一条记录,且端口为 Eth-Trunk1

❌ 若显示两条(分别在G1/0/1和G2/0/1)→ MAC漂移 → 聚合未生效

3. 测试带宽(iperf3)

# 服务器 → 目标主机
iperf3 -c 192.168.10.200 -t 10 -P 4

✅ 应接近 2Gbps(双千兆)或 20Gbps(双万兆)

❌ 若仅为单链路 → 聚合未负载分担

五、非堆叠场景?用 M-LAG!

如果无法做堆叠(如距离远、型号不支持),华为提供 M-LAG(Multichassis LAG) 方案:

架构特点:

  • 两台独立交换机
  • 通过 peer-link 同步MAC/FDB表
  • 通过 DFS Group 实现控制面协同

配置要点(简化):

# 创建DFS Group
dfs-group 1
source ip 10.1.1.1
peer 10.1.1.2
# 配置peer-link
interface Eth-Trunk 10
trunkport GigabitEthernet 1/0/24
dfs-group 1 m-lag 10
# 服务器聚合口
interface Eth-Trunk 1
dfs-group 1 m-lag 1
port link-type trunk

M-LAG 更复杂,但适用于跨机柜、高可用场景。

六、避坑指南:常见错误配置

交换机堆叠后链路聚合失败?多半是你忽略了这点七、总结

跨设备聚合 = 堆叠/M-LAG + LACP + 验证

记住三要素

  1. 底层必须支持跨设备协同(堆叠 or M-LAG/vPC)
  2. 聚合必须用LACP,禁用静态模式
  3. 验证看三点:端口Selected状态、MAC唯一性、带宽达标
阅读剩余
THE END