这是 network/stp-loop.md 的每次改动内容,按时间从新到旧。其他文章一起提交的部分不会出现在这里。
#1
2026-10-18
+78
−0
docs: 新增 23 篇网络/ Linux / Windows / 服务器文章
be5956e
new file mode 100644
@@ -0,0 +1,78 @@
+---
+tags: [STP, 环路, 广播风暴]
+order: 30
+---
+
+# 环路与生成树排查
+
+## 场景
+
+网络突然变慢、丢包,交换机 CPU 打到 90% 以上,MAC 表里同一个 MAC 在两个口之间跳。
+九成是二层环路。
+
+## 前置条件
+
+- 能登交换机看 CPU、MAC 表和 STP 状态
+- 知道拓扑大概长什么样
+- 别急着拔线,先确认是不是 STP 没开或被关掉
+
+## 配置
+
+以 H3C 为例,先看:
+
+```text
+display cpu-usage
+display stp brief
+display mac-address 0011-2233-4455
+display stp root
+```
+
+判断:
+
+- `display stp brief` 里所有端口都是 `DESI` 且没有 `ALTE`,但网络还有环路 → STP 没生效
+- `display mac-address` 同一个 MAC 在多个端口来回跳 → 确定是环路
+- CPU 高 + 广播包多 → 广播风暴
+
+处理:在环路上的某个口直接 shutdown 定位,再回来配 STP。
+
+```text
+system-view
+stp global enable
+interface GigabitEthernet1/0/1
+ stp edged-port
+ stp bpdu-protection
+ undo shutdown
+ quit
+```
+
+接终端的口开 `edged-port`,能省掉 30 秒收敛;开 `bpdu-protection` 防止有人私接小交换机。
+
+## 验证
+
+```text
+display stp
+display stp brief
+display cpu-usage
+```
+
+环路口会显示 `ALTE`(阻塞),CPU 回落到个位数,MAC 表不再漂移。
+
+## 回滚
+
+如果开了 `bpdu-protection` 结果把正常口也锁了:
+
+```text
+interface GigabitEthernet1/0/1
+ undo shutdown
+ undo stp bpdu-protection
+```
+
+被保护的端口会进入 `STP BPDU-protected` 状态,只能手动 `undo shutdown` 恢复。
+
+## 坑
+
+- **别用 `undo stp enable` 当排障手段**,那是把环路保护关了,只会更糟。
+- 私接的小交换机如果不支持 STP,会持续发 BPDU,`bpdu-protection` 会不断锁口,得找到源头。
+- 收敛慢不一定是 STP 的问题,也可能是上行链路抖动。
+- 环路上的广播风暴会把管理口也冲掉,最好从带外或邻近设备进。
+- 排查完记得把临时 shutdown 的口恢复,别留在现场。