一、实验背景在传统的 STP/RSTP 网络中所有 VLAN 共享一棵生成树被阻塞的端口在任何 VLAN 下都不转发数据导致链路带宽无法充分利用。MSTPMultiple Spanning Tree Protocol多实例生成树协议通过将多个 VLAN 映射到不同的生成树实例Instance每个实例独立计算拓扑从而实现不同 VLAN 走不同链路的负载分担效果。二、实验拓扑设备清单表格设备角色实例 1VLAN10实例 2VLAN20SW-CORE1核心交换机主根Root Primary备根Root SecondarySW-CORE2核心交换机备根Root Secondary主根Root PrimarySW-AGG1接入交换机下联 PC1VLAN10—SW-AGG2接入交换机—下联 PC2VLAN20接口连接表表格本端接口对端接口链路类型SW-CORE1GE0/0/24SW-CORE2GE0/0/24TrunkSW-CORE1GE0/0/1SW-AGG1GE0/0/1TrunkSW-CORE1GE0/0/2SW-AGG2GE0/0/2TrunkSW-CORE2GE0/0/1SW-AGG2GE0/0/1TrunkSW-CORE2GE0/0/2SW-AGG1GE0/0/2TrunkSW-AGG1GE0/0/3PC1Eth0/0/1AccessVLAN10SW-AGG2GE0/0/3PC2Eth0/0/1AccessVLAN20设计思路VLAN10 的流量优先走 SW-CORE1实例 1 主根VLAN20 的流量优先走 SW-CORE2实例 2 主根两条上行链路互为备份带宽利用率翻倍。三、实验目的掌握 MSTP 域Region的配置方法理解 VLAN 与生成树实例的映射关系掌握主根 / 备根的指定方式验证多实例下的负载分担效果四、配置前准备MSTP 三要素必须完全一致才能属于同一域表格要素说明本实验取值域名Region-NameMSTP 域标识符MST-TEST修订级别Revision-Level域配置版本号1VLAN - 实例映射表哪些 VLAN 属于哪个实例VLAN10→Instance1VLAN20→Instance2⚠️关键提醒同一 MSTP 域内所有交换机以上三项配置必须字节级一致否则会被视为不同域无法实现预期的负载分担。这是初学者最容易踩的坑。五、详细配置步骤5.1 核心交换机 SW-CORE1 配置shell# 进入系统视图 Huawei system-view # 修改设备名称为 SW-CORE1 [Huawei] sysname SW-CORE1 # 创建实验所需 VLAN [SW-CORE1] vlan batch 10 20 # 将 STP 模式设置为 MSTP华为设备默认就是 MSTP显式配置更规范 [SW-CORE1] stp mode mstp # 进入 MSTP 域配置视图 [SW-CORE1] stp region-configuration # 配置 MSTP 域名同一域内所有交换机必须一致 [SW-CORE1-mst-region] region-name MST-TEST # 配置修订级别同一域内必须一致范围 0-65535 [SW-CORE1-mst-region] revision-level 1 # 将 VLAN10 映射到生成树实例 1 [SW-CORE1-mst-region] instance 1 vlan 10 # 将 VLAN20 映射到生成树实例 2 [SW-CORE1-mst-region] instance 2 vlan 20 # 激活 MSTP 域配置必须执行否则配置不生效 [SW-CORE1-mst-region] active region-configuration # 退出 MSTP 域配置视图 [SW-CORE1-mst-region] quit # 指定 SW-CORE1 为实例 1 的主根桥 # 该命令会自动将本交换机在实例1中的桥优先级设为 0 [SW-CORE1] stp instance 1 root primary # 指定 SW-CORE1 为实例 2 的备根桥 # 该命令会自动将本交换机在实例2中的桥优先级设为 4096 [SW-CORE1] stp instance 2 root secondary # 接口配置 # GE0/0/24与 SW-CORE2 互联配置为 Trunk允许 VLAN10、20 通过 [SW-CORE1] interface GigabitEthernet 0/0/24 [SW-CORE1-GigabitEthernet0/0/24] port link-type trunk [SW-CORE1-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 [SW-CORE1-GigabitEthernet0/0/24] quit # GE0/0/1与 SW-AGG1 互联配置为 Trunk [SW-CORE1] interface GigabitEthernet 0/0/1 [SW-CORE1-GigabitEthernet0/0/1] port link-type trunk [SW-CORE1-GigabitEthernet0/0/1] port trunk allow-pass vlan 10 20 [SW-CORE1-GigabitEthernet0/0/1] quit # GE0/0/2与 SW-AGG2 互联配置为 Trunk [SW-CORE1] interface GigabitEthernet 0/0/2 [SW-CORE1-GigabitEthernet0/0/2] port link-type trunk [SW-CORE1-GigabitEthernet0/0/2] port trunk allow-pass vlan 10 20 [SW-CORE1-GigabitEthernet0/0/2] quit # 保存配置 [SW-CORE1] save注释解析stp instance 1 root primary等价于将桥优先级手动设为0是成为根桥的最直接方式。stp instance 2 root secondary等价于将桥优先级设为4096当主根故障时自动接替成为根桥。active命令极易被忽略 ——MSTP 域配置修改后必须active才能生效这是华为 VRP 的特性。本设备三个接口分别连接 CORE2GE0/0/24、AGG1GE0/0/1、AGG2GE0/0/2均需配置为 Trunk 以承载多 VLAN 流量。5.2 核心交换机 SW-CORE2 配置shell# 进入系统视图 Huawei system-view # 修改设备名称为 SW-CORE2 [Huawei] sysname SW-CORE2 # 创建实验所需 VLAN [SW-CORE2] vlan batch 10 20 # 设置 STP 模式为 MSTP [SW-CORE2] stp mode mstp # 进入 MSTP 域配置视图 [SW-CORE2] stp region-configuration # 域名必须与 SW-CORE1 完全一致 [SW-CORE2-mst-region] region-name MST-TEST # 修订级别必须与 SW-CORE1 完全一致 [SW-CORE2-mst-region] revision-level 1 # VLAN-实例映射必须与 SW-CORE1 完全一致 [SW-CORE2-mst-region] instance 1 vlan 10 [SW-CORE2-mst-region] instance 2 vlan 20 # 激活域配置 [SW-CORE2-mst-region] active region-configuration [SW-CORE2-mst-region] quit # 指定 SW-CORE2 为实例 1 的备根桥与 SW-CORE1 对调 [SW-CORE2] stp instance 1 root secondary # 指定 SW-CORE2 为实例 2 的主根桥与 SW-CORE1 对调 [SW-CORE2] stp instance 2 root primary # 接口配置 # GE0/0/24与 SW-CORE1 互联配置为 Trunk [SW-CORE2] interface GigabitEthernet 0/0/24 [SW-CORE2-GigabitEthernet0/0/24] port link-type trunk [SW-CORE2-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 [SW-CORE2-GigabitEthernet0/0/24] quit # GE0/0/1与 SW-AGG2 互联配置为 Trunk [SW-CORE2] interface GigabitEthernet 0/0/1 [SW-CORE2-GigabitEthernet0/0/1] port link-type trunk [SW-CORE2-GigabitEthernet0/0/1] port trunk allow-pass vlan 10 20 [SW-CORE2-GigabitEthernet0/0/1] quit # GE0/0/2与 SW-AGG1 互联配置为 Trunk [SW-CORE2] interface GigabitEthernet 0/0/2 [SW-CORE2-GigabitEthernet0/0/2] port link-type trunk [SW-CORE2-GigabitEthernet0/0/2] port trunk allow-pass vlan 10 20 [SW-CORE2-GigabitEthernet0/0/2] quit # 保存配置 [SW-CORE2] save注释解析SW-CORE2 的域配置域名、修订级别、VLAN 映射与 SW-CORE1完全相同这是它们属于同一 MSTP 域的前提。唯一区别在于根桥角色对调SW-CORE2 在实例 1 中是备根在实例 2 中是主根。这样 VLAN10 的流量走 SW-CORE1VLAN20 的流量走 SW-CORE2实现负载分担。注意接口对应关系GE0/0/1 连 AGG2GE0/0/2 连 AGG1与 CORE1 交叉对应。5.3 接入交换机 SW-AGG1 配置下联 PC1VLAN10shellHuawei system-view [Huawei] sysname SW-AGG1 # 创建 VLAN10、20Trunk 链路需要允许通过的 VLAN 必须先在本地创建 [SW-AGG1] vlan batch 10 20 # 接入交换机同样需要配置 MSTP 域且三要素必须与核心一致 [SW-AGG1] stp mode mstp [SW-AGG1] stp region-configuration [SW-AGG1-mst-region] region-name MST-TEST [SW-AGG1-mst-region] revision-level 1 [SW-AGG1-mst-region] instance 1 vlan 10 [SW-AGG1-mst-region] instance 2 vlan 20 [SW-AGG1-mst-region] active region-configuration [SW-AGG1-mst-region] quit # 接口配置 # GE0/0/1上联 SW-CORE1配置为 Trunk [SW-AGG1] interface GigabitEthernet 0/0/1 [SW-AGG1-GigabitEthernet0/0/1] port link-type trunk [SW-AGG1-GigabitEthernet0/0/1] port trunk allow-pass vlan 10 20 [SW-AGG1-GigabitEthernet0/0/1] quit # GE0/0/2上联 SW-CORE2配置为 Trunk [SW-AGG1] interface GigabitEthernet 0/0/2 [SW-AGG1-GigabitEthernet0/0/2] port link-type trunk [SW-AGG1-GigabitEthernet0/0/2] port trunk allow-pass vlan 10 20 [SW-AGG1-GigabitEthernet0/0/2] quit # GE0/0/3下联 PC1配置为 Access加入 VLAN10 [SW-AGG1] interface GigabitEthernet 0/0/3 [SW-AGG1-GigabitEthernet0/0/3] port link-type access [SW-AGG1-GigabitEthernet0/0/3] port default vlan 10 [SW-AGG1-GigabitEthernet0/0/3] quit [SW-AGG1] save注释解析接入交换机必须配置相同的 MSTP 域信息否则它会被视为不同域的边界交换机MSTP 行为异常。接入交换机不需要指定根桥它会自动通过 BPDU 选举确定根端口和指定端口。GE0/0/1 走 CORE1 方向GE0/0/2 走 CORE2 方向MSTP 会在实例 1 中选 GE0/0/1 为根端口因为 CORE1 是实例 1 主根在实例 2 中选 GE0/0/2 为根端口因为 CORE2 是实例 2 主根。5.4 接入交换机 SW-AGG2 配置下联 PC2VLAN20shellHuawei system-view [Huawei] sysname SW-AGG2 [SW-AGG2] vlan batch 10 20 # MSTP 域配置与其他交换机保持一致 [SW-AGG2] stp mode mstp [SW-AGG2] stp region-configuration [SW-AGG2-mst-region] region-name MST-TEST [SW-AGG2-mst-region] revision-level 1 [SW-AGG2-mst-region] instance 1 vlan 10 [SW-AGG2-mst-region] instance 2 vlan 20 [SW-AGG2-mst-region] active region-configuration [SW-AGG2-mst-region] quit # 接口配置 # GE0/0/1上联 SW-CORE2配置为 Trunk [SW-AGG2] interface GigabitEthernet 0/0/1 [SW-AGG2-GigabitEthernet0/0/1] port link-type trunk [SW-AGG2-GigabitEthernet0/0/1] port trunk allow-pass vlan 10 20 [SW-AGG2-GigabitEthernet0/0/1] quit # GE0/0/2上联 SW-CORE1配置为 Trunk [SW-AGG2] interface GigabitEthernet 0/0/2 [SW-AGG2-GigabitEthernet0/0/2] port link-type trunk [SW-AGG2-GigabitEthernet0/0/2] port trunk allow-pass vlan 10 20 [SW-AGG2-GigabitEthernet0/0/2] quit # GE0/0/3下联 PC2配置为 Access加入 VLAN20 [SW-AGG2] interface GigabitEthernet 0/0/3 [SW-AGG2-GigabitEthernet0/0/3] port link-type access [SW-AGG2-GigabitEthernet0/0/3] port default vlan 20 [SW-AGG2-GigabitEthernet0/0/3] quit [SW-AGG2] save注释解析注意 SW-AGG2 的上联接口与 SW-AGG1 是交叉的GE0/0/1 连 CORE2GE0/0/2 连 CORE1。与 SW-AGG1 同理MSTP 会根据实例根桥位置自动选择根端口实现负载分担。六、验证与结果分析6.1 查看 MSTP 域配置shell# 在任意交换机上查看 MSTP 域配置 SW-CORE1 display stp region-configuration预期输出plaintextOper configuration Format selector :0 Region name :MST-TEST Revision level :1 Instance VLANs Mapped 0 1-9, 11-19, 21-4094 1 10 2 20实验输出结果解析未映射的 VLAN包括默认 VLAN1自动归入实例 0CIST 实例。实例 0 是 MSTP 的内部生成树始终存在。6.2 查看生成树简要信息核心验证命令shell# 查看所有实例的生成树状态 SW-CORE1 display stp brief预期输出SW-CORE1 上plaintextMSTID Port Role STP State Protection 0 GigabitEthernet0/0/24 DESI FORWARDING NONE 0 GigabitEthernet0/0/1 DESI FORWARDING NONE 0 GigabitEthernet0/0/2 DESI FORWARDING NONE 1 GigabitEthernet0/0/24 DESI FORWARDING NONE 1 GigabitEthernet0/0/1 DESI FORWARDING NONE 1 GigabitEthernet0/0/2 DESI FORWARDING NONE 2 GigabitEthernet0/0/24 ROOT FORWARDING NONE 2 GigabitEthernet0/0/1 DESI FORWARDING NONE 2 GigabitEthernet0/0/2 DESI FORWARDING NONE解析实例 1MSTID 1SW-CORE1 所有端口角色都是DESI指定端口说明 SW-CORE1 是实例 1 的根桥—— 根桥上所有端口都是指定端口不存在根端口。实例 2MSTID 2SW-CORE1 的 GE0/0/24连接 SW-CORE2角色为ROOT根端口说明 SW-CORE1 在实例 2 中不是根桥根桥是 SW-CORE2。这符合我们的设计预期。预期输出SW-CORE2 上plaintextMSTID Port Role STP State Protection 1 GigabitEthernet0/0/24 ROOT FORWARDING NONE 1 GigabitEthernet0/0/1 DESI FORWARDING NONE 1 GigabitEthernet0/0/2 DESI FORWARDING NONE 2 GigabitEthernet0/0/24 DESI FORWARDING NONE 2 GigabitEthernet0/0/1 DESI FORWARDING NONE 2 GigabitEthernet0/0/2 DESI FORWARDING NONE解析与 SW-CORE1 正好相反 —— 实例 1 中 GE0/0/24 是根端口根桥是 SW-CORE1实例 2 中所有端口都是指定端口SW-CORE2 是根桥。6.3 接入交换机负载分担验证重点在 SW-AGG1 上查看生成树状态shellSW-AGG1 display stp brief预期输出plaintextMSTID Port Role STP State Protection 1 GigabitEthernet0/0/1 ROOT FORWARDING NONE 1 GigabitEthernet0/0/2 ALTE DISCARDING NONE 1 GigabitEthernet0/0/3 DESI FORWARDING NONE 2 GigabitEthernet0/0/1 ALTE DISCARDING NONE 2 GigabitEthernet0/0/2 ROOT FORWARDING NONE 2 GigabitEthernet0/0/3 DESI FORWARDING NONE核心解析负载分担的本质表格实例根端口转发替代端口阻塞流量走向实例 1VLAN10GE0/0/1→CORE1GE0/0/2→CORE2VLAN10 流量走 CORE1实例 2VLAN20GE0/0/2→CORE2GE0/0/1→CORE1VLAN20 流量走 CORE2同一台交换机的两个上联口在不同实例中角色完全对调 —— 一个转发、一个阻塞且阻塞的端口在不同实例中不同。两条物理链路都有流量在跑这就是 MSTP 负载分担。6.4 查看根桥信息shell# 查看实例1的根桥信息 SW-CORE1 SW-CORE1 display stp instance 1 | include MSTI Bridge|MSTI RegRoot预期输出plaintextMSTI Bridge ID :0.4clf-ccdl-596a MSTI RegRoot/IRPC :0.4clf-ccdl-596a / 0解析MSTI Bridge ID 是本交换机在该实例中的桥 ID优先级 MACMSTI RegRoot 是该实例的域根桥 ID。两者相同且优先级为 0说明本交换机就是实例 1 的根桥。IRPC内部根路径开销为 0 也印证了这一点 —— 根桥到自身的路径开销为 0。七、MSTP 关键原理解析7.1 MSTP 与 STP/RSTP 的对比表格特性STPRSTPMSTP收敛速度慢30-50 秒快秒级快秒级生成树数量1 棵1 棵多棵按实例VLAN 感知否否是负载分担不支持不支持支持带宽利用率低阻塞链路闲置低高多实例分流7.2 MSTP 端口角色表格角色说明Root根端口非根桥上到根桥路径开销最小的端口负责转发流量Designated指定端口每个网段上到根桥路径开销最小的交换机端口负责向该网段转发Alternate替代端口根端口的备份当根端口故障时接替处于 Discarding 状态Backup备份端口指定端口的备份同一交换机上两个端口互联时出现Master主端口MSTP 域边界端口连接其他域或 CST类似域内的根端口7.3 为什么需要active命令华为 VRP 中MSTP 域配置采用两阶段提交机制在mst-region视图下修改配置暂存区执行active命令后才真正生效提交这样设计的好处是可以一次性修改多项域配置确认无误后统一激活避免中间状态导致网络震荡。八、常见排障思路问题 1所有交换机显示的根桥都是同一台没有负载分担排查方向检查所有交换机的region-name、revision-level、instance-vlan 映射是否完全一致使用display stp region-configuration对比各设备配置确认是否执行了active命令问题 2端口角色不符合预期排查方向检查stp instance X root primary/secondary是否配置在正确的设备上确认链路两端接口的link-type和允许通过的 VLAN 是否一致使用display stp interface GigabitEthernet X/X/X查看端口详细信息问题 3MSTP 域配置不生效排查方向确认是否在stp region-configuration视图下执行了active检查stp mode是否为mstp某些设备可能被改为stp或rstp问题 4接入交换机只有一个端口转发另一个不阻塞排查方向确认接入交换机是否真的双上联到了两台核心检查物理连线和接口状态使用display interface brief确认两个上联口都处于 UP 状态如果只有一条链路 UPMSTP 无环可破自然不会阻塞端口九、实验总结MSTP 核心价值通过 VLAN - 实例映射让不同 VLAN 走不同生成树实现链路负载分担提高带宽利用率。配置三要素域名、修订级别、VLAN 映射表同一域内所有设备必须完全一致。根桥指定通过stp instance X root primary/secondary精确控制每个实例的根桥位置是负载分担设计的关键。必做操作MSTP 域配置修改后必须执行active才能生效。验证方法display stp brief查看各实例端口角色确认接入交换机在不同实例中根端口不同即说明负载分担生效。MSTP 是企业网中最常用的二层防环协议掌握它的配置和验证方法是网络工程师的基本功。建议在 eNSP 中亲手搭建拓扑复现本实验重点观察display stp brief输出中接入交换机各实例端口角色的差异加深对负载分担原理的理解。