MSTP多进程
产生背景
如图10-11所示:
UPE为汇聚层设备,运行MSTP。
UPE1和UPE2之间为二层链路。
UPE1和UPE2下接有多个环,不同环通过不同端口接入。
环上的交换设备为接入层设备,只运行STP/RSTP,同时UPE1和UPE2属于不同的运营商,不希望计算在一个生成树中,拓扑变化不能影响对方。
如图10-11所示,交换设备和UPE组成多个二层环路,因此需要在此环路上启用生成树协议来防止环路。UPE1和UPE2同时连接多个接入环,各个环之间互相独立,不需要互通,这样在启动生成树协议时就不能将所有交换设备构成的环路计算成一个大生成树,这就需要在各个交换设备构成的环上启用独立的生成树协议进行计算,且互不影响。
对于MSTP协议标准来说,MSTP支持生成树多实例,但是MSTP支持的多实例必须存在同一个域中,且同一个域中所有设备配置也必须一致。如果不同的设备属于不同的域,那么MSTP在进行生成树计算时,只按一个实例进行计算。所以,当网络内的设备属于不同域时,整个网络只能在一个实例中进行生成树计算,网络内任何一台设备状态发生变化,都将影响整个网络。图10-11所示组网中与UPE相连的交换设备只支持STP/RSTP协议,不支持MSTP协议。根据MSTP协议标准,UPE收到来自交换设备的RSTP报文后,则认为彼此不属于同一个域。那么UPE和交换设备构成的环只会计算出一个生成树,不能实现各个接入环的相互独立。
为了解决上述问题,引入了MSTP多进程。MSTP多进程是基于MSTP协议的增强性技术。此技术可将二层交换设备上的端口绑定到不同的进程中,并以进程为单位进行MSTP协议计算,不在同一个进程内的端口不参与此进程中的MSTP协议计算,从而实现各个进程内的生成树计算相互独立,互不影响。因此通过MSTP多进程机制,可将图10-11所示组网划分为多个MSTP进程,每个进程对应一个交换设备构成的环,每个MSTP进程功能相同,支持生成树多实例,各进程进行MSTP协议计算时相互独立,不会影响到其它进程中的MSTP协议计算。
MSTP多进程机制并不只限于MSTP协议,RSTP和STP协议同样适用。
目的
极大地提升了在不同组网条件下生成树协议的可部署性。
为了保证运行不同类型生成树协议的网络可靠运行,可将不同类型的生成树协议划分到不同的进程中,不同进程对应的网络进行独立的生成树协议计算。
增强了组网的可靠性,对于大量的二层接入设备,可减少单台设备故障对整个网络的冲击。
通过进程隔离不同的拓扑计算,即某台设备故障只影响其所在的进程对应的拓扑,不会影响其他进程拓扑计算。
网络扩容时,可减少网络管理者维护量,从而提升了用户运维管理的方便性。
当网络扩容时,只需要划分新的进程与原有网络对接,不需要调整原有网络的MSTP进程配置。如果是某个进程中进行了设备扩容,此时也只需要针对扩容的进程进行修改,而不需要调整其他进程中的配置。
实现二层端口分割管理
每个MSTP进程可以管理设备上的部分端口,即设备的二层端口资源被多个MSTP进程分割管理,每个MSTP进程上均可运行标准的MSTP。
MSTP多进程原理
公共链路的状态
如图10-11所示,UPE1和UPE2之间的链路是二层链路,并运行MSTP协议。UPE1和UPE2之间的公共链路和接入交换设备的链路不同在于:公共链路上的端口需要参与多个接入环和多个MSTP进程的计算,这样UPE1和UPE2之间的MSTP协议报文就需要能区分是来自哪个进程的MSTP协议报文。
此外,公共链路上的同一个端口同时参与多个MSTP进程的计算,多个MSTP进程中都会计算出端口状态,这样端口就可能同时存在多个状态,从而无法决定采用哪个生成树的状态。
对于上述情况,公共链路上的端口虽然参与多个MSTP进程的状态计算,但是只具有MSTP进程0的状态,从而不会影响其他MSTP进程。
设备启动后,设备默认存在ID为0的MSTP进程,系统视图和接口视图中的MSTP相关配置都属于此进程。
设备不支持非标准STP/RSTP/MSTP对接,如PVST+协议。对于PVST+协议,设备将其作为VLAN内的普通数据报文进行透明中转。
可靠性
如图10-12所示,当交换设备构成的环上设备产生拓扑变化后,通过MSTP多进程的特性,UPE可以把TC报文洪泛到环上所有设备,同时可以保证一个交换设备构成的环的拓扑变化消息不会洪泛到其他交换设备环上,UPE1和UPE2及时刷新和本生成树相关端口的MAC和ARP表项,并且不影响其它的交换设备。
如图10-13所示,如果UPE1和UPE2之间的公共链路故障,可能导致多个交换设备接入环路都会打开阻塞端口。
如果UPE1配置为最高优先级,UPE2配置为次高优先级,交换设备采用默认优先级或配置为更低优先级。当UPE1和UPE2之间链路发生故障后,交换设备上的(根端口替换端口)阻塞端口因不再收到高优先级报文而重新进行状态机计算,新计算的结果是成为指定端口,此时就会产生永久环路,如图10-14所示。
解决的问题
为了解决接入环路之间形成环路问题,可部署以下特性解决。
UPE1和UPE2之间部署跨板Eth-Trunk
在UPE1和UPE2之间的公共链路使用跨板Eth-Trunk,以提供高可靠性的链路,如图10-15所示。
UPE1和UPE2之间部署根保护
如果UPE1和UPE2之间所有的链路均出现故障,此时UPE1和UPE2之间部署的跨板Eth-Trunk也将不起作用,接入环路仍然会产生永久环路。为了解决图10-14所示的永久环路故障,可通过部署根保护解决。
如图10-16所示,以蓝色的交换设备环为例,UPE1配置为最高优先级,UPE2配置为次高优先级,交换设备环上的设备采用默认优先级或配置为更低的优先级,并在UPE2上配置根保护。
假设阻塞端口在S1上,当UPE1和UPE2之间的公共链路发生故障后,S1上的阻塞端口因不再收到高优先级BPDU报文而重新进行状态机计算,新计算的结果是该端口成为指定端口,同时和下游设备进行P/A协商。
当与UPE2直连的S1发送的更高优先级的BPDU报文到达UPE2的启动了根保护的端口后,该端口将被阻塞,因为后续会持续收到报文,所以该端口将一直处于阻塞状态。从而保证不会出现环路。