STP 生成树图解:冗余链路如何不形成环路
STP 生成树协议原理图解,一张图看懂根桥选举、端口阻塞与破环,附华为 eNSP 配置与验证。
先看效果

为什么需要 STP
为了保证可靠,交换网络里通常会有冗余链路(环)。但二层网络最怕环:一个广播包在环里无限循环,几秒钟就能把带宽和 CPU 打满,这叫广播风暴——网络瞬间瘫痪。
STP(生成树协议)就是解决环的:它在有环的物理拓扑里,逻辑上选出一棵无环的树,把多余的链路端口堵塞(Block)起来。一旦主链路断了,被堵塞的端口自动打开接管。
原理图解
看上面这张图,三台交换机(SW1、SW2、SW3)首尾相连成环:
- STP 先选根桥(Root Bridge):BID 最小的交换机,通常你手动把核心交换机设为根;
- 每台非根交换机选一个根端口(离根最近的口);
- 每条链路选一个指定端口(Designated Port,负责转发);
- 剩下的端口变成 Alternate/Blocked,不转发数据,只收 BPDU。
图中红色虚线那条链路的端口被阻塞,物理上是环,逻辑上变成了树。SW3 上行的备用链路一旦主链路故障就顶上,几秒内恢复。
eNSP 完整配置
三台 S5700 组成环,核心 SW1 指定为根桥。
# ===== SW1(核心,设为根桥)=====
<Huawei> system-view
[Huawei] sysname SW1
[SW1] stp mode stp
[SW1] stp root primary # 把 SW1 设为根桥
[SW1] stp priority 0 # 或者直接改优先级(越小越优先,取 4096 的倍数)
[SW1] save
# ===== SW2 =====
[SW2] stp mode stp
[SW2] stp root secondary # 设为备份根桥
# ===== SW3 =====
[SW3] stp mode stp
# 其余交换机用默认优先级即可
华为交换机默认开启 STP,模式默认是 MSTP。想做纯 STP 实验就显式配 stp mode stp。
验证
# 查看根桥信息与自己的角色
[SW1] display stp
# 查看每个端口的角色(Root/Designated/Alternate)
[SW1] display stp brief
display stp brief 能看到每个接口的 Role:根口是 ROOT,指定口是 DESIGNATED,被阻塞的是 ALTE。display stp 里能看到 CIST Root/ERPC,根桥的 Bridge ID 会显示为 0 号优先级。
常见问题
Q: 怎么确认环路被破了?
A: display stp brief 里有 ALTE(Alternate)角色的端口,就说明它被阻塞了,环被破开。
Q: STP 收敛太慢(30-50 秒)怎么办?
A: 换 RSTP(快速生成树)或 MSTP。华为默认 MSTP,stp mode mstp,收敛可以到亚秒级。如果想要毫秒级切换,可以配合链路聚合或堆叠。
Q: 为什么不能把所有线都保持转发? A: 二层帧没有 TTL,环里的包会永远转下去。三层协议有 TTL 会丢弃,二层没有,所以必须在二层就把环破掉。
下一步
网络基础(VLAN、路由、安全、可靠性)都通了,最后一块拼图是让终端可以自动获取 IP。看 DHCP 四步交互。