|
MSTP多生成树协议配置实战:VLAN间负载分担与快速收敛
一、本文亮点
- 场景真实,贴近实战:模拟企业网络中通过MSTP实现VLAN间流量负载分担的典型场景,配置基于华为交换机,可直接参考应用于现网或实验环境。
- 多实例实现负载分担:通过创建多个MSTI实例(MSTI1和MSTI2),将不同VLAN映射到不同实例,实现VLAN间流量的负载分担。
- 根桥与备份根桥精细配置:为每个实例独立配置根桥和备份根桥,实现不同VLAN流量的最优路径选择。
- 跨实例端口阻塞控制:在不同实例中分别阻塞不同的端口(SwitchC在MSTI2中阻塞GE1/0/2,SwitchD在MSTI1中阻塞GE1/0/2),实现精细化的环路消除和路径选择。
- 逐条注释,清晰易懂:对每一条关键配置命令都在行尾添加了中文注释,解释其功能和作用,帮助读者理解配置背后的网络原理。
二、原理说明:MSTP概述与工作机制
1. MSTP简介
以太网交换网络中为了进行链路备份,提高网络可靠性,通常会使用冗余链路。但是使用冗余链路会在交换网络上产生环路,引发广播风暴以及MAC地址表不稳定等故障现象。为解决交换网络中的环路问题,提出了生成树协议STP。运行该协议的设备通过彼此交互信息而发现网络中的环路,并适当对某些端口进行阻塞以消除环路。
生成树协议随着网络的发展而不断更新,从最初的IEEE 802.1D中定义的STP到IEEE 802.1W中定义的RSTP,再到IEEE 802.1S中定义的MSTP。生成树协议中,MSTP兼容RSTP、STP,RSTP兼容STP。
2. STP、RSTP、MSTP对比
| 生成树协议 | 特点 | 应用场景 | | STP | 形成一棵无环路的树,解决广播风暴并实现冗余备份。收敛速度较慢。 | 无需区分用户或业务流量,所有VLAN共享一棵生成树。 | | RSTP | 形成一棵无环路的树,解决广播风暴并实现冗余备份。收敛速度快。 | 无需区分用户或业务流量,所有VLAN共享一棵生成树。 | | MSTP | 形成多棵无环路的树,解决广播风暴并实现冗余备份。收敛速度快。多棵生成树在VLAN间实现负载均衡。 | 需要区分用户或业务流量,并实现负载分担。 |
3. MSTP的关键概念
- MST域(MST Region):具有相同域名、VLAN与实例映射关系、修订级别的交换机集合。
- MSTI(多生成树实例):每个MSTI是一个独立的生成树实例,拥有自己的根桥和端口角色。
- VLAN映射表:将不同VLAN映射到不同的MSTI,实现VLAN间流量的负载分担。
4. 本示例的负载分担设计
- MSTI 1:VLAN 2~10 → 根桥为SwitchA,备份根桥为SwitchB。
- MSTI 2:VLAN 11~20 → 根桥为SwitchB,备份根桥为SwitchA。
- 通过在SwitchC(MSTI2)和SwitchD(MSTI1)的不同端口上配置不同的路径开销值,实现不同VLAN流量走不同路径。
三、拓扑与需求
组网需求
在一个复杂的网络中,由于冗余备份的需要,网络规划者一般都倾向于在设备之间部署多条物理链路,其中一条作为主用链路,其他作为备份链路。这样就难免会形成环路,若网络中存在环路,可能会引起广播风暴和MAC表项被破坏。为此,可以在网络中部署MSTP协议预防环路。MSTP可阻塞二层网络中的冗余链路,将网络修剪成树状,达到消除环路的目的。
如图1所示,SwitchA、SwitchB、SwitchC和SwitchD都运行MSTP。为实现VLAN 2~10和VLAN 11~20的流量负载分担,MSTP引入了多实例。MSTP可设置VLAN映射表,把VLAN和生成树实例相关联。
- MSTI 1(VLAN 2~10):根桥为SwitchA,备份根桥为SwitchB。
- MSTI 2(VLAN 11~20):根桥为SwitchB,备份根桥为SwitchA。
- SwitchC的GE1/0/2在MSTI 2中被阻塞(路径开销值20000)。
- SwitchD的GE1/0/2在MSTI 1中被阻塞(路径开销值20000)。

(图1:配置MSTP功能组网图)
四、配置思路
- 配置MST域:在所有交换机上配置相同的域名(RG1)、VLAN与实例映射关系、修订级别,确保属于同一MST域。
- 配置各实例的根桥和备份根桥:
- MSTI 1:SwitchA为根桥,SwitchB为备份根桥。
- MSTI 2:SwitchB为根桥,SwitchA为备份根桥。
- 配置端口路径开销值:配置端口路径开销计算方法为华为计算方法(legacy),在SwitchC的GE1/0/2上配置MSTI 2的路径开销值为20000,在SwitchD的GE1/0/2上配置MSTI 1的路径开销值为20000。
- 使能MSTP:在所有交换机上全局使能STP。
- 配置边缘端口和BPDU过滤:将与PC相连的端口配置为边缘端口并使能BPDU过滤功能。
- 配置根保护功能:在各实例的根桥指定端口上配置根保护(root-protection)。
- 配置二层转发功能:创建VLAN 2~20,并将接口加入对应VLAN。
五、设备配置命令(逐条注释)
请将以下配置分别粘贴至对应设备的CLI中执行。注释跟在命令后方。
1. 配置MST域(SwitchA为例,其他设备类似)
- <HUAWEI> system-view // 进入系统视图
- [HUAWEI] sysname SwitchA // 修改设备名称为SwitchA
- [SwitchA] stp region-configuration // 进入MST域配置视图
- [SwitchA-mst-region] region-name RG1 // 配置域名为RG1(所有设备必须一致)
- [SwitchA-mst-region] instance 1 vlan 2 to 10 // 将VLAN 2~10映射到实例1
- [SwitchA-mst-region] instance 2 vlan 11 to 20 // 将VLAN 11~20映射到实例2
- [SwitchA-mst-region] active region-configuration // 激活MST域配置
- [SwitchA-mst-region] quit
复制代码
2. 配置各实例的根桥和备份根桥
- [SwitchA] stp instance 1 root primary // 配置SwitchA为MSTI 1的根桥
- [SwitchB] stp instance 1 root secondary // 配置SwitchB为MSTI 1的备份根桥
- [SwitchB] stp instance 2 root primary // 配置SwitchB为MSTI 2的根桥
- [SwitchA] stp instance 2 root secondary // 配置SwitchA为MSTI 2的备份根桥
复制代码
3. 配置端口路径开销值和计算方法
- [SwitchA] stp pathcost-standard legacy // 配置路径开销计算方法为华为计算方法
- [SwitchB] stp pathcost-standard legacy
- [SwitchC] stp pathcost-standard legacy
- [SwitchD] stp pathcost-standard legacy
- [SwitchC] interface gigabitethernet 1/0/2 // 进入SwitchC的GE1/0/2接口
- [SwitchC-GigabitEthernet1/0/2] stp instance 2 cost 20000 // 在MSTI 2中配置路径开销值为20000(阻塞该端口)
- [SwitchC-GigabitEthernet1/0/2] quit
- [SwitchD] interface gigabitethernet 1/0/2 // 进入SwitchD的GE1/0/2接口
- [SwitchD-GigabitEthernet1/0/2] stp instance 1 cost 20000 // 在MSTI 1中配置路径开销值为20000(阻塞该端口)
- [SwitchD-GigabitEthernet1/0/2] quit
复制代码
4. 使能MSTP
- [SwitchA] stp enable // 在SwitchA上全局使能STP
- [SwitchB] stp enable // 在SwitchB上全局使能STP
- [SwitchC] stp enable // 在SwitchC上全局使能STP
- [SwitchD] stp enable // 在SwitchD上全局使能STP
复制代码
5. 配置边缘端口和BPDU过滤(SwitchC为例)
- [SwitchC] interface gigabitethernet 1/0/1 // 进入连接PC的接口视图
- [SwitchC-GigabitEthernet1/0/1] stp edged-port enable // 配置为边缘端口(快速进入转发状态)
- [SwitchC-GigabitEthernet1/0/1] stp bpdu-filter enable // 使能BPDU过滤功能
- [SwitchC-GigabitEthernet1/0/1] quit
复制代码
6. 配置根保护功能(在各实例的根桥指定端口上)
- [SwitchA] interface gigabitethernet 1/0/1 // 进入SwitchA的GE1/0/1接口(MSTI 1根桥指定端口)
- [SwitchA-GigabitEthernet1/0/1] stp root-protection // 配置根保护功能
- [SwitchA-GigabitEthernet1/0/1] quit
- [SwitchB] interface gigabitethernet 1/0/1 // 进入SwitchB的GE1/0/1接口(MSTI 2根桥指定端口)
- [SwitchB-GigabitEthernet1/0/1] stp root-protection // 配置根保护功能
- [SwitchB-GigabitEthernet1/0/1] quit
复制代码
7. 配置二层转发功能(以SwitchA为例)
- [SwitchA] vlan batch 2 to 20 // 创建VLAN 2~20
- [SwitchA] interface gigabitethernet 1/0/1 // 进入GE1/0/1接口
- [SwitchA-GigabitEthernet1/0/1] port link-type trunk // 配置接口类型为Trunk
- [SwitchA-GigabitEthernet1/0/1] port trunk allow-pass vlan 2 to 20 // 允许VLAN 2~20通过
- [SwitchA-GigabitEthernet1/0/1] quit
- [SwitchA] interface Eth-Trunk 1 // 创建并进入Eth-Trunk1接口
- [SwitchA-Eth-Trunk1] trunkport gigabitethernet 1/0/2 // 将GE1/0/2加入Eth-Trunk
- [SwitchA-Eth-Trunk1] trunkport gigabitethernet 1/0/3 // 将GE1/0/3加入Eth-Trunk
- [SwitchA-Eth-Trunk1] port link-type trunk // 配置接口类型为Trunk
- [SwitchA-Eth-Trunk1] port trunk allow-pass vlan 2 to 20 // 允许VLAN 2~20通过
- [SwitchA-Eth-Trunk1] quit
复制代码
六、验证方法
完成配置后,可通过以下步骤验证效果:
- 查看SwitchA的端口状态:在SwitchA上执行,确认MSTI 1中GE1/0/1和Eth-Trunk1均为DESI(指定端口),状态为FORWARDING;MSTI 2中GE1/0/1为DESI,Eth-Trunk1为ROOT(根端口)。
- 查看SwitchB的端口状态:在SwitchB上执行,确认MSTI 2中GE1/0/1和Eth-Trunk1均为DESI(指定端口);MSTI 1中GE1/0/1为DESI,Eth-Trunk1为ROOT(根端口)。
- 查看SwitchC的端口状态:在SwitchC上执行
- display stp interface gigabitethernet 1/0/2 brief
复制代码 ,确认MSTI 2中GE1/0/2为ALTE(Alternate端口),状态为DISCARDING;执行- display stp interface gigabitethernet 1/0/3 brief
复制代码 ,确认MSTI 1和MSTI 2中GE1/0/3均为ROOT(根端口),状态为FORWARDING。 - 查看SwitchD的端口状态:在SwitchD上执行
- display stp interface gigabitethernet 1/0/2 brief
复制代码 ,确认MSTI 1中GE1/0/2为ALTE(Alternate端口),状态为DISCARDING;执行- display stp interface gigabitethernet 1/0/3 brief
复制代码 ,确认MSTI 1和MSTI 2中GE1/0/3均为ROOT(根端口),状态为FORWARDING。 - 验证负载分担效果:VLAN 2~10的流量走SwitchA路径,VLAN 11~20的流量走SwitchB路径,实现负载分担。
七、排障指南
| 常见问题现象 | 可能原因 | 解决方法 | | MSTP未阻塞预期端口 | - 端口路径开销值配置不足。
- MST域配置不一致(域名、VLAN映射或修订级别不同)。
- MSTP未全局使能。
| - 检查端口路径开销值是否足够大(如20000),确保大于其他路径的开销。
- 确认所有设备的域名、VLAN映射、修订级别完全一致。
- 执行确认MSTP已全局使能。
| | 根桥选举不符合预期 | - 根桥优先级配置错误或未配置。
- 不同实例的根桥配置冲突。
| - 检查确认MSTI 1根桥为SwitchA,MSTI 2根桥为SwitchB。
- 确认各实例的根桥优先级配置正确(primary为0,secondary为4096)。
| | VLAN流量未按预期负载分担 | - VLAN与实例的映射关系配置错误。
- 端口路径开销配置与预期不符。
| - 执行
- display stp region-configuration
复制代码 确认VLAN映射关系。 - 检查各端口在不同实例中的路径开销值,确认阻塞端口符合预期。
|
八、注意事项
- MST域配置一致性:当两台交换设备的域名、多生成树实例和VLAN的映射关系、修订级别都相同时,这两台交换设备属于同一个MST域。域内配置必须完全一致,否则无法正常交互MSTP报文。
- 与终端相连的端口配置建议:与终端相连的端口不用参与MSTP计算,建议将其设置为边缘端口(edged-port)或去使能STP,以加快终端接入速度。
- 根保护功能与链路冗余的配合:设备配置根保护功能后,如果根桥和备份根桥之间的链路down了,则配置根保护的端口状态会因为根保护功能生效直接变成Discarding状态。为了提高可靠性,建议根桥和备份根桥之间的链路绑定Eth-Trunk。
- 端口路径开销计算方法一致性:同一网络内所有交换设备的端口路径开销应使用相同的计算方法(本示例使用华为计算方法)。
- 实例与VLAN的映射规划:合理规划VLAN与MSTI的映射关系,将需要相同转发路径的VLAN映射到同一个实例,实现流量的精细化管理。
九、总结
本文通过一个典型的企业网络VLAN负载分担场景,详细介绍了在华为交换机上配置MSTP(多生成树协议)的完整流程。涵盖MST域配置(域名、VLAN映射、修订级别)、各实例根桥与备份根桥配置、端口路径开销配置(实现跨实例差异化阻塞)、边缘端口与BPDU过滤配置、全局MSTP使能、根保护功能配置、二层VLAN转发配置等关键环节。该方案通过"多实例 + 差异化根桥 + 精细化端口阻塞"的机制,实现了"不同VLAN流量走不同路径、消除环路、负载分担"的综合目标,是需要区分用户或业务流量并实现负载分担的网络场景中最理想的生成树解决方案。
如果本文对您有帮助,欢迎点击关注,获取更多网络技术实战干货!
—— 全文完 ——
|