生成树协议 STP / RSTP / MSTP
【摘要】 📘 生成树协议 STP / RSTP / MSTP ✅ 一、引言与背景 🎯 环路的危害:冗余链路提升可靠性,但易造成二层环路。引发问题包括:广播风暴(Broadcast Storm)MAC地址漂移网络收敛失败与设备宕机 🛠 解决方案:生成树协议(STP)自动识别拓扑中的环路并阻塞冗余端口 → 构建树型无环结构;RSTP:快速收敛版本;MSTP/VBST:解决VLAN负载均衡问题。 ✅...
📘 生成树协议 STP / RSTP / MSTP
✅ 一、引言与背景
🎯 环路的危害:
-
冗余链路提升可靠性,但易造成二层环路。
-
引发问题包括:
- 广播风暴(Broadcast Storm)
- MAC地址漂移
- 网络收敛失败与设备宕机
🛠 解决方案:生成树协议(STP)
- 自动识别拓扑中的环路并阻塞冗余端口 → 构建树型无环结构;
- RSTP:快速收敛版本;
- MSTP/VBST:解决VLAN负载均衡问题。
✅ 二、STP 基本概念与核心机制
概念 | 含义 |
---|---|
BID | Bridge ID:桥优先级 + MAC,共64位,唯一识别交换机 |
根桥 | BID最小者成为“树根”,所有设备计算到其路径 |
Cost | 到达根桥的链路开销,带宽越高 Cost 越小 |
RPC | Root Path Cost,累积路径开销 |
Port ID | 4位优先级 + 12位端口号 |
BPDU | 生成树报文,用于交换拓扑信息,有 Configuration BPDU 和 TCN BPDU 两种 |
📐 BPDU 比较优先级:
- 根桥 ID 最小
- RPC 最小
- 网桥 ID 最小
- 端口 ID 最小
✅ 三、STP 拓扑计算流程(四步)
步骤 | 内容说明 |
---|---|
① 选举根桥 | 所有设备广播自己的BID,选出最小者 |
② 选根接口 | 非根桥选择路径最优的接口作为朝向根桥的端口(RP) |
③ 选指定接口 | 每段链路选出唯一负责转发的指定端口(DP) |
④ 阻塞其他接口 | 非RP、非DP端口进入阻塞状态,打破环路 |
✅ 四、STP 接口状态五种(+ 迁移流程)
状态 | 说明 |
---|---|
Disabled | 接口Down,未参与STP |
Blocking | 不转发、不学习,仅侦听BPDU |
Listening | 接收BPDU,不转发、不学习MAC |
Learning | 学习MAC地址,不转发流量 |
Forwarding | 正常转发业务流量 |
📶 典型收敛延迟:Listening(15s)+ Learning(15s)= 30s
✅ 五、RSTP 改进点(IEEE 802.1w)
改进点 | 描述 |
---|---|
快速收敛 | 移除被动计时器机制,链路故障可毫秒级切换 |
新增端口角色 | Alternate、Backup,用于快速切换 |
状态简化 | 只保留 Discarding / Learning / Forwarding 三种 |
边缘端口支持 | 直接进入 Forwarding 状态,无需等待 |
BPDU机制优化 | 配置BPDU双向确认,可加快拓扑变化响应 |
✅ 六、MSTP 与 VBST 多生成树机制
协议 | 特点 |
---|---|
VBST | 华为私有协议,每个VLAN单独生成树 |
MSTP | 多个VLAN可映射到同一个 MST 实例,实现负载均衡与收敛加快 |
✅ MSTP术语:
- MSTI(MST实例):多个 VLAN 的集合
- CIST:兼容其他 STP 协议的统一树
- 优点:节省资源 / 支持分担链路负载 / 提高效率
✅ 七、STP 配置命令(华为)
# 启用 STP
[Huawei] stp enable
# 设置工作模式:stp / rstp / mstp
[Huawei] stp mode rstp
# 设置为根桥 / 备份根桥
[Huawei] stp root primary
[Huawei] stp root secondary
# 自定义桥优先级(数值越小越优先)
[Huawei] stp priority 0
# 修改接口cost与port优先级
[Huawei-GE0/0/1] stp cost 20
[Huawei-GE0/0/1] stp priority 128
✅ 八、典型案例分析
案例:三交换机组网 STP消除环路
# SW1:设为根桥
[SW1] stp enable
[SW1] stp priority 0
# SW2:正常启用
[SW2] stp enable
# SW3:查看状态
<SW3> display stp brief
结果:SW3 的 GE0/0/22 显示为 ALTE DISCARDING,即阻塞状态。
✅ 九、拓扑变化响应机制
故障类型 | 恢复机制说明 |
---|---|
根桥故障 | 触发重新选举,50s 内恢复(STP) |
直连链路故障 | 替代端口替换RP,约30s恢复 |
非直连链路故障 | 需重新学习路径,最长约50s |
MAC表漂移问题 | 触发TCN BPDU,更新MAC表 |
✅ 十、本章总结要点
模块 | 要点精华 |
---|---|
STP核心角色 | 根桥、根接口、指定接口、非指定接口 |
接口状态迁移 | 由阻塞 → 侦听 → 学习 → 转发 |
收敛慢的问题 | RSTP可改进、MSTP/VBST支持负载均衡 |
配置建议 | 主干链路设置Trunk,适当提升优先级 |
协议选择 | 小网可用STP,中大网建议用RSTP/MSTP |
🧪 生成树协议(STP/RSTP/MSTP)
✅ 一、选择题(每题2分)
1. 以下哪个不是生成树协议的主要目的?
A. 防止二层环路
B. 实现VLAN间通信
C. 减少广播风暴
D. 维护无环拓扑结构
✅ **答案:B**
2. 在STP中,用于选举根桥的字段是:
A. MAC地址
B. 路由ID
C. Bridge ID(BID)
D. 优先级值
✅ **答案:C**
3. STP中阻止环路的具体机制是:
A. IP黑名单过滤
B. 封堵广播帧
C. 阻塞部分交换端口
D. 阻止ARP请求
✅ **答案:C**
4. RSTP协议相较STP最大的优势是:
A. 使用静态路径
B. 更低的成本值
C. 支持链路聚合
D. 更快的收敛速度
✅ **答案:D**
5. 在MSTP中,不同VLAN之间的流量是如何控制的?
A. 全部映射到默认VLAN
B. 通过三层设备转发
C. 被映射到多个实例实现负载均衡
D. 阻止不同实例间通信
✅ **答案:C**
✅ 二、判断题(每题1分)
1.(✔)BPDU是交换机用于生成树信息交换的协议数据单元。
2.(✘)STP中所有端口最终都会进入转发状态。
3.(✔)RSTP将端口状态简化为三种。
4.(✔)MSTP可以将多个VLAN映射到同一个生成树实例。
5.(✘)RSTP无法与传统STP设备兼容。
✅ 三、简答题(每题5分)
-
简述STP协议的基本工作流程。
参考答案:- 各交换机发送BPDU广播自己的BID;
- 选出根桥后,其它交换机计算到根桥的最短路径;
- 每个非根桥选一个根端口(Root Port);
- 每段链路选出指定端口(Designated Port);
- 其余端口阻塞,形成无环拓扑。
-
RSTP相较STP的主要改进有哪些?
参考答案:- 快速收敛(可秒级切换);
- 增加Alternate/Backup端口角色;
- 状态简化为三种:Discarding、Learning、Forwarding;
- 支持边缘端口直接进入转发状态;
- 配置BPDU为点对点双向握手,提高响应效率。
-
什么是MSTP?它如何解决VLAN负载均衡问题?
参考答案:- MSTP为IEEE 802.1s标准,可将多个VLAN映射到一个生成树实例;
- 每个实例独立计算生成树拓扑;
- 不同实例可以使用不同链路进行转发,实现链路负载分担;
- 避免传统STP所有VLAN共用一棵树带来的单点瓶颈问题。
✅ 四、图解题(每题10分)
题目:
> 网络拓扑如图:三台交换机 SW1、SW2、SW3 形成一个环,连接如下:
>
> * SW1与SW2连接 GE0/0/1
> * SW2与SW3连接 GE0/0/2
> * SW3与SW1连接 GE0/0/3
> * SW1设为根桥
> 请标注各个端口角色,并指出哪条链路会被阻塞。
参考答案:
-
SW1:
- 所有端口为 Designated Port(DP)
-
SW2:
- 到SW1最近端口为 Root Port(RP)
- 向SW3方向端口为 Designated Port
-
SW3:
- 向SW1方向端口为 Root Port
- 向SW2方向端口为 Alternate → 阻塞端口
阻塞端口为SW3 → SW2方向的接口,用于打破环路。
✅ 五、思考题解析
❶ 为什么生成树协议会造成收敛慢?RSTP如何解决?
✅ 解答:
-
原因:
- STP中端口需要经过 Listening(15s)→ Learning(15s)才能进入 Forwarding 状态;
- 遇到链路故障时需等待超时才能重新收敛。
-
RSTP解决方法:
- 使用点对点握手机制加快端口状态转换;
- 新增Alternate、Backup端口,在主链路断开时快速切换;
- 边缘端口可立即进入转发状态,无需等待。
❷ 如何在企业网络中实现VLAN与生成树之间的负载均衡?
✅ 解答:
-
通过 MSTP 协议:
- 将不同的 VLAN 映射到不同的 MST 实例;
- 每个实例独立形成一棵生成树;
- 配置每棵树的根桥不同,形成主干链路分担;
- 达到 VLAN 流量在不同链路上进行转发的目的。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)