目录
MSTP多进程
产生背景
如图1所示:
-
UPE为汇聚层设备,运行MSTP。
-
UPE1和UPE2之间为二层链路。
-
UPE1和UPE2下接有多个环,不同环通过不同端口接入。
-
环上的交换设备为接入层设备,只运行STP/RSTP,同时UPE1和UPE2属于不同的运营商,不希望计算在一个生成树中,拓扑变化不能影响对方。
针对上述组网限制,需要配置MSTP多进程。MSTP多进程是基于MSTP协议的增强性技术。此技术可将二层交换设备上的端口绑定到不同的进程中,并以进程为单位进行MSTP协议计算,不在同一个进程内的端口不参与此进程中的MSTP协议计算,从而实现各个进程内的生成树计算相互独立,互不影响。因此通过MSTP多进程机制,可将图1所示组网划分为多个MSTP进程,每个进程对应一个交换设备构成的环,每个MSTP进程功能相同,支持生成树多实例,各进程进行MSTP协议计算时相互独立,不会影响到其它进程中的MSTP协议计算。
MSTP多进程机制并不只限于MSTP协议,RSTP和STP协议同样适用。
目的
如图1所示网络通过部署MSTP多进程可实现如下:
-
极大地提升了在不同组网条件下生成树协议的可部署性。
为了保证运行不同类型生成树协议的网络可靠运行,可将不同类型的生成树协议划分到不同的进程中,不同进程对应的网络进行独立的生成树协议计算。
-
增强了组网的可靠性,对于大量的二层接入设备,可减少单台设备故障对整个网络的冲击。
通过进程隔离不同的拓扑计算,即某台设备故障只影响其所在的进程对应的拓扑,不会影响其他进程拓扑计算。
-
网络扩容时,可减少网络管理者维护量,从而提升了用户运维管理的方便性。
当网络扩容时,只需要划分新的进程与原有网络对接,不需要调整原有网络的MSTP进程配置。如果是某个进程中进行了设备扩容,此时也只需要针对扩容的进程进行修改,而不需要调整其他进程中的配置。
-
实现二层端口分割管理
每个MSTP进程可以管理设备上的部分端口,即设备的二层端口资源被多个MSTP进程分割管理,每个MSTP进程上均可运行标准的MSTP。
MSTP多进程原理
-
公共链路的状态
如图1所示,UPE1和UPE2之间的链路是二层链路,并运行MSTP协议。UPE1和UPE2之间的公共链路和接入交换设备的链路不同在于:公共链路上的端口需要参与多个接入环和多个MSTP进程的计算,这样UPE1和UPE2之间的MSTP协议报文就需要能区分是来自哪个进程的MSTP协议报文。
此外,公共链路上的同一个端口同时参与多个MSTP进程的计算,多个MSTP进程中都会计算出端口状态,这样端口就可能同时存在多个状态,从而无法决定采用哪个生成树的状态。
对于上述情况,公共链路上的端口虽然参与多个MSTP进程的状态计算,但是只具有MSTP进程0的状态,从而不会影响其他MSTP进程。
设备启动后,设备默认存在ID为0的MSTP进程,系统视图和接口视图中的MSTP相关配置都属于此进程。
-
可靠性
如图2所示,当交换设备构成的环上设备产生拓扑变化后,通过MSTP多进程的特性,UPE可以把TC报文洪泛到环上所有设备,同时可以保证一个交换设备构成的环的拓扑变化消息不会洪泛到其他交换设备环上,UPE1和UPE2及时刷新和本生成树相关端口的MAC和ARP表项,并且不影响其它的交换设备。
如图3所示,如果UPE1和UPE2之间的公共链路故障,可能导致多个交换设备接入环路都会打开阻塞端口。
如果UPE1配置为最高优先级,UPE2配置为次高优先级,交换设备采用默认优先级或配置为更低优先级。当UPE1和UPE2之间链路发生故障后,交换设备上的(根端口替换端口)阻塞端口因不再收到高优先级报文而重新进行状态机计算,新计算的结果是成为指定端口,此时就会产生永久环路,如图4所示。
-
解决的问题
为了解决接入环路之间形成环路问题,可部署以下特性解决。
-
UPE1和UPE2之间部署跨板Eth-Trunk
在UPE1和UPE2之间的公共链路使用跨板Eth-Trunk,以提供高可靠性的链路,如图5所示。
-
UPE1和UPE2之间部署根保护
如果UPE1和UPE2之间所有的链路均出现故障,此时UPE1和UPE2之间部署的跨板Eth-Trunk也将不起作用,接入环路仍然会产生永久环路。为了解决图4所示的永久环路故障,可通过部署根保护解决。
如图6所示,以蓝色的交换设备环为例,UPE1配置为最高优先级,UPE2配置为次高优先级,交换设备环上的设备采用默认优先级或配置为更低的优先级,并在UPE2上配置根保护。
假设阻塞端口在S1上,当UPE1和UPE2之间的公共链路发生故障后,S1上的阻塞端口因不再收到高优先级BPDU报文而重新进行状态机计算,新计算的结果是该端口成为指定端口,同时和下游设备进行P/A协商。
当与UPE2直连的S1发送的更高优先级的BPDU报文到达UPE2的启动了根保护的端口后,该端口将被阻塞,因为后续会持续收到报文,所以该端口将一直处于阻塞状态。从而保证不会出现环路。
-
配置案例
图1 MSTP多进程下单接环和多接环接入组
-
组网需求
在二层单接环和二层双接环混合组网环境下,交换设备同时承载二三层业务。为了实现不同的环完成不同的业务,可在该组网上部署MSTP多进程,实现不同环上的生成树协议进行独立计算,互不影响。二层单接环和二层双接环混合组网环境下,交换设备SwitchA和SwitchB同时承载二三层业务。在该组网下,接入双接环的两台交换设备SwitchA和SwitchB下均存在单接环。
在MSTP多进程的环中,建议端口阻塞不要配置在与根保护端口直连的链路上。
配置思路
采用如下的思路配置MSTP多进程:
-
配置MSTP基本功能,将设备加入到域,并创建实例,实现对流量的负载分担。
-
每个环只能配置一个域。
-
一个CE设备只能加入一个环。
-
-
创建MSTP多进程,实现对端口的分割管理,包括:
-
在设备上创建多进程并将端口加入到相应的进程。
-
配置共享链路。
-
-
配置其他功能,实现对设备或链路的保护,包括:
-
配置优先级和根保护。
-
配置共享链路保护功能。
-
-
配置设备的二层转发功能。
SwitchA的配置文件:
#
sysname SwitchA
#
vlan batch 2 to 200
#
stp region-configuration
region-name RG1
instance 1 vlan 2 to 100
instance 2 vlan 101 to 200
instance 3 vlan 201 to 300
active region-configuration
#
stp process 1
stp instance 0 root primary
stp instance 1 root primary
stp enable
stp process 2
stp instance 0 root primary
stp instance 2 root primary
stp link-share-protection
stp enable
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 101 to 200
stp binding process 2 link-share
#
interface GigabitEthernet0/0/2
port link-type trunk
port trunk allow-pass vlan 101 to 200
stp binding process 2
stp root-protection
#
interface GigabitEthernet0/0/3
port link-type trunk
port trunk allow-pass vlan 2 to 100
stp binding process 1
#
interface GigabitEthernet0/0/4
port link-type trunk
port trunk allow-pass vlan 2 to 100
stp binding process 1
#
return
SwitchB的配置文件:
#
sysname SwitchB
#
vlan batch 101 to 300
#
stp region-configuration
region-name RG1
instance 1 vlan 2 to 100
instance 2 vlan 101 to 200
instance 3 vlan 201 to 300
active region-configuration
#
stp process 2
stp instance 0 root secondary
stp instance 2 root secondary
stp link-share-protection
stp enable
stp process 3
stp instance 0 root primary
stp instance 3 root primary
stp enable
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 101 to 200
stp binding process 2 link-share
#
interface GigabitEthernet0/0/2
port link-type trunk
port trunk allow-pass vlan 101 to 200
stp binding process 2
stp root-protection
#
interface GigabitEthernet0/0/3
port link-type trunk
port trunk allow-pass vlan 201 to 300
stp binding process 3
#
interface GigabitEthernet0/0/4
port link-type trunk
port trunk allow-pass vlan 201 to 300
stp binding process 3
#
return