news 2026/8/23 7:29:12

MSTP 多实例生成树配置详解(负载分担实战)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MSTP 多实例生成树配置详解(负载分担实战)

一、实验背景

在传统的 STP/RSTP 网络中,所有 VLAN 共享一棵生成树,被阻塞的端口在任何 VLAN 下都不转发数据,导致链路带宽无法充分利用。

MSTP(Multiple Spanning Tree Protocol,多实例生成树协议)通过将多个 VLAN 映射到不同的生成树实例(Instance),每个实例独立计算拓扑,从而实现不同 VLAN 走不同链路的负载分担效果。


二、实验拓扑

设备清单:

表格

设备角色实例 1(VLAN10)实例 2(VLAN20)
SW-CORE1核心交换机主根(Root Primary)备根(Root Secondary)
SW-CORE2核心交换机备根(Root Secondary)主根(Root Primary)
SW-AGG1接入交换机下联 PC1(VLAN10)
SW-AGG2接入交换机下联 PC2(VLAN20)

接口连接表:

表格

本端接口对端接口链路类型
SW-CORE1GE0/0/24SW-CORE2GE0/0/24Trunk
SW-CORE1GE0/0/1SW-AGG1GE0/0/1Trunk
SW-CORE1GE0/0/2SW-AGG2GE0/0/2Trunk
SW-CORE2GE0/0/1SW-AGG2GE0/0/1Trunk
SW-CORE2GE0/0/2SW-AGG1GE0/0/2Trunk
SW-AGG1GE0/0/3PC1Eth0/0/1Access(VLAN10)
SW-AGG2GE0/0/3PC2Eth0/0/1Access(VLAN20)

设计思路:VLAN10 的流量优先走 SW-CORE1(实例 1 主根),VLAN20 的流量优先走 SW-CORE2(实例 2 主根),两条上行链路互为备份,带宽利用率翻倍。


三、实验目的

  1. 掌握 MSTP 域(Region)的配置方法
  2. 理解 VLAN 与生成树实例的映射关系
  3. 掌握主根 / 备根的指定方式
  4. 验证多实例下的负载分担效果

四、配置前准备

MSTP 三要素(必须完全一致才能属于同一域):

表格

要素说明本实验取值
域名(Region-Name)MSTP 域标识符MST-TEST
修订级别(Revision-Level)域配置版本号1
VLAN - 实例映射表哪些 VLAN 属于哪个实例VLAN10→Instance1,VLAN20→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 的特性。
  • 本设备三个接口分别连接 CORE2(GE0/0/24)、AGG1(GE0/0/1)、AGG2(GE0/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-CORE1,VLAN20 的流量走 SW-CORE2,实现负载分担。
  • 注意接口对应关系:GE0/0/1 连 AGG2,GE0/0/2 连 AGG1(与 CORE1 交叉对应)。

5.3 接入交换机 SW-AGG1 配置(下联 PC1,VLAN10)

shell

<Huawei> system-view [Huawei] sysname SW-AGG1 # 创建 VLAN10、20(Trunk 链路需要允许通过的 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 配置(下联 PC2,VLAN20)

shell

<Huawei> 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 连 CORE2,GE0/0/2 连 CORE1。
  • 与 SW-AGG1 同理,MSTP 会根据实例根桥位置自动选择根端口,实现负载分担。

六、验证与结果分析

6.1 查看 MSTP 域配置

shell

# 在任意交换机上查看 MSTP 域配置 <SW-CORE1> display stp region-configuration

预期输出:

plaintext

Oper 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)自动归入实例 0(CIST 实例)。实例 0 是 MSTP 的内部生成树,始终存在。


6.2 查看生成树简要信息(核心验证命令)

shell

# 查看所有实例的生成树状态 <SW-CORE1> display stp brief

预期输出(SW-CORE1 上):

plaintext

MSTID 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

解析:

  • 实例 1(MSTID 1):SW-CORE1 所有端口角色都是DESI(指定端口),说明 SW-CORE1 是实例 1 的根桥—— 根桥上所有端口都是指定端口,不存在根端口。
  • 实例 2(MSTID 2):SW-CORE1 的 GE0/0/24(连接 SW-CORE2)角色为ROOT(根端口),说明 SW-CORE1 在实例 2 中不是根桥,根桥是 SW-CORE2。这符合我们的设计预期。

预期输出(SW-CORE2 上):

plaintext

MSTID 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 上查看生成树状态:

shell

<SW-AGG1> display stp brief

预期输出:

plaintext

MSTID 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

核心解析(负载分担的本质):

表格

实例根端口(转发)替代端口(阻塞)流量走向
实例 1(VLAN10)GE0/0/1(→CORE1)GE0/0/2(→CORE2)VLAN10 流量走 CORE1
实例 2(VLAN20)GE0/0/2(→CORE2)GE0/0/1(→CORE1)VLAN20 流量走 CORE2

同一台交换机的两个上联口,在不同实例中角色完全对调 —— 一个转发、一个阻塞,且阻塞的端口在不同实例中不同。两条物理链路都有流量在跑,这就是 MSTP 负载分担。


6.4 查看根桥信息

shell

# 查看实例1的根桥信息 <SW-CORE1> <SW-CORE1> display stp instance 1 | include MSTI Bridge|MSTI RegRoot

预期输出:

plaintext

MSTI Bridge ID :0.4clf-ccdl-596a MSTI RegRoot/IRPC :0.4clf-ccdl-596a / 0

解析:MSTI Bridge ID 是本交换机在该实例中的桥 ID(优先级 + MAC),MSTI 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 域配置采用两阶段提交机制:

  1. mst-region视图下修改配置(暂存区)
  2. 执行active命令后才真正生效(提交)

这样设计的好处是:可以一次性修改多项域配置,确认无误后统一激活,避免中间状态导致网络震荡。


八、常见排障思路

问题 1:所有交换机显示的根桥都是同一台,没有负载分担

排查方向:

  • 检查所有交换机的region-namerevision-levelinstance-vlan 映射是否完全一致
  • 使用display stp region-configuration对比各设备配置
  • 确认是否执行了active命令

问题 2:端口角色不符合预期

排查方向:

  • 检查stp instance X root primary/secondary是否配置在正确的设备上
  • 确认链路两端接口的link-type和允许通过的 VLAN 是否一致
  • 使用display stp interface GigabitEthernet X/X/X查看端口详细信息

问题 3:MSTP 域配置不生效

排查方向:

  • 确认是否在stp region-configuration视图下执行了active
  • 检查stp mode是否为mstp(某些设备可能被改为stprstp

问题 4:接入交换机只有一个端口转发,另一个不阻塞

排查方向:

  • 确认接入交换机是否真的双上联到了两台核心(检查物理连线和接口状态)
  • 使用display interface brief确认两个上联口都处于 UP 状态
  • 如果只有一条链路 UP,MSTP 无环可破,自然不会阻塞端口

九、实验总结

  1. MSTP 核心价值:通过 VLAN - 实例映射,让不同 VLAN 走不同生成树,实现链路负载分担,提高带宽利用率。
  2. 配置三要素:域名、修订级别、VLAN 映射表,同一域内所有设备必须完全一致。
  3. 根桥指定:通过stp instance X root primary/secondary精确控制每个实例的根桥位置,是负载分担设计的关键。
  4. 必做操作:MSTP 域配置修改后必须执行active才能生效。
  5. 验证方法display stp brief查看各实例端口角色,确认接入交换机在不同实例中根端口不同,即说明负载分担生效。

MSTP 是企业网中最常用的二层防环协议,掌握它的配置和验证方法是网络工程师的基本功。建议在 eNSP 中亲手搭建拓扑复现本实验,重点观察display stp brief输出中接入交换机各实例端口角色的差异,加深对负载分担原理的理解。


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/23 7:28:31

移动硬盘选购终极指南:从机械到固态,16款主流产品横向评测

最近想买移动硬盘的朋友&#xff0c;是不是感觉有点无从下手&#xff1f;面对电商平台上从几十块到上千块、品牌型号五花八门的移动硬盘&#xff0c;你可能会纠结&#xff1a;到底该选哪个&#xff1f;是买个便宜的凑合用&#xff0c;还是一步到位买个贵的&#xff1f;固态和机…

作者头像 李华
网站建设 2026/8/23 7:19:55

Calibre:开源电子书管理神器,一站式解决格式转换与元数据整理

如果你是一个电子书爱好者&#xff0c;或者经常需要处理各种格式的文档&#xff0c;那么你一定经历过这样的困境&#xff1a;下载了一堆电子书&#xff0c;格式五花八门——有EPUB、MOBI、PDF、AZW3……想用Kindle看&#xff0c;却发现格式不支持&#xff1b;想整理一下书籍信息…

作者头像 李华
网站建设 2026/8/23 7:19:54

vue表格vxe-table实现单元格自适应行高与最大高度限制

在数据密集型的后台系统中&#xff0c;表格是信息展示的核心载体。当单元格内容过长时&#xff0c;常见的处理方式有截断&#xff08;省略号&#xff09;、固定高度滚动或自适应行高。 截断会丢失信息&#xff0c;固定高度滚动则影响阅读流畅性&#xff0c;而自适应行高能让所有…

作者头像 李华
网站建设 2026/8/23 7:17:44

从数据到洞察:基于LightGBM与特征工程的用户体验建模实战

1. 项目概述&#xff1a;从赛题到实战的完整拆解“北京移动用户体验影响因素研究”&#xff0c;这个题目一出来&#xff0c;很多数学建模和大数据竞赛的参赛者可能会觉得既熟悉又头疼。熟悉的是&#xff0c;它属于经典的“数据驱动型”问题&#xff0c;在各类竞赛和实际业务中屡…

作者头像 李华