交换机堆叠后链路聚合失败?多半是你忽略了这点
两台交换机做了堆叠,服务器用双网卡分别接在不同成员上,配置了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 + 验证
记住三要素:
- 底层必须支持跨设备协同(堆叠 or M-LAG/vPC)
- 聚合必须用LACP,禁用静态模式
- 验证看三点:端口Selected状态、MAC唯一性、带宽达标
⚠️ 典型现象:
✅ 关键前提: