本次博客主要介绍MSTP原理与配置。
MSTP 多生成树协议,可以通过这个协议生成多个树,而不是单一的一颗树了。
RSTP在STP基础上进行了改进,实现了网络拓扑快速收敛。但由于局域网内所有的VLAN共享一棵生成树,因此被阻塞后链路将不承载任何流量,无法在VLAN间实现数据流量的负载均衡,从而造成带宽浪费。为了弥补STP和RSTP的缺陷,IEEE于2002年发布的802.1s标准定义了MSTP。MSTP兼容STP和RSTP,既可以快速收敛,又提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。
如下图所示,网络中有SWA、SWB、SWC三台交换机。配置VLAN2通过两条上行链路,配置VLAN3只通过一条上行链路。为了解决VLAN2的环路问题,需要运行生成树。在运行单个生成树的情况下,假设SWC与SWB相连的端口成为预备端口(Discarding状态),那么VLAN3的路径就会被断开,无法上行到SWB。
如下图所示,为了实现流量分担,需要配置两条上行链路为Trunk链路,允许通过所有VLAN;SWA和SWB之间的链路也配置为Trunk链路,允许通过所有VLAN。将VLAN2的三层接口配置在SWA上,将VLAN3的三层接口配置在SWB上。
我们希望VLAN2和VLAN3分别使用不同的链路上行到相应的三层接口,但是如果连接到SWB的端口成为预备端口(Alternate Port)并处于Discarding状态,则VLAN2和VLAN3的数据都只能通过一条上行链路上行到SWA,这样就不能实现流量分担。
在之前的内容里,我们了解到,为了解决交换网络中环路的问题,有了STP协议,后来为了解决STP收敛太慢的问题,有了RSTP(快速生成树协议),对于STP和RSTP来说,都是把交换网络中的设备组建成了一颗单生成树,通过以上的内容我们发现, 单生成树有时候会造成部分vlan路径不通、无法实现流量分担以及次优路径等问题,那么MSTP慢慢就开始进入了工程师的视野。
lMST域内可以生成多棵生成树,每棵生成树都称为一个MSTI (多生成树实例)。MSTI之间彼此独立,且每个MSTI的计算过程基本与RSTP的计算过程相同。
如下图所示,图中红色的部分是多生成树实例1的部分,对于这个实例1来说,是包含vlan2的,对于vlan3和vlan4是包含在实例2里面的,对于实例1和实例2来说在逻辑上阻塞掉的端口是不一样的。
为实现分别属于不同VLAN的PC访问Internet的流量能够进行负载均衡,可采用MSTP来实现,VLAN1~10为一组,VLAN11~20为另一组。
如下图所示:
PC1所属VLAN为10,PC2所属VLAN为20。
查看SWC上的配置
#
sysname SWC
#
vlan batch 2 to 20
#
stp region-configuration 进入MST域视图
region-name RG1 配置MST域的域名
instance 1 vlan 1 to 10 配置多生成树实例和VLAN的映射关系
instance 2 vlan 11 to 20
active region-configuration 激活MST域的配置,使域名、VLAN映射表和MSTP修订级别生效。如果不执行本操作,以上配置的域名、VLAN映射表和MSTP修订级别无法生效。
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 4094
#
interface GigabitEthernet0/0/2
port link-type trunk
port trunk allow-pass vlan 2 to 4094
stp instance 2 cost 200000
#
interface GigabitEthernet0/0/3
port link-type access
port default vlan 10
stp edged-port enable
#
查看SWD上的配置
#
sysname SWD
#
vlan batch 2 to 20
#
stp region-configuration
region-name RG1
instance 1 vlan 1 to 10
instance 2 vlan 11 to 20
active region-configuration
#
interface MEth0/0/1
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 4094
#
interface GigabitEthernet0/0/2
port link-type trunk
port trunk allow-pass vlan 2 to 4094
stp instance 1 cost 200000 修改开销为200000
#
interface GigabitEthernet0/0/3
port link-type access
port default vlan 20
stp edged-port enable
#
查看SWA上的配置
#
sysname SWA
#
vlan batch 2 to 20
#
stp instance 1 root primary 在实例1里面,SWA是根桥
stp instance 2 root secondary
#
stp region-configuration
region-name RG1
instance 1 vlan 1 to 10
instance 2 vlan 11 to 20
active region-configuration
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 4094
#
interface GigabitEthernet0/0/2
port link-type trunk
port trunk allow-pass vlan 2 to 4094
查看SWB上的配置:
#
sysname SWB
#
vlan batch 2 to 20
#
stp instance 1 root secondary
stp instance 2 root primary 实例2里面,SWB为根桥
#
stp region-configuration
region-name RG1
instance 1 vlan 1 to 10
instance 2 vlan 11 to 20
active region-configuration
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 4094
#
interface GigabitEthernet0/0/2
port link-type trunk
port trunk allow-pass vlan 2 to 4094
配置完成之后,查看SWA,SWB,SWC以及SWD的接口状态,如下图所示: