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

两台交换机堆叠后,服务器的双网卡聚合没有起作用,带宽依旧像单条链路,甚至出现大量丢包和 MAC 在端口间跳动的日志。看起来像是聚合成功了,实测却只走了一条线,网络性能和稳定性都受影响了。

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

回过头看发生了什么。最开始的拓扑是两台 S6730 用堆叠线连在一起,形成一个逻辑集群,成员1 做主,成员2 做备。服务器有两张网卡,分别接到 SW1 的 G0/0/1 和 SW2 的 G0/0/1,目标是把两条链路做成 20Gbps 的 LACP 聚合。配置上在交换机端用了 Eth-Trunk,服务器端用 Linux bond,bond-mode 4(LACP)。按理说应该能跑满。

但实际检查时,第一步看到的线索是 eth-trunk 的端口状态:两个物理口并没有都被选中(Selected),有的显示 Unselected。与此同时,查看 MAC 表,发现服务器的 MAC 在两条物理口上都出现过,不是只在 Eth-Trunk 上能看到一条记录。交换机日志里能看到类似 MAC 摆动的告警(MAC Flapping)。用 iperf3 测试时,多进程并发测试也只能跑到单链路的带宽。所有这些现象合在一起,说明所谓的“聚合”并没有真正工作,反而出现了 MAC 漂移和单通道流量。

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

把问题往前追,会发现几个典型缘由。尽管堆叠把多台设备表现为一台“逻辑交换机”,但每台成员还有自己的转发芯片和接口。如果两根物理线分别接到不同成员上,普通的静态聚合或者直接用 LACP(没有配合堆叠/跨机箱机制)并不能让这两端口在物理层协同。结果可能是:MAC 学习在两端口之间来回切换,STP 可能会把其中一个口阻塞,或者流量只走到一台成员上,无法真正负载分担。

常见的检查项不要跳过:先确认堆叠链路是否真正建立,用显示堆叠状态的命令看 Member ID 和状态;再看 Eth-Trunk 的成员端口是否都处在 Selected 状态;然后核对两端 LACP 模式是不是一会儿 active 一会儿 passive 导致协商失败;还要检查物理口的速率和双工是否一致。举例来说,如果 display eth-trunk 显示某个端口为 Unselected,说明它没有被纳入聚合,需要去看堆叠、LACP 协商状态和物理链路属性。查看 MAC 表时,理想情况是服务器 MAC 只在 Eth-Trunk 上有一条记录;如果看到两条分别在 G1/0/1 和 G2/0/1,那就是 MAC 漂移。

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

厂商实现上有差别。华为的 CSS/iStack 堆叠,本身支持跨成员的 Eth-Trunk,只要堆叠建立正常、端口配置一致,使用 LACP 动态协商,一般就能让两台成员上的端口一起被选中,mac 只学在 Eth-Trunk 上,带宽也能合并。具体配置上,接口把各自物理口加入同一个 Eth-Trunk,Eth-Trunk 设置为 LACP 模式,交换机端不需要额外复杂命令。如果堆叠没法做(例如两台机柜距离远、设备型号不支持堆叠),就不能靠普通聚合跨机箱,这时要用厂商提供的 M-LAG(多机箱聚合)机制。M-LAG 的关键是要有一条 peer-link 在两台交换机间同步 MAC/FDB 表并协调控制面;一般还要配置一个 dfs-group 或类似的控制组来完成状态同步。服务器端依旧用 LACP,交换机端把汇聚口配置到对应的 M-LAG 组里。M-LAG 配置比单纯堆叠复杂一点,但能在不做物理堆叠的情况下实现跨机箱的聚合与高可用。

具体的排查思路可以按时间线倒着做:先看业务层(iperf、丢包、登录用户感知的性能),再看交换机的 Eth-Trunk 状态,接着看堆叠或 M-LAG 的控制通道,最后核对物理口属性和 LACP 协商的细节。常见的卡点是:堆叠链路没真起来、一端配置成静态聚合而另一端是 LACP、两端 LACP 模式不一致、物理口速率/双工不同,或交换机固件/特性不支持跨成员聚合。遇到“display eth-trunk 端口 Unselected + MAC 在多口出现 + iperf 只有单链路带宽”这个组合,基本可以锁定为跨成员聚合未生效。

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

也别忘了服务器端的配置:Linux 常见的 bonding 配法是把两个网卡加入 bond0,mode 设置为 4(LACP),开启 miimon 或者 lacp_rate。服务器端若弄错成静态聚合或没有开启 LACP,也会导致交换机端无法把端口选中。用几条命令核对很快:看服务器的 bond 状态,查看交换机的 Eth-Trunk 成员状态,查 MAC 表确认唯一性,做并发 iperf 测试看是否接近期望带宽。

说句不太花哨的结论性提醒:跨设备聚合不是只靠把端口绑在一起就行,底层必须有跨设备的同步机制(堆叠或 M-LAG 这类),聚合要走 LACP 动态协商,检查时重点看端口是否被选中、MAC 是否唯一以及实际吞吐。老杨点到为止,这种坑踩过的人都懂。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
想来月亮摸鱼的头像 - 鹿快
评论 抢沙发

请登录后发表评论

    暂无评论内容