前文我们了解了RSTP保护相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16255918.html;今天我们来了解下MSTP相关话题;
MSTP技术背景
我们知道RSTP在STP的基础上进行了改进,实现了网络拓扑快速收敛;但是由于局域网内所有vlan共享一棵生成树,因此被阻塞后的链路将不承载任何流量,无法实现vlan间流量的负载分担,从而造成带宽浪费;除此以外,部分vlan间通讯也可能出现次优路径;为了弥补STP和RSTP的这些缺陷,IEEE于2002年发布的802.1s标准定义了MSTP;MSTP兼容STP和RSTP,即可以实现快速收敛,又提供了数据转发的多条冗余路径,在数据转发过程中实现了VLAN数据的负载分担;
提示:如上所示,在STP和RSTP中如果某条链路被阻塞,那么该链路将不承载任何流量,即交换机B下所有vlan访问server将会绕路;从拓扑来看这很显然不是一个很合理的拓扑;
MSTP:Multiple STP,多生成树协议;该协议可实现设置VLAN映射表,将一个或多个VLAN映射到一个多生成树实例上,基于实例计算出多棵生成树,实现实例间负载分担;并且该协议具有RSTP快速收敛兼容STP和RSTP;
提示:有了MSTP我们就可以将不同VLAN映射到不同实例上,根据实例来算生成树;这样一来我们可以实现实例和实例的负载均衡;简单讲,就是从原来的一颗生成树,变成多棵生成树;当然不同生成树,树根不同,对应通信流量转发路径也就不同,从而利用了被阻塞链路,实现流量的负载分担;
提示:如图,两个5700交换机,根据不同实例映射不同的vlan实现了实例1包含vlan2,实例2包含vlan3;同时stp计算也是根据不同实例的映射,分别算出两棵生成树,对于实例1来说,5700-a是根桥,5700-b是备份根桥;对于实例2来说5700-b是根桥,5700-a是备份根桥;所以在3700上,对于不同vlan,它们阻塞的端口不同,当然数据转发路径也就不同;
MSTP术语
MST实例:Instance,实例,由MSTID标志,两字节的整数(16位2进制,即实例理论范围是0-65535);不同型号交换机,性能配置高低可能影响支持创建实例的数量;比如华为vrp平台支持49个mst 实例(0-48),而有的真机支持4095个(0-4094)实例;一般来说性能越好,对应支持创建实例数量也就越多;默认rstp是把所有vlan映射到mst instance 0上;
MST区域:Region,所谓区域是指一组相邻的交换机组成的一个区域;对于同一个区域内地设备具有如下特点:
1、都启用了MSTP;
2、具有相同的区域名称;
3、具有相同实例的映射;
4、具有相同的修订级别(版本);
MST配置标识:MST Configuration Identifier,标识自己所在的区域,被封装在交换机相互发送的BPDU中,如下图
提示:MST配置标识,占1字节,默认是0;同一个区域的所有交换机必须满足区域名称要相同,修订级别要一样,实例映射要一致;
MST各种树
IST:内部生成树(Internal Spanning Tree),MST 域内实例0上的生成树;
CST:公共生成树(Common Spanning Tree),连接所有MST域的一颗生成树,即把每个区域当作一个设备所形成的生成树;
CIST:公共和内部生成树,连接所有设备的一颗生成树,由IST和CST共同构成;
MSTI:多生成树实例,每个域内可以存在多棵生成树,每棵生成树和相应的VLAN对应;
总根:CIST实例桥ID最优的桥,即公共和内部生成树组成的总生成树的根桥;
域根:MST域内各棵生成树的拓扑不同,域根也可能不同;
MSTI和MSTI域根
提示:一个区域里可有多棵生成树,即一个实例对应一棵生成树;上图表示区域3里有3棵生成树,除了IST实例0以外,其中实例3的域根是swb(红色虚线),实例5的域根是swc(蓝色虚线);这意味着不同实例通信数据转发路径的不同;
MSTP计算方法
提示:CST/IST的计算和RSTP类似;MSTI的计算仅限于区域内,MSTI计算参数包含在IST BPDU中,和IST计算同步完成;这里需要注意的是只有CIST的配置信息会发往其他区域,各MSTI配置信息只在该区域内传播;
CST计算结果
提示:从上图可以看到通过各个区域发送的CIST配置信息,从而计算出一颗CST生成树,并阻塞对应链路来防止环路;
IST计算结果
提示:IST就是实例0所形成的生成树,所以该生成树是各区域内部的MSTI信息计算出各个区域内的一个棵树,上图黑色实线就是IST;
MSTP计算结果分析
提示:如上图所示,hostB和hostA通信,hostB在区域4里,属于vlan2;首先在区域4里查看是否有vlan2的实例映射,如果有,就按照对应实例的生成树线路转发数据;如果没有,就走IST线路;可以看到区域4里并没有VLAN2的实例映射,所以数据转发路径走IST,然后从IST的根桥转发给其他区域;但数据到达区域3时,还是同样的方式,查看对应区域3是否有vlan2的实例映射,如果有,就走对应实例MSTI生成树对应路径,如果没有就走IST;可以看到区域3也没有VLAN的映射,所以通信路径还是会沿着IST的路径从IST的根桥发送出去;但数据来到区域1时也是先看有没有对应实例的映射,如果有就走对应实例MSTI对应的路径,如果没有就走IST;可以看到区域1里有vlan2的映射,所以在区域1里对应数据会沿着红色虚线进行转发,到达对应msit的根桥,然后发送给下一个区域;同理区域2里也有vlan2的实例,所以数据会沿着红色虚线进行转发,最后到达hostA;当然最开始会看CIST,判断出对应那条链路阻塞;然后在根据各个区域里的实例映射关系,来转发数据;
STP、RSTP和MSTP兼容性
提示:三种工作模式总的原则就是向下兼容,MSTP兼容RSTP,RSTP兼容STP;如果MSTP交换机的端口上曾经连接有STP或RSTP交换机,则对应端口会被迁移到STP或RSTP兼容工作模式;如果STP/RSTP交换机被关机,该端口无法自动迁移到MSTP模式工作,此时如果在端口上执行mcheck操作,则该端口会重新迁移到MSTP模式下工作;
STP各版本对比
MSTP配置
1、进入mstp域配置模式
2、配置MSTP域名
3、配置MSTP修订级别,范围0-65535,默认为0
4、配置实例与vlan的映射,默认所有vlan都映射到实例0上
提示:上述MSTP域名,修订级别和实例映射关系,在同一区域内的所有交换机必须相同;
5、激活mstp域配置
提示:默认配置完域名,修订级别和实例映射以后,对应在区域配置里看不到任何配置,原因是没有激活,必须激活区域配置,对应配置信息才会在区域配置模式里显示;
6、查看MSTP区域配置信息
提示:可以看到对应实例里有哪些VLAN,默认没有配置实例,就只有实例0,即所有VLAN都映射在实例0上; 所以我们把实例0称作内部生成树即IST;
7、调整实例优先级
提示:这个实例优先级调整和STP类似,命令不同之处在于MSTP需要加上实例号,即表示对那个实例进行调整;如上述命令表示把实例10的stp优先级设置为0,即实例0的主根桥;把实例20的stp优先级设置为4096,即设置实例20的备用根桥;