发布时间: 2023-02-06 14:50:41
MSTP,即Multiple Spanning Tree Protocol,又称多生成树协议,是为了弥补STP/RSTP缺陷由IEEE组织制定的协议。该协议主要是在破除环路的基础上,实现了流量的负载均衡。
那么,为什么需要MSTP?STP/RSTP的缺陷又是什么呢?
首先就是流量的负载均衡问题,我们可以看图1,在这个图中,假设VLAN10的网关在SW1上,VLAN20的网关在SW2上,那么我们希望的是VLAN10的流量经过SW3走SW1,VLAN20的流量经过SW3走SW2,。
但是,如果SW1、SW2和SW3均是交换机,两两互联,如果在这三台交换机上运行的是STP或者RSTP,假如SW1是根桥,那么根据生成树的选举,连接SW2和SW3的链路上就会有一个端口被阻塞,也就是说SW2和SW3之间的链路将不会负责转发数据流量。那么VLAN20的数据流量也就无法经过SW3走SW2了,最终只能和VLAN10的数据流量一样,经过SW3走SW1,再到达SW2,也就无法实现流量的负载分担。这就是STP/RSTP的第一个缺陷。
然后是第二个缺陷,也就是次优路径问题。同样的如图1所示,因为SW2和SW3之间的链路已经不负责数据流量的转发,那么VLAN20的数据流量只能经过SW3和SW1,最后才到达SW2,这就导致了次优路径问题。这就是STP/RSTP的第二个缺陷。
图1
基于STP/RSTP的缺陷,我们也就有了MSTP。
在这里,我们首先需要理解下MSTP的基础定义,知道它是怎么在消除环路的基础上实现负载分担的,然后再理解MSTP的基础内容。
MSTP,多生成树协议。经过上面关于图1的分析,我们可以看到STP和RSTP都是只生成一颗生成树的,也就是无论VLAN10的数据,还是VLAN20的数据,都是只通过SW3-SW1-SW2这棵生成树来转发数据,既然如此,那么我们是否可以通过生成多棵生成树来让不同的VLAN数据经由不同的生成树转发呢?答案是可以的。MSTP就是通过在交换机上生成多棵生成树,对于不同的VLAN数据走不同的生成树路径来实现流量的负载分担。
比如如图2所示,对于VLAN10的数据,可以生成一棵以SW1为根的生成树,那么SW2和SW3之间的链路就会被阻塞,生成树转发路径是这样的:SW3-SW1-SW2,这棵生成树就可以用来转发VLAN10的数据流量。对于VLAN20的数据,也可以生成一棵以SW2为根的生成树,那么SW1和SW3之间的链路就会被阻塞,该生成树的转发路径就是这样的:SW3-SW2-SW1,这棵生成树就可以用来转发VLAN20的数据流量。这样,不同VLAN的数据流量走不同的生成树,就实现了流量的负载分担,同时也消除了次优路径问题。这就是MSTP。
图2
它可以将一个或多个VLAN映射到一个Instance(实例),再基于Instance计算生成树,映射到同一个Instance的VLAN共享同一棵生成树。
接下来,我们就了解下MSTP的一些基础概念。
MST Region,多生成树域,区域,简称MST域,MSTP可以把一个二层网络就划分成多个区域,每个区域内部都可以独立的生成区域内的生成树,不同区域间的生成树互不干扰。
MSTI,多生成树实例,每一棵生成树都会有一个生成树实例,每个实例里面会有一个VLAN映射表,这张表记录了有哪些VLAN映射到了该实例中(该生成树上),不同的实例之间采用不同的Instance ID来标识,取值范围是0-4094,但默认情况下,所有VLAN都会映射到Instance 0中。
CST,公共生成树,如果把MST域看成一台交换机,那么域与域之间通过链路连接,存在冗余链路,那么域与域之间就也会存在二层的环路,所以也需要一棵生成树来消除环路,而公共生成树就是这棵用来消除域与域之间环路的生成树。
IST,内部生成树,这是MST域内Instance ID为0的特殊生成树,是一个特殊的生成树实例,注意IST不是指MST域里面的所有生成树。
CIST,公共和内部生成树,这是由所有MST域内的IST加上CST所构成一棵完整的生成树。
SST,单生成树,指MST域内只有一台交换机并且只有一个实例的生成树。
总根,指CIST这棵生成树的根桥,整个MSTP网络中具有最高优先级的交换机就被选举为总根。
域根,又分为IST域根和MSTI域根,IST域根是距离总根最近的交换机;MSTI域根是指MSTI域的根桥,也就是实例中的最优交换机,但因为每一个MST域内都有多棵生成树,每棵生成树都有一个实例,所以每一个实例就都会有它自己的MSTI域根;
主桥,域内距离总根最近的交换机就是主桥,包括了总根它自己,也就是整一个MSTP网络最优的交换机既是总根,也是主桥。
MSTP还在STP/RSTP的基础上新增了两种端口角色:
Master端口:Master端口是MST域和总根相连的所有路径中最短路径上的端口,是一个特殊的域边缘端口。本质就是就是某一个MST域距离总根最近的那一个端口,报文必须要经过该端口才可以到达总根
域边缘端口:连接其他区域的交换机的端口就是域边缘端口。
以上就是MSTP的基本概念,接下来就再了解下MSTP生成树生成的过程。
MSTP是将整个二层网络划分成多个MST域,之后域与域之间建立CST,MST域内部建立IST,CST和IST就构成了CIST这连接整个网络的生成树。
那么MSTP生成生成树,首先在二层网络中选举一个优先级最高的交换机成为总根;然后在每一个MST域内计算得到IST,在每一个MST域间计算得到CST;IST和CST结合就构成了整个交换网络的CIST。
但是,值得注意的是,在MST域㕯,MSTP是根据VLAN和生成树实例的映射关系,针对不同的VLAN生成不同的生成树实例。之后转发数据时,MST域之间,遵循着CST路径转发,而在MST域内,就根据不同的生成树实例来转发。
上一篇: 防火墙攻防技术有哪些
下一篇: ospf的五种报文、七种状态