第101篇:二层环路与 STP 保护机制再探讨
关键词:二层环路、STP、RSTP、MSTP、生成树协议、环路检测、BPDU、根桥选举
一、引言
欢迎来到"第三篇章:局域网与园区网技术"的开篇。在二层交换网络中,为了提高可靠性,网络设计者常常会在交换机之间建立多条物理链路。然而,正是这些冗余链路,在缺乏有效管理机制的情况下,会形成致命的二层环路。二层环路一旦发生,轻则导致网络性能急剧下降,重则引发广播风暴,使整个网络陷入瘫痪。
生成树协议(Spanning Tree Protocol, STP)及其演进版本 RSTP(快速生成树协议)和 MSTP(多生成树协议)是解决二层环路问题的核心方案。本文将深入探讨二层环路的形成机理与 STP 家族的保护机制,帮助读者建立起系统的环路防护知识体系。
二、核心概念
2.1 二层环路的形成与危害
二层环路产生的根本原因是:交换机的 MAC 地址学习机制与广播帧的转发行为相结合,在存在多路径的拓扑中形成了闭环。
环路产生的三大危害:
| 危害类型 | 描述 | 影响程度 |
|---|---|---|
| 广播风暴 | 广播帧在环路中无限循环复制,消耗全部带宽 | 严重 |
| MAC 地址表震荡 | 同一 MAC 地址从不同端口学习到,导致转发表不稳定 | 严重 |
| 多重帧复制 | 单播帧被多次复制发送,接收端收到重复报文 | 中等 |
2.2 STP 协议族演进

- STP(802.1D):最初的生成树协议,收敛时间长达 30-50 秒,所有 VLAN 共享一棵生成树
- RSTP(802.1w):快速生成树协议,引入 Alternating/Backup 端口状态,收敛时间缩短至 1-2 秒
- MSTP(802.1s):多生成树协议,支持多个 MST 实例,不同 VLAN 可以映射到不同的实例,实现负载分担
2.3 STP 端口角色与状态
| 端口角色 | 说明 | 是否转发数据 |
|---|---|---|
| Root Port(根端口) | 每个非根桥到根桥的最佳路径端口 | 是 |
| Designated Port(指定端口) | 每个网段上负责转发数据的端口 | 是 |
| Alternate Port(替代端口) | RSTP 中替代根端口的备份端口 | 否 |
| Backup Port(备份端口) | RSTP 中替代指定端口的备份端口 | 否 |
| Edge Port(边缘端口) | 连接终端设备的端口,不参与生成树计算 | 是 |
三、技术细节
3.1 BPDU 报文结构
BPDU(Bridge Protocol Data Unit)是 STP/RSTP/MSTP 协议通信的核心载体。

Configuration BPDU 关键字段:
| 字段 | 长度 | 说明 |
|---|---|---|
| Root Bridge ID | 8 字节 | 根桥的 Bridge ID(优先级 + MAC) |
| Root Path Cost | 4 字节 | 到根桥的累计路径开销 |
| Sender Bridge ID | 8 字节 | 发送此 BPDU 的交换机 Bridge ID |
| Sender Port ID | 2 字节 | 发送此 BPDU 的端口 ID |
| Message Age | 2 字节 | BPDU 已存在的时间 |
| Max Age | 2 字节 | BPDU 的最大存活时间(默认 20 秒) |
3.2 根桥选举过程
根桥选举遵循以下规则(逐一比较,优者胜):
- 最低 Bridge Priority(默认 32768,可配置为 0-61440,步长 4096)
- 最低 MAC 地址(当优先级相同时比较 MAC)
选举流程:
- 每台交换机初始时都认为自己是最优的根桥
- 交换机之间互相交换 BPDU,比较 Bridge ID
- Bridge ID 最小的交换机成为根桥
- 根桥确定后,所有非根桥选举根端口(到根桥路径开销最小的端口)
- 在每个网段上,选举指定端口(到根桥路径开销最小的交换机上的端口)
- 既不是根端口也不是指定端口的端口进入阻塞状态
3.3 RSTP 快速收敛机制
RSTP 相比 STP 的核心改进:
- 端口角色新增:Alternate Port 和 Backup Port,提前确定备份路径
- 端口状态简化:从 STP 的 5 种状态简化为 3 种(Discarding、Learning、Forwarding)
- Proposal/Agreement 握手机制:新链路可以快速进入转发状态,无需等待监听和学习时间

3.4 MSTP 实例与 VLAN 映射
MSTP 通过 MST 实例(MST Instance)实现多棵生成树:
- IST(Internal Spanning Tree):实例 0,所有 VLAN 默认映射到此实例
- MSTI(MST Instance):实例 1-65534,可以自定义 VLAN 映射
不同 MST 区域通过 Regional Root Bridge 互联,区域间使用 IST 进行通信。
四、实战配置/案例分析
4.1 华为交换机 MSTP 基础配置
# 全局启用 MSTP
[HUAWEI] stp mode mstp
[HUAWEI] stp enable
# 配置 Bridge Priority(设置为 4096 使其成为根桥)
[HUAWEI] stp priority 4096
# 创建 MST 实例并将 VLAN 映射
[HUAWEI] stp instance 1 vlan 10 to 50
[HUAWEI] stp instance 2 vlan 60 to 100
# 为不同实例配置不同的根桥优先级
[HUAWEI] stp instance 1 priority 4096
[HUAWEI] stp instance 2 priority 8192
# 配置端口为边缘端口(加速收敛)
[HUAWEI] interface GigabitEthernet 0/0/1
[HUAWEI-GigabitEthernet0/0/1] stp edged-port enable
# 配置 BPDU 保护
[HUAWEI] stp bpdu-protection
4.2 环路故障排查案例
场景描述:某园区网接入层交换机 SW-ACC-01 与 SW-ACC-02 之间有两条链路互联,同时两台中汇聚交换机 SW-AGR-01 和 SW-AGR-02 分别与两台接入交换机相连。某日下午 2 点,网络大面积丢包,用户反馈无法访问业务系统。
排查步骤:
- 检查 STP 状态:
[SW-ACC-01] display stp brief
-
发现异常:某条链路两端的端口都处于 Forwarding 状态,未阻塞任何端口。
-
根因分析:运维人员在 SW-ACC-02 上新增链路时,误将该端口配置为
stp edged-port enable,导致 STP 不再在此端口上收发 BPDU,环路未被检测到。 -
处理措施:
# 关闭错误配置
[SW-ACC-02] interface GigabitEthernet 0/0/24
[SW-ACC-02-GigabitEthernet0/0/24] undo stp edged-port enable
# 验证端口进入 Discarding 状态
[SW-ACC-02] display stp brief
- 长期整改:启用全局 BPDU 保护,防止边缘端口收到 BPDU 后引发异常:
[HUAWEI] stp bpdu-protection
五、总结
| 项目 | 说明 |
|---|---|
| 二层环路根因 | 冗余链路 + MAC 自学习 + 广播转发 = 闭环转发 |
| STP 核心思路 | 通过 BPDU 选举根桥,阻塞冗余端口,打破环路 |
| RSTP 优势 | Proposal/Agreement 握手实现毫秒级收敛 |
| MSTP 优势 | 多实例支持,不同 VLAN 负载分担 |
| 华为推荐模式 | MSTP(stp mode mstp),兼顾兼容性与性能 |
| 关键保护机制 | BPDU 保护、根保护、环路保护、TC 保护 |
| 排查要点 | 检查端口角色、确认边缘端口配置正确、启用保护特性 |
思考
-
在一个由 5 台交换机组成的环型拓扑中,如果所有交换机的优先级都使用默认值 32768,哪台交换机会成为根桥?如何主动控制根桥的选举结果?
-
RSTP 的 Proposal/Agreement 握手机制与 STP 的监听+学习状态(共 30 秒)相比,在哪些场景下能快速收敛?在哪些场景下可能无法触发快速收敛?
-
MSTP 中,如果将 VLAN 10-50 映射到 Instance 1,VLAN 60-100 映射到 Instance 2,VLAN 5 未映射到任何实例,VLAN 5 的流量会走哪棵生成树?
下篇预告:第102篇:BPDU 保护、根保护、环路保护配置