链路增加新物理链路并平滑切换为链路聚合模式
本文最后更新于 2026-10-12,文章内容可能已经过时。
一、实验环境
本实验源于工作中遇到的实际问题
实验环境均为物理真机,模拟器进行测试可以会有较大差异。
两台设备的 STP 模式默认均为 MSTP,所有 VLAN 均位于实例 0 中。
原链路:接入交换机1 XG0/0/1 光口经光路接入接入交换机2 XG0/0/1,两台设备对应接口配置均如下:
port link-type trunk
undo port trunk allow-pass vlan 1
port trunk allow-pass vlan xxx新加链路:接入交换机1&2使用千兆电口。
二、模拟环境测试步骤
步骤一:为 SW1、SW2 新链路对应端口配置 Eth-Trunk。
注意:配置前必须确保该链路处于手动 shutdown 状态,链路两端任一端手动 shutdown 即可,或者不接线也可。
注意:Eth-Trunk 分为手动模式和 LACP 模式,默认使用手动模式。手动模式原生支持将不同速率的链路加入同一聚合组;LACP 模式虽然可以将不同速率的接口加入同一聚合组,但只启用与聚合组内第一个 UP 物理链路速率相同的接口,速率不相同的接口不会被启用——这些接口虽显示为 UP 状态,但在聚合组中处于 Down 状态(可通过 display eth-trunk 0 命令查看)。为解决该问题,可在 Eth-Trunk 接口视图下执行 lacp mixed-rate link enable 命令,开启混合速率 LACP。由于手动模式存在较大缺陷,建议使用 LACP 模式。
SW1&2 新链路对应端口配置如下:
interface Eth-Trunk0
mode lacp-dynamic
lacp mixed-rate link enable
port link-type trunk
undo port trunk allow-pass vlan 1
port trunk allow-pass vlan 10 20 30
shutdown
interface GE1/0/24
eth-trunk 0步骤二:调整新链路 STP 开销,确保流量自动切换。
确保新链路 UP 后,STP 自动使用新链路转发数据。使用 display stp brief 或 display stp 等命令,结合拓扑图确定根桥位置。假设根桥为 SW1(或与 SW2 相比,SW1 距离根桥的 cost 更小),则在 SW2 上调整 Eth-Trunk 0 的 STP cost,使其优于老链路——cost 值越小越优先。华为设备默认万兆链路 cost 值为 2000,千兆链路 cost 值为 20000,故将新链路 cost 由默认值 20000 修改为 1999。若不修改 cost,老链路 cost 优于新链路,流量无法自动切换。
若不用上述方式将流量迁移至新链路,而是通过手动 shutdown 老链路的方式切换流量,可能导致新链路在老链路 down 后无法及时完成 STP 端口状态收敛,造成流量暂时中断(该情况存在较大可能性,但未进行实验验证)。
interface Eth-Trunk0
stp instance 0 cost 1999步骤三:连接新链路线缆并取消手动 shutdown。
连接新链路的物理线缆,取消接口的手动 shutdown。此时数据会自动切换到新链路上,老链路被 STP 自动阻塞,可使用 display stp brief 命令查看端口状态。
步骤四:清除原链路接口配置并加入聚合组。
清除两台设备原链路对应接口的配置,并将其加入链路聚合组。
interface 10GE0/0/1
undo port link-type
eth-trunk 0步骤五:删除新链路聚合组上的 STP 开销配置。
interface Eth-Trunk0
undo stp instance 0 cost三、实验结果
模拟环境中,SW1 配置 VLANIF 10,IP 地址为 192.168.10.254/24;PC 接入 SW2 任意端口,IP 地址为 192.168.10.1/24,对应端口配置为 access 模式并划分至 VLAN 10。
测试开始前,PC 开启五个 CMD 窗口,分别执行以下命令:三个常规长 ping、一个 3000 字节大包长 ping 和一个 6000 字节大包长 ping。执行上述每一步骤时持续观察五个 ping 进程,均未出现丢包或延迟异常。
ping 192.168.10.254 -t
ping 192.168.10.254 -t
ping 192.168.10.254 -t
ping 192.168.10.254 -t -l 3000
ping 192.168.10.254 -t -l 6000四、新问题补充
1. lacp mixed-rate link enable 不同速率需要配置这个,还是说千兆强制百兆后需要配置这个?
都要配置,只要聚合组中存在不同速率的成员端口就要配置
2. 老链路被 STP 自动阻塞(这时候stp重新选举,链路应该会中断把?)
根据测试过程及结果结论为不会中断
3. eth-trunk成员端口应该是备份模式,不是负载,实验中试一下是不是这样。
默认情况下,也就是没有配置最大活动链路数(max active-linknumber X)的情况下,所有可以参与转发的链路都参与转发,不会为备份端口。
4. 新老链路正常收敛完成后任意中断其中一条链路,业务会不会中断
五个ping命令随机出现丢一个包,例如五个ping中三个各丢一个包,五个ping中四个各丢一个包
5. 如果把新链路一侧(如PCR侧)千兆口改为百兆,另一侧需不需要手动改
在测试环境中,当一个改为强制百兆,另一个不需要改,另一个自动协商成百兆,不知道实际环境中一侧电口一侧光口如测试环境相同,并且实际环境还需要经过传输设备。
6. 新链路一侧改百兆后,eth-trunk工作模式、以及实验效果有没有变化。
再次测试后,实验结果没有变化