生成树协议(Spanning Tree Protocol,STP)是局域网(LAN)中用于解决环路问题的关键协议。它通过逻辑上断开冗余链路,形成一个无环的 “树状” 拓扑,同时在链路故障时自动恢复连接。随着网络需求的发展,STP 经历了三次重要演进,形成了三个主要版本:STP(基础版)、RSTP(快速版)和 MSTP(多实例版)。
STP 是最早的生成树协议,定义于 IEEE 802.1D 标准,主要解决以太网中冗余链路导致的 “广播风暴”“MAC 地址表抖动” 等问题。
-
消除环路:通过选举 “根桥”(Root Bridge)、“根端口”(Root Port)、“指定端口”(Designated Port),将其他冗余端口标记为 “阻塞端口”(Blocking Port),逻辑上断开环路。
- 根桥:整个网络中优先级最高(默认 32768,值越小优先级越高)的交换机,是生成树的 “根”。
- 根端口:非根桥交换机上距离根桥最近(路径成本最低)的端口,用于接收根桥的 BPDU。
- 指定端口:每个网段(链路)上距离根桥最近的端口,用于转发 BPDU 和数据。
- 阻塞端口:冗余链路中未被选为根端口或指定端口的端口,不转发数据(仅监听 BPDU)。
-
BPDU(桥协议数据单元):交换机之间通过 BPDU 交换信息(如根桥 ID、路径成本等),用于选举和维护生成树拓扑。BPDU 由根桥周期性发送(默认每 2 秒一次)。
-
端口状态:STP 定义了 4 种端口状态,通过状态切换实现环路防护:
- 阻塞(Blocking):不转发数据,仅接收 BPDU(防止环路),持续 20 秒(Max Age,BPDU 老化时间)。
- 监听(Listening):开始参与选举,不转发数据,持续 15 秒(Forward Delay)。
- 学习(Learning):学习 MAC 地址,不转发数据,持续 15 秒(Forward Delay)。
- 转发(Forwarding):正常转发数据和 BPDU。
- 收敛速度慢:从阻塞到转发需经历 “阻塞→监听→学习→转发”,总耗时约 50 秒(20+15+15),无法满足实时业务(如 VoIP)的需求。
- 单一生成树:整个网络只有一个生成树实例,所有 VLAN 共享同一拓扑,冗余链路被完全阻塞,带宽利用率低。
RSTP(Rapid STP)是 STP 的改进版,定义于 IEEE 802.1w 标准,核心目标是提高收敛速度,同时兼容 STP。
-
更快的收敛速度:通过优化端口状态和角色,收敛时间缩短至秒级(通常 1-2 秒)。
- 简化端口状态:将 STP 的 “阻塞、监听” 合并为 “丢弃(Discarding)”,仅保留 “丢弃、学习、转发”3 种状态。
- 新增端口角色:
- 替代端口(Alternate Port):非根桥交换机上,作为根端口的备份(当根端口故障时,立即切换为根端口)。
- 备份端口(Backup Port):同一网段内,作为指定端口的备份(当指定端口故障时,立即切换为指定端口)。
-
主动发送 BPDU:STP 中只有根桥发送 BPDU,而 RSTP 中所有交换机(无论是否为根桥)都会主动发送 BPDU(每 2 秒一次),一旦链路故障,可快速检测并触发收敛。
-
边缘端口(Edge Port):连接终端设备(如 PC、服务器)的端口可配置为边缘端口,无需经历 “丢弃→学习→转发” 的延迟,直接进入转发状态(若检测到环路,会自动转为非边缘端口)。
适用于对收敛速度要求高,但 VLAN 数量少、无需负载均衡的网络(如小型企业网)。
MSTP(Multiple STP)是在 RSTP 基础上扩展的协议,解决了 STP/RSTP 中 “单一生成树实例导致带宽浪费” 的问题,支持多 VLAN 映射到不同生成树实例,实现负载均衡。
-
多实例(MST Instance):将多个 VLAN 映射到一个 “生成树实例”(MST Instance),每个实例独立计算生成树拓扑。例如,VLAN 1-10 映射到实例 1,VLAN 11-20 映射到实例 2,两个实例可分别选择不同的根桥和路径,实现流量分离。
-
MST 域(MST Region):由一组配置相同的交换机组成(需统一 “域名、修订级别、VLAN - 实例映射表”)。域内的实例独立计算,域之间则像一个 “虚拟交换机” 参与外部生成树(与 STP/RSTP 设备兼容)。
-
IST(Internal Spanning Tree):每个 MST 域中默认存在 “实例 0”(IST),是域内所有实例的公共拓扑,负责连接域内所有交换机,并与外部网络通信。
- 负载均衡:不同 VLAN 的流量可通过不同链路传输(利用冗余链路),提高带宽利用率。
- 兼容前向协议:可与 STP、RSTP 设备互通,适应复杂网络环境。
- 收敛速度快:继承 RSTP 的快速收敛特性,同时支持多实例独立收敛。
适用于 VLAN 数量多、需要按 VLAN 分离流量并实现负载均衡的复杂网络(如大型企业网、数据中心)。
STP 是基础,解决了环路问题但收敛慢;RSTP 优化了收敛速度,适用于对实时性要求高的简单网络;MSTP 在 RSTP 基础上支持多实例,实现了 VLAN 级别的负载均衡,是当前复杂网络的主流选择。