路由交换技术——生成树协议STP及案例讲解
路由交换技术——生成树协议STP及案例讲解
一、STP生成树协议基础
1. 为什么需要STP
交换网络中为了提高链路可靠性,会部署冗余链路,但冗余链路会带来两大问题:
- 二层环路:广播帧在环路内无限转发,产生广播风暴。
- MAC地址表震荡:交换机从不同端口收到同一源MAC,MAC表频繁抖动,设备CPU占用飙升。
STP(Spanning Tree Protocol,生成树协议)作用:在逻辑上阻塞部分冗余端口,把物理环路修剪成无环树型网络;当活动链路故障,被阻塞端口自动打开,实现链路备份。
2. STP版本
| 版本 | 说明 |
|---|---|
| STP(802.1D) | 传统生成树,收敛慢,秒级 |
| RSTP(802.1w) | 快速生成树,收敛快,毫秒级,兼容STP |
| MSTP(802.1s) | 多实例生成树,实现VLAN负载分担,企业主流 |
3. STP核心角色选举
依靠BPDU桥协议数据单元交互,BPDU分为配置BPDU、TCN拓扑变更BPDU。
选举四要素:桥ID、根端口、指定端口、阻塞端口
- 根桥(Root Bridge):整个网络的树的根。
桥ID = 桥优先级(0‑65535,默认32768) + MAC地址;优先级越小越优,优先级相同MAC小的优先。
修改桥优先级可以人为指定哪台交换机成为根桥。
-
根端口RP(Root Port):非根桥交换机上,去往根桥开销最小的端口,每个非根桥有且只有1个根端口,状态转发。
-
指定端口DP(Designated Port):每一条链路两端,选一个指定端口,负责转发该链路流量,转发状态。链路两端比较BPDU,桥ID优的一侧端口成为DP。
-
替代端口AP(Alternate Port):既不是RP也不是DP,逻辑阻塞,不转发用户流量,接收BPDU,作为备份链路。
端口状态(802.1D):Disabled→Blocking→Listening→Learning→Forwarding
4. 链路开销
千兆链路开销:4;百兆:19;十兆:100。带宽越大,开销越小。
二、实验案例:STP基础实验
📌拓扑描述(文字拓扑,可直接导入eNSP/Huawei模拟器画图)
拓扑:3台二层交换机S1、S2、S3,物理构建环路。
- S1:配置为根桥;S2、S3为非根桥
- S1(G0/0/1) ↔ S2(G0/0/1)
- S1(G0/0/2) ↔ S3(G0/0/1)
- S2(G0/0/2) ↔ S3(G0/0/2)
物理链路形成环路:S1‑S2‑S3‑S1。STP会自动阻塞其中一个端口打破环路。
拓扑简图
S1(根桥)
G0/0/1 G0/0/2
│ │
▼ ▼
S2 ─────── S3
G0/0/2
1. 选举过程推演
- 选举根桥:S1优先级最小,成为根桥。根桥所有端口都是指定端口DP,全部转发。
- S2:比较去往S1的路径开销,G0/0/1直连S1开销最小 → G0/0/1为根端口RP,转发。
- S3:G0/0/1直连S1开销最小 → G0/0/1为根端口RP,转发。
- S2与S3之间链路S2(G0/0/2)‑S3(G0/0/2):
该链路需要选出DP。S2桥ID优于S3,所以S2的G0/0/2成为DP,转发。
S3的G0/0/2既不是RP也不是DP → 被STP阻塞,不转发业务报文,只监听BPDU。
最终逻辑无环:S3‑G0/0/2阻塞;其余端口转发。
故障场景:S1‑S2链路断开,S2收不到根桥BPDU,S3的G0/0/2端口解除阻塞,切换转发,链路备份生效。
2.华为交换机配置命令
S1(配置为主根桥)
# 开启STP,华为默认MSTP
stp mode mstp
stp root primary # 设置为主根桥,优先级自动变为0
S2(备用根桥)
stp mode mstp
stp root secondary
S3无需特殊配置,默认参与生成树计算
查看验证命令
display stp brief # 查看各端口角色、状态(最常用)
display stp root # 查看根桥信息
display stp interface GigabitEthernet 0/0/2 # 查看端口详细stp
display stp brief输出示例:
| Port | Role | STP State | Protection |
|---|---|---|---|
| G0/0/1 | ROOT | FORWARDING | NONE |
| G0/0/2 | ALTE | DISCARDING | NONE |
ALTE:替代端口,DISCARDING丢弃用户报文,RSTP/MSTP把Blocking改叫DISCARDING。
3.故障模拟验证
断开S1‑S2之间G0/0/1链路。
- S2丢失根端口,重新计算;S3上被阻塞的G0/0/2端口快速切换为转发,网络恢复。
传统STP收敛时间30‑50s;RSTP/MSTP几秒完成收敛。
三、MSTP多实例生成树案例
场景需求
两台交换机之间双链路,VLAN10业务走链路1,VLAN20业务走链路2,实现负载分担,同时互为备份。
拓扑:S1、S2,双链路互联G0/0/1、G0/0/2。
- MST实例1映射VLAN10,实例1根桥S1
- MST实例2映射VLAN20,实例2根桥S2
配置要点:所有交换机MST域名、修订号、VLAN‑实例映射必须完全一致,否则属于不同MST域。
S1配置:
stp mode mstp
stp region-configuration
region-name MST-TEST
revision-level 1
instance 1 vlan 10
instance 2 vlan 20
active
# 设置实例1根桥
stp instance 1 root primary
stp instance 2 root secondary
S2配置:
stp mode mstp
stp region-configuration
region-name MST-TEST
revision-level 1
instance 1 vlan 10
instance 2 vlan 20
active
stp instance 1 root secondary
stp instance 2 root primary
查看命令:display stp mst‑configuration
效果:
- 实例1(VLAN10):S1‑G0/0/1转发,G0/0/2阻塞;
- 实例2(VLAN20):S2‑G0/0/2转发,G0/0/1阻塞;
两条链路同时分担不同VLAN流量,任意链路断网自动切换。
四、常见STP故障点
- BPDU丢失:链路不稳定,端口频繁震荡,STP反复计算。
- 两端MST域配置不一致,导致MSTP退化成RSTP,负载分担失效。
- 接入终端接交换机端口,接入端口收到BPDU会参与生成树计算,引发环路风险,建议开启
stp edged‑port边缘端口(PC/服务器接入端口)。
边缘端口不参与STP计算,收到BPDU会自动关闭边缘端口,防止非法交换机接入。
边缘端口配置:
interface g0/0/3
stp edged-port enable
- BPDU防护:
stp bpdu-protection全局开启,边缘端口收到BPDU直接shutdown端口,安全防护。
五、知识点总结
- STP核心目的:解决二层冗余链路环路,实现链路备份。
- 选举顺序:选根桥→每个非根桥选根端口→每条链路选指定端口→剩余端口阻塞。
- MSTP是企业主流,支持多实例VLAN负载分担;RSTP提升收敛速度。
- 终端接入端口配置边缘端口+BPDU防护,提升网络安全。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)