生成树协议(Spanning Tree Protocol,简称 STP)是以太网交换机中用于防止网络环路的一种协议。在有多个交换机连接形成冗余链路时,STP 会自动地阻断部分路径,形成一棵无环的逻辑拓扑结构,确保网络不会陷入广播风暴或数据包无限循环的状态。
---
一、生成树协议的作用
在复杂的网络拓扑中,多个交换机之间为了提高可靠性会形成冗余路径。虽然这样可以防止某一条链路故障时整个网络瘫痪,但也会造成环路问题。
STP 的作用就是自动选择一条主干路径,其它冗余路径进行阻断(逻辑上关闭),防止环路,同时在主路径出现故障时,可以自动启用备份路径。
---
二、STP 的基本原理
1. 选举根桥(Root Bridge)
所有交换机通过发送 BPDU 报文互相比对,优先级 + MAC地址最小的设备成为根桥。
2. 计算最短路径
每个交换机会计算到根桥的最短路径,并确定:
- 根端口(Root Port):离根桥最近的端口。
- 指定端口(Designated Port):每个网段中负责转发的端口。
3. 阻塞冗余端口
没有当选为根端口或指定端口的,就会被设置为阻塞状态,不参与转发。
---
三、STP 的端口状态
STP 的端口会经历以下状态:
1. Blocking(阻塞)
2. Listening()
3. Learning(学习)
4. Forwarding(转发)
5. Disabled(禁用)
> 注意:STP 收敛较慢,整个过程可能需要 30~50 秒左右。
---
四、STP 的配置示例(以 Cisco 为例)
```bash
# 设置交换机的 STP 优先级,优先级越低越容易成为根桥
Switch(config)# spanning-tree vlan 1 priority 4096
# 查看 STP 状态
Switch# show spanning-tree
# 启用快速生成树(更快收敛)
Switch(config)# spanning-tree mode rapid-pvst
```
---
五、STP 的变种协议
- RSTP(Rapid STP):快速生成树,STP 的加速版本。
- MSTP(Multiple STP):多生成树协议,可针对不同 VLAN 创建多棵树。
- PVST / PVST+:思科私有协议,每个 VLAN 一棵生成树。
---
六、使用建议
- 一般建议在有冗余链路的网络中启用 STP,防止环路;
- 对于小型或无冗余结构的网络,可以关闭 STP 提升性能;
- 使用 RSTP 或 MSTP 提升收敛速度和 VLAN 管理能力;
- 根桥建议手动配置,以便掌控主路径。
---
如果你想要看具体网络拓扑例子或配置,我也可以画一个图给你参考。你需要吗?