主题
🌳 生成树协议(STP)
环路是二层网络的癌症——STP 是化疗方案,自动阻断冗余链路防环
为什么会有环路
两台交换机之间连两根线(做冗余):
交换机A ═══ 线1 ═══ 交换机B
║ ║
╚═══ 线2 ═══════╝看起来挺好——断一根还有备份。但是:
- A 发广播帧给 B
- B 从线1收到,从线2又转发出去
- A 从线2收到,从线1又转发出去
- 循环往复 → 广播风暴 → 网络瘫痪
这就是二层环路。STP 的工作就是:在有环路的拓扑里,逻辑上阻断冗余链路,物理环路变逻辑无环。
STP 怎么工作
物理拓扑(有环) 逻辑拓扑(STP 阻断后,无环)
A ═══ B ═══ C A ═══ B ═══ C
║ ║ ║
╚═══════════╝ C(端口 Blocked)- 选举根桥(Root Bridge)——MAC 最小或优先级最低的交换机
- 每个非根桥选一个根端口(到根桥最近的口)
- 每个网段选一个指定端口(到根桥最近的口)
- 剩下的端口 → Blocking(阻断,不转发数据)
STP 端口状态
| 状态 | 转发数据? | 学习 MAC? | 说明 |
|---|---|---|---|
| Blocking | ❌ | ❌ | 被阻断,防止环路 |
| Listening | ❌ | ❌ | 过渡态,15秒 |
| Learning | ❌ | ✅ | 学 MAC,15秒 |
| Forwarding | ✅ | ✅ | 正常转发 |
| Disabled | ❌ | ❌ | 管理员关闭 |
从 Blocking → Forwarding 需要 30 秒(Listening + Learning 各 15 秒),这是传统 STP 的痛点。
STP 版本演进
| 版本 | 标准 | 收敛时间 | 说明 |
|---|---|---|---|
| STP | IEEE 802.1D | 30-50 秒 | 原始版,太慢了 |
| RSTP | IEEE 802.1w | 1-2 秒 | 快速生成树,主流 |
| MSTP | IEEE 802.1s | 1-2 秒 | 多实例,不同 VLAN 走不同路径 |
| PVST+ | 思科私有 | 按需 | 每个 VLAN 一棵树 |
新设备全部用 RSTP 或 MSTP。
华为/华三配置 STP/RSTP
bash
system-view
# 开启 STP(华为默认是 MSTP,可切换)
stp enable
# 切换到 RSTP 模式
stp mode rstp
# 设为根桥(优先级最低,确保当选)
stp root primary
# 或者手动设优先级(0 最高,61440 最低,步进 4096)
stp priority 4096
# 边缘端口:接 PC 的口不需要参与 STP,立即进入 Forwarding
interface GigabitEthernet 0/0/1
stp edged-port enable
quit
# 查看 STP 状态
display stp
display stp brief
saveBPDU 保护
防止有人恶意接交换机发更优 BPDU 抢根桥:
bash
# 在边缘端口上开 BPDU 保护
stp bpdu-protection
# 收到 BPDU 的端口自动 shutdown
interface GigabitEthernet 0/0/1
stp bpdu-protection enable思科配置
bash
enable
configure terminal
spanning-tree mode rapid-pvst # 开快速 PVST+
spanning-tree vlan 10 priority 4096 # 让本交换机当 VLAN 10 的根桥
interface gigabitEthernet 0/1
spanning-tree portfast # 边缘端口(立即 Forwarding)
spanning-tree bpduguard enable # BPDU 保护
exit
show spanning-tree
show spanning-tree vlan 10
write memory常见问题与排故
问题1:新接电脑等 30 秒才通
原因:端口走 STP Listening → Learning → Forwarding 全流程
解决:设为边缘端口(stp edged-port enable / portfast)
问题2:换了交换机后全网断
原因:新交换机抢了根桥,STP 重新收敛期间全网不通
解决:新交换机上线前设高优先级值(低优先级),别让它竞选根桥
问题3:某 VLAN 不通其他正常
原因:PVST+/MSTP 下该 VLAN 的生成树有问题
排查:
bash
display stp vlan 10 # 看 VLAN 10 的 STP 状态
display stp abnormal-port # 查看异常端口STP 最佳实践
- 核心交换机固定为根桥——
stp priority 0或root primary - 接入端口配边缘端口——接 PC 的口不需要跑 STP
- 开 BPDU 保护——防止有人恶意/误接交换机
- 用 RSTP 别用老 STP——收敛从 30 秒降到 2 秒
- 多 VLAN 环境用 MSTP——不同 VLAN 走不同路径,充分利用链路
🎯 本章要点
- STP 自动阻断冗余链路防环路,物理有环逻辑无环
- RSTP 收敛 1-2 秒(老 STP 要 30-50 秒),新设备标配
- 核心交换机固定为根桥(
stp priority 0) - 接 PC 的口设边缘端口 + BPDU 保护,加速接入防攻击
- 换交换机前先设低优先级,别让它抢根桥导致全网断
加载练习题中...