路由交换技术——生成树协议STP及案例讲解

一、STP生成树协议基础

1. 为什么需要STP

交换网络中为了提高链路可靠性,会部署冗余链路,但冗余链路会带来两大问题:

  1. 二层环路:广播帧在环路内无限转发,产生广播风暴。
  2. 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、根端口、指定端口、阻塞端口

  1. 根桥(Root Bridge):整个网络的树的根。
    桥ID = 桥优先级(0‑65535,默认32768) + MAC地址;优先级越小越优,优先级相同MAC小的优先

修改桥优先级可以人为指定哪台交换机成为根桥。

  1. 根端口RP(Root Port)非根桥交换机上,去往根桥开销最小的端口,每个非根桥有且只有1个根端口,状态转发。

  2. 指定端口DP(Designated Port)每一条链路两端,选一个指定端口,负责转发该链路流量,转发状态。链路两端比较BPDU,桥ID优的一侧端口成为DP。

  3. 替代端口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. 选举过程推演

  1. 选举根桥:S1优先级最小,成为根桥。根桥所有端口都是指定端口DP,全部转发
  2. S2:比较去往S1的路径开销,G0/0/1直连S1开销最小 → G0/0/1为根端口RP,转发
  3. S3:G0/0/1直连S1开销最小 → G0/0/1为根端口RP,转发
  4. 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故障点

  1. BPDU丢失:链路不稳定,端口频繁震荡,STP反复计算。
  2. 两端MST域配置不一致,导致MSTP退化成RSTP,负载分担失效。
  3. 接入终端接交换机端口,接入端口收到BPDU会参与生成树计算,引发环路风险,建议开启stp edged‑port边缘端口(PC/服务器接入端口)。

边缘端口不参与STP计算,收到BPDU会自动关闭边缘端口,防止非法交换机接入。

边缘端口配置:

interface g0/0/3
 stp edged-port enable
  1. BPDU防护:stp bpdu-protection全局开启,边缘端口收到BPDU直接shutdown端口,安全防护。

五、知识点总结

  1. STP核心目的:解决二层冗余链路环路,实现链路备份。
  2. 选举顺序:选根桥→每个非根桥选根端口→每条链路选指定端口→剩余端口阻塞。
  3. MSTP是企业主流,支持多实例VLAN负载分担;RSTP提升收敛速度。
  4. 终端接入端口配置边缘端口+BPDU防护,提升网络安全。
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐