RSTP 协商异常与 Dispute
RSTP 靠「提议 / 同意(Proposal / Agreement)」机制实现秒级收敛:上游端口发提议,下游在阻塞自己的非边缘端口后回应同意,链路立即进入转发。当下游无法正常回应时(半双工链路、单向链路、中间夹了不透传 BPDU 的设备),上游端口会反复进入 Dispute 状态,表现为收敛慢、端口状态来回跳、业务间歇性丢包。
基本信息
| 适用平台 | RSTP / MSTP 网络(华为 VRP、思科 IOS、H3C Comware) |
|---|---|
| 触发条件 | 点对点全双工链路上协商失败,或收到更优 BPDU 而无法立即回应 |
| 高发原因 | 半双工、单向链路(单纤/光衰)、媒体转换器、两端生成树模式不一致 |
| 影响 | 端口反复震荡、收敛时间远高于预期、间歇性丢包 |
| 排查入口 | 接口双工与速率、接口收发计数、生成树接口状态输出 |
典型使用场景
- 割接后收敛异常:新链路接入后生成树迟迟不收敛,优先怀疑 P/A 协商
- 间歇丢包排障:业务每几十秒抖一次,与生成树端口状态变化时间点吻合
- 老旧链路改造:媒体转换器、老式收发器两侧双工不一致导致的隐性链路问题
- 跨厂商互联:两端模式(RSTP 与 MSTP、PVST 与 MSTP)不一致时的收敛行为差异
- 单向链路检测:光纤单通或模块半坏时,只有一侧能收到报文,生成树状态自然异常
华为 VRP
华为 VRP
<Huawei> display stp interface GigabitEthernet0/0/1 # 看端口角色、状态与收发 BPDU 计数
<Huawei> display interface GigabitEthernet0/0/1 # 确认 Duplex 是否为 Full
<Huawei> display interface GigabitEthernet0/0/1 | include input errors|CRC
<Huawei> display logbuffer | include STP # 日志里的端口状态反复变化记录
<Huawei> display stp mode # 确认全局模式与预期一致思科 IOS
思科 IOS
SW-A# show spanning-tree interface Gi1/0/1 detail # 角色、开销与拓扑变化次数
SW-A# show interfaces Gi1/0/1 | include duplex|rate # 半双工是最常见诱因
SW-A# show interfaces Gi1/0/1 counters errors # 单向链路会引起收包异常
SW-A# show logging | include SPANTREE # 结合日志时间点定位
SW-A# show spanning-tree summary | include mode # 模式是否与对端一致H3C Comware
H3C Comware
<H3C> display stp interface GigabitEthernet1/0/1
<H3C> display interface GigabitEthernet1/0/1
<H3C> display stp # 全局模式与实例信息
<H3C> display logbuffer | include STP
! 输出字段名随版本不同,以设备实际显示为准诱因与验证手段
| 诱因 | 典型现象 | 验证手段 |
|---|---|---|
| 半双工链路 | 协商长期不成功,收敛慢 | 查接口双工/速率设置,两端是否一致 |
| 单向链路 | 一侧有收包、另一侧无,状态异常 | 对比两端接口计数,光功率与模块状态 |
| 中间设备不透传 BPDU | 拓扑与预期不符,端口角色混乱 | 把中间设备旁路后复测 |
| 两端模式不一致 | 行为与单台设备测试结果不同 | 核对两端生成树模式与区域配置 |
P/A 机制要求链路是点对点且全双工。接在共享介质(Hub、半双工转换器)上的端口不能按点对点协商,两侧对链路类型的判断不一致时,收敛表现就会异常。