# 环路与生成树排查 ## 场景 网络突然变慢、丢包,交换机 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 的口恢复,别留在现场。