0. 课件来源
STP/RSTP 都是"单生成树"(CST)—— 所有 VLAN 共享一棵树,无法做负载分担。思科 PVST 虽能按 VLAN 负载但 VLAN 过多资源消耗巨大。MSTP(802.1S)通过 Instance(实例) 映射多个 VLAN 到一棵生成树,兼顾负载与资源。
1. 单生成树的痛点
| 协议 | 问题 |
|---|---|
| STP / RSTP(CST) | 所有 VLAN 共享一棵树 → 链路浪费、无法负载 |
| PVST / Rapid PVST | 每 VLAN 一棵树 → VLAN 超过 1000 个时资源消耗巨大 |
💡 MSTP 折衷方案
MSTP 把 一组 VLAN 映射到 一个 Instance,每个 Instance 独立算树。VLAN 数量再多,只要映射的 Instance 少,也能节省资源并实现负载分担。
2. Instance 与 CST/IST/CIST
| 概念 | 含义 |
|---|---|
| Instance 0 | 默认存在的"根本大树/原始大树",映射所有 VLAN(不能删除)即 CST |
| Instance XX | 把部分 VLAN 映射进去,独立算树 |
| CST | Common STP,域间公共生成树 = Instance 0 的域间部分 |
| IST | Internal STP,域内生成树 = Instance 0 的域内部分 |
| CIST | Common & Internal STP = CST + IST,即 Instance 0 的完整树 |
text
转发路径判断流程:
1. VLAN 10 属于哪个 Instance?
2. 这个 Instance 的转发路径是什么?
3. → VLAN 10 转发路径就出来了3. MST Region(域)
3.1 同域三要素
所有交换机必须 同时满足以下 3 条 才算在同一个域(region):
| 条件 | 层面 | 说明 |
|---|---|---|
| 相同的 VLAN 映射表 | 技术 | Instance 与 VLAN 的映射关系 |
| 相同的 name | 管理 | 域名 |
| 相同的 revision | 管理 | 修订号 |
⚠️ 多域的由来
交换网络中 VLAN 配置不一致(某些交换机有特定 VLAN),导致 VLAN 映射表不同 → hash 不同 → 多域。
3.2 同域判定机制
收到 MSTP BPDU 后比较 MST 扩展中的 hash:
text
if hash 一致:
then 同域 → 比较 IST 详细信息
else:
多域 → 域间只能交互 CST(Instance 0),无法读取 MST 扩展详情3.3 单域 vs 多域
| 类型 | 优点 | 缺点 |
|---|---|---|
| 单域 | 防环、冗余、最优路径、快速切换(RSTP)、负载 | — |
| 多域 | 上述 + 隔离(个性化选路) | 域内最优,可能域间次优 |
4. MSTP 配置流程
text
0. 划分 VLAN,配置成员接口
vlan batch 10 20 30 40
# 互联接口配 trunk/hybrid 及 vlan-list
1. 所有交换机配置 MSTP 域
stp mode mstp
stp region-configuration
region-name hw
revision-level 10
instance 20 vlan 20 30
active region-configuration
2. 针对不同 Instance 配主根/备份根
SW1:
stp instance 0 root primary # Instance 0 主根
stp instance 20 root secondary # Instance 20 备根
SW2:
stp instance 20 root primary # Instance 20 主根
stp instance 0 root secondary # Instance 0 备根💡 负载分担思路
不同 Instance 让不同交换机做根,从而让不同 VLAN 走不同上行链路。SW1 做 Instance 0 的根,SW2 做 Instance 20 的根,映射到 Instance 0 的 VLAN 走一条上行链路,映射到 Instance 20 的 VLAN 走另一条,实现负载分担。
5. MSTP 选路原则(7 步,单域)
| 顺序 | 字段 | 说明 |
|---|---|---|
| 1 | CIST ROOT ID(总根 ID) | 整网络最小的 BID |
| 2 | External RPC(外部 cost) | 域间 cost,单域为 0 |
| 3 | CIST Region ROOT ID(域根 ID) | 单域中域根=总根 |
| 4 | Internal RPC(内部 cost) | 域内 cost(802.1T,千兆 20000) |
| 5 | Sender BID(发送方 BID) | |
| 6 | PID(端口 ID) | |
| 7 | 本地 PID |
💡 单域简化
在单域场景下,"总根 = 域根",External RPC = 0,所以前 3 步退化为:先比总根 ID,再比内部 cost —— 等价于 RSTP 选路(RID → RPC → BID → PID → 本地 PID)。
但 多域 时必须依次比 7 步,先按总根和外部 cost 选域根,再在域内按内部 cost 算 IST。
6. 多域选举机制
6.1 选举流程
text
1. 所有的 Instance 0 进行选举,BID 最小者为 CIST ROOT(总根)
→ 总根所在域 = "总根域";总根既是总根又是域根
2. 非总根域要选举"域根"(Instance 0 的 CIST region root)
→ 域根 = 本域到总根域最优的"边界交换机"
→ 边界判定:收到 BPDU 的 hash 与自身不同 → 是边界
→ 边界选举原则:总根 ID → 外部 RPC → 域根 ID
3. 所有域在总根和域根的指导下,计算 IST(内部生成树)
域内 IST 选路 7 步:
1. 总根 ID
2. 外部 cost
3. 域根 ID
=======以上是 CST======
4. 内部 cost
5. 发送方 ID
6. 端口 ID
7. 本地端口 ID6.2 多域关键端口角色
| 端口 | 含义 |
|---|---|
| Master Port(主端口) | 域的边界上连总根域的端口,承担该域 Instance 对外转发流量 |
| Master Bridge(主桥) | 该域到总根最优的边界交换机 |
text
SW3 的 G0/0/22:
- 在 Instance 0 上是根端口(RP)
- 在 Instance 20 上是主端口(Master Port)
→ SW3 是 Instance 20 该域的主桥(Master Bridge)7. MSTP 全景对比
| 维度 | CST(STP/RSTP) | PVST | MSTP |
|---|---|---|---|
| 树的数量 | 1 棵 | 每 VLAN 1 棵 | 每 Instance 1 棵 |
| 负载分担 | ❌ | ✅ | ✅ |
| VLAN 三千时 | — | 资源消耗大 | 节省资源 |
| 快速切换 | RSTP ✅ | Rapid PVST ✅ | ✅(沿用 RSTP) |
| 域 | 无 | 无 | 有(region) |
8. 易混淆点与考前速记
| 对比项 | 结论 |
|---|---|
| CST vs CIST | CST 是域间公共树;CIST = CST + IST 整体 |
| Instance 0 | 默认存在不可删除,映射所有 VLAN = 根本大树 |
| 同域三要素 | 相同 VLAN 映射表 + 相同 name + 相同 revision |
| 多域判定 | 比较 MST 扩展的 hash,一致则同域 |
| MSTP 选路(单域) | 退化到 5 步(总根、内部 cost、BID、PID、本地 PID) |
| MSTP 选路(多域) | 7 步:总根 ID → 外部 RPC → 域根 ID → 内部 RPC → BID → PID → 本地 PID |
| Master Port | 域的边界端口,承担 Instance 对外转发 |
| 负载分担 | 不同 Instance 用不同根,不同 VLAN 走不同链路 |
考前速记 7 条:
Instance 0 = 根本大树,映射所有 VLAN,不能删除CIST = CST(域间)+ IST(域内)同域 3 要素:相同 VLAN 映射表 + name + revisionhash 一致 → 同域;hash 不同 → 多域,域间仅交互 CSTMSTP 单域选路 = 总根 ID → 内部 cost → BID → PID → 本地 PIDMSTP 多域选路 7 步:总根 ID → 外部 RPC → 域根 ID → 内部 RPC → BID → PID → 本地 PID不同 Instance 配不同根,实现 VLAN 负载分担
