生成树协议 STP/RSTP/MSTP

冗余链路会产生二层环路,导致广播风暴、MAC 表震荡、帧重复。生成树协议通过逻辑阻塞冗余端口,构建无环树形拓扑,同时保留备份链路。

环路危害

  • 广播风暴:广播帧在环路中无限转发,耗尽带宽与 CPU
  • MAC 地址表震荡:同一 MAC 从多个端口学习,表项不断刷新
  • 帧重复:接收方收到重复帧,上层协议异常

STP 原理(802.1D)

四个选举步骤

  1. 选举根桥(Root Bridge):Bridge ID 最小者。Bridge ID = 优先级(默认 32768,步长 4096)+ MAC
  2. 选举根端口(RP):非根桥上到达根桥代价最小的端口
  3. 选举指定端口(DP):每个网段上到达根桥代价最小的端口
  4. 阻塞其余端口:既非 RP 也非 DP 的端口进入 Blocking

端口开销:带宽越大开销越小(10M=100,100M=19,1G=4,10G=2)。

端口状态

状态是否转发是否学习 MAC说明
Disabled否否端口关闭
Blocking否否仅收 BPDU
Listening否否选举中(15s)
Learning否是学习 MAC(15s)
Forwarding是是正常转发

STP 收敛时间约 30~50s(Listening + Learning + 链路故障检测)。

BPDU

  • 配置 BPDU:根桥每 2s 发送,包含根桥 ID、根路径开销、发送者 ID 等
  • TCN BPDU:拓扑变化通知,触发全网 MAC 表刷新

RSTP(802.1w)改进

改进说明
端口角色细分增加 Alternate(备份根端口)、Backup(备份指定端口)
快速收敛根端口/指定端口可立即进入转发,收敛约 1~3s
P/A 机制Proposal/Agreement 握手实现快速迁移
边缘端口连接终端的端口直接转发,不参与生成树计算
BPDU 保护边缘端口收到 BPDU 立即关闭,防交换机误接入
[Huawei] stp mode rstp                    // 全局开启 RSTP(默认)
[Huawei] stp root primary                  // 设为根桥
[Huawei] stp root secondary                // 设为备用根桥
[Huawei] interface GigabitEthernet0/0/1
[Huawei-GigabitEthernet0/0/1] stp edged-port enable        // 边缘端口
[Huawei-GigabitEthernet0/0/1] stp bpdu-protection           // BPDU 保护

MSTP(802.1s)

  • 通过多实例实现 VLAN 负载均衡:不同实例运行独立生成树,流量分流到不同链路
  • 实例与 VLAN 映射:instance 1 vlan 10 20
  • 每个实例有独立的根桥/根端口
[Huawei] stp mode mstp
[Huawei] stp region-configuration
[Huawei-mst-region] region-name HUAWEI
[Huawei-mst-region] instance 1 vlan 10 20
[Huawei-mst-region] instance 2 vlan 30 40
[Huawei-mst-region] active region-configuration
[Huawei] stp instance 1 root primary
[Huawei] stp instance 2 root secondary

常用命令

<Huawei> display stp brief                 // 查看端口角色与状态
<Huawei> display stp                       // 查看本机 STP 信息
<Huawei> display stp instance 1            // 查看实例 1
<Huawei> display stp topology-change       // 查看拓扑变化统计

常见故障

现象原因
全网瘫痪、CPU 高环路未收敛/生成树未开启(所有设备需开启 STP)
收敛慢未启用 RSTP,或端口未配边缘端口
错连终端导致重启边缘端口未开 BPDU 保护
某 VLAN 流量走备份链路MSTP 实例映射配置不一致

🔗 相关笔记:03.01_VLAN与VLAN间路由 03.03_链路聚合与堆叠