STP 三个计时器
生成树的收敛节奏由三个计时器决定:hello 决定根桥多久发一次 BPDU,max-age 决定多久收不到 BPDU 就认为链路失效,forward-delay 决定端口在监听与学习状态各停留多久(默认各 15 秒,合计约 30 秒才转发)。默认值是针对各种拓扑验证过的折中,改动要非常谨慎:全网计时器必须一致,只改一台会造成超时判断混乱。
基本信息
| 适用平台 | 全部交换机(华为 VRP、思科 IOS、H3C Comware) |
|---|---|
| 默认值 | hello 2 秒、max-age 20 秒、forward-delay 15 秒 |
| 华为/H3C 单位 | 1/100 秒:hello 200、max-age 2000、forward-delay 1500 |
| 思科单位 | 秒:hello-time 2、max-age 20、forward-time 15 |
| 生效范围 | 全网必须一致,且仅由根桥的计时器真正生效(STP 场景下) |
| 与 RSTP 关系 | RSTP 端口主要靠提议/同意快速收敛,计时器更多影响非协商路径 |
典型使用场景
- 老设备互通:与早期只支持 STP 的设备互联时,确认计时器与收敛行为
- 故障复盘:端口长时间停留在监听或学习状态时,判断是否与计时器设置有关
- 特殊拓扑调优:跨广域链路等时延较大的场景下评估是否需要放宽超时
- 模式切换验证:从 STP 切到 RSTP 时确认收敛表现是否符合预期
- 审计核对:基线要求记录全网三个计时器的取值,确认一致
华为 VRP
华为 VRP
[Huawei] stp timer hello 200 # 单位 1/100 秒,200 = 2 秒
[Huawei] stp timer max-age 2000 # 2000 = 20 秒
[Huawei] stp timer forward-delay 1500 # 1500 = 15 秒
<Huawei> display stp # 顶部可读到当前三个计时器取值
! 非法取值(如 max-age 与 hello 不成合理比例)会被设备直接拒绝思科 IOS
思科 IOS
SW-A(config)# spanning-tree hello-time 2 # 单位:秒
SW-A(config)# spanning-tree max-age 20
SW-A(config)# spanning-tree forward-time 15 # 参数名是 forward-time
! 按 VLAN 调整:spanning-tree vlan 10 hello-time 2
SW-A# show spanning-tree | include hello|max-age|forwardH3C Comware
H3C Comware
[H3C] stp timer hello 200
[H3C] stp timer max-age 2000
[H3C] stp timer forward-delay 1500
<H3C> display stp
! 单位与华为一致(1/100 秒),跨厂对比数值时先换算默认值与单位换算
| 计时器 | 默认值 | 华为/H3C 写法 | 思科写法 |
|---|---|---|---|
| hello | 2 秒 | stp timer hello 200 | spanning-tree hello-time 2 |
| max-age | 20 秒 | stp timer max-age 2000 | spanning-tree max-age 20 |
| forward-delay | 15 秒 | stp timer forward-delay 1500 | spanning-tree forward-time 15 |
| 折算 | 合计 | 约 30 秒进入转发 | 约 30 秒进入转发 |
把思科的秒值直接填进华为/H3C 的设备是常见错误:填 2 表示 0.02 秒,远小于设备允许的范围,命令会报错或者被拒绝,看到的却是「配置没生效」的困惑。跨厂抄配置前先做单位换算。