前言
STP和RSTP都是针对一个完整网络生成一颗无环的生成树,STP和RSTP对于小型网络来书是非常有效的,但是对于较为复杂的中大型网络来说,STP和RSTP需要经过大量复杂的计算最终才能生成一颗生成树,有时候甚至无法生成一颗完整的生成树,那么中大型网络用什么来防止环路呢?方法很多,但是今天我们的主角是MSTP(多生成树协议)。
MSTP与RSTP
MSTP与RSTP非常多相似点,例如五个端口角色、三种端口状态、三个计时器,甚至收敛机制都是一样,MSTP相比RSTP只是多了"多生成树域(MST)"和"生成树实例(MSTI)"。
MSTP和RSTP所使用的收敛机制是一样的。
MSTP(Multiple Spanning Tree 多生成树协议)
MSTP的重点是"MST"和"MSTI",两个参数之间的关系是:一个运行MSTP的网络可以划分多个MST,而每个MST可以包含一个或者多个MSTI,一个MSTI就是一颗生成树。
注意:一个VLAN只能属于一个MSTI,一台交换机可以属于多个MSTI、MST。
MST(多生成树域):
MST是由MSTP网络中多台交换机及其网段组成的,在同一个MST域中的交换机具有如下特点:
1、 都运行MSTP协议。
2、 具有相同的域名。
3、 具有相同的VLAN映射配置。
一个MSTP网络中可以拥有多个MST,各个MST之间都存在物理连接(直接或者间接),管理员可以通过命令将交换机划分到不同的MST当中。
MSTI(多生成树实例):
MSTI是MST当中的生成树,一个MST可以存在多个MSTI,各个MSTI各自独立,互不影响,MSTI由一个或者多个VLAN构成,但是一个VLAN只能属于一个MSTI。
如下图所示,MSTI中包含有3个MSTI,每个MSIT对应一个VLAN建立生成树,由下图可见,每一个MSTI中都会阻塞掉一部分端口,达到无环结构,各个MSTI都是独立运作的,所以,我们看到MSIT 1 中SW3和SW4之间的链路是阻塞了的,但是到了MSTI 3 中,SW3和SW4之间的链路又处于转发状态。
VLAN映射:
VLAN映射这个是MSTP中的核心参数,VLAN映射就是把MST域中的VLAN划分到MSTI中,一个VLAN只能加入到一个MSTI中,同一个VLAN的数据只能在一个MSTI中传输,一个MSTI可以容纳多个VLAN。
如上图,VLAN10映射到MSIT 1 中,VLAN20映射到MSIT 2 中,VLAN30映射到MSIT 3 中。
生成树:
MSTP中包含多棵生成树分别是:
IST(内部生成树):就是MST中内部生成的生成树,只针对当前MST进行计算,每个MST中只生成一个IST。
CST(公共生成树):是整个MSTP网络中的一颗总的生成树,是针对所有MST经行计算。CST会生成域根,CST内部还存在MSTI,MSTI也会生成域根,所有分别是CST域根和MSIT域根。
CIST(公共和内部生成树):针对MSTP网络所有交换机生成的单生成树,是由CST和IST共同构建。CIST会生成一个总根,通常是网络的最上层的设备。
SST(单生成树):一个MST中只有一台交换机,那么这台交换机生成的生成树就是单生成树,以及STP和RSTP生成的都是单生成树。
端口角色:
MSTP中包含的端口角色有:根端口、指定端口、替代端口、备份端口、主端口、域边缘端口和边缘端口,其中根端口、指定端口、替代端口、备份端口、边缘端口的作用都跟RSTP中一致的,MSTP也是除了边缘端口以外所有端口都参与到选举中。
因为根端口、指定端口、替代端口、备份端口、边缘端口,这几个端口都在上一篇文章中讲解过了,在这里我就不作讲解了,我们来重点讲解"主端口"和"域边缘端口"。
主端口:
主端口是MST域中与总根连接最近的端口,是所有报文到达总根的必经之路,主端口在MSTI和MST当中都担任根端口的角色。
域边缘端口:
域边缘端口是指MST域与其他MST或者SST连接的端口,域边缘端口在MSTI和CIST中担任的角色是一致的。
MSTP原理:
MSTP将整个网络分成若干个MST域,再使用STP或者RSTP协议的算法进行计算,生成CST。MST域内则通过MSTP协议算法进行计算。MSTP使用MST BPDU作为计算依据。
现今大部分的交换机都默认运行MSTP协议,而非STP或RSTP,如果不进行配置,那么MSTP的工作方式与RSTP的工作方式接近。