MSTP协议原理
MSTP简介
多生成树协议MSTP(Multiple Spanning Tree Protocol)是IEEE
802.1s中定义的生成树协议,通过生成多个生成树,来解决以太网环路问题。
目的:
在以太网中部署MSTP协议后可实现如下功能:
形成多棵无环路的树,解决广播风暴并实现冗余备份。
多棵生成树在VLAN间实现负载均衡,不同VLAN的流量按照不同的路径转发。
MSTP原理描述
STP/RSTP的缺陷:
RSTP在STP基础上进行了改进,实现了网络拓扑快速收敛。但RSTP和STP还存在同一个缺陷:由于局域网内所有的VLAN共享一棵生成树,因此无法在VLAN间实现数据流量的负载均衡,链路被阻塞后将不承载任何流量,还有可能造成部分VLAN的报文无法转发。
MSTP对STP和RSTP的改进:
为了弥补STP和RSTP的缺陷,IEEE于2002年发布的802.1S标准定义了MSTP。MSTP兼容STP和RSTP,既可以快速收敛,又提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。
MSTP把一个交换网络划分成多个域,每个域内形成多棵生成树,生成树之间彼此独立。每棵生成树叫做一个多生成树实例MSTI(Multiple Spanning Tree Instance),每个域叫做一个MST域(MST Region:Multiple Spanning Tree Region)。
所谓生成树实例就是多个VLAN的一个集合。通过将多个VLAN捆绑到一个实例,可以节省通信开销和资源占用率。MSTP各个实例拓扑的计算相互独立,在这些实例上可以实现负载均衡。可以把多个相同拓扑结构的VLAN映射到一个实例里,这些VLAN在端口上的转发状态取决于端口在对应MSTP实例的状态。
单生成树的弊端
部分VLAN路径不通
无法实现流量分担
次优二层路径
MSTP基本概念:
MST域(MST Region)
都启动了MSTP。
具有相同的域名。
具有相同的VLAN到生成树实例映射配置。
具有相同的MSTP修订级别配置。
一个局域网可以存在多个MST域,各MST域之间在物理上直接或间接相连。用户可以通过MSTP配置命令把多台交换设备划分在同一个MST域内。
VLAN映射表:
VLAN映射表是MST域的属性,它描述了VLAN和MSTI之间的映射关系。
CST
公共生成树CST(Common Spanning Tree)是连接交换网络内所有MST域的一棵生成树。
如果把每个MST域看作是一个节点,CST就是这些节点通过STP或RSTP协议计算生成的一棵生成树。
IST
内部生成树IST(Internal Spanning Tree)是各MST域内的一棵生成树。
IST是一个特殊的MSTI,MSTI的ID为0,通常称为MSTI0。
IST是CIST在MST域中的一个片段。
SST
运行STP或RSTP的交换设备只能属于一个生成树。
MST域中只有一个交换设备,这个交换设备构成单生成树。
CIST
公共和内部生成树CIST(Common and Internal Spanning Tree)是通过STP或RSTP协议计算生成的,连接一个交换网络内所有交换设备的单生成树。
域根
域根(Regional Root)分为IST域根和MSTI域根。
一个MST域内可以生成多棵生成树,每棵生成树都称为一个MSTI。MSTI域根是每个多生成树实例的树根。
总根
总根是CIST(Common and Internal Spanning Tree)的根桥。
主桥
主桥(Master Bridge)也就是IST Master,它是域内距离总根最近的交换设备。
端口角色
根端口、指定端口、Alternate端口、Backup端口和边缘端口的作用同RSTP协议中定义。
除边缘端口外,其他端口角色都参与MSTP的计算过程。
同一端口在不同的生成树实例中可以担任不同的角色。
MSPT报文:
MSTP使用多生成树桥协议数据单元MST BPDU(Multiple Spanning Tree Bridge Protocol Data Unit)作为生成树计算的依据。MST BPDU报文用来计算生成树的拓扑、维护网络拓扑以及传达拓扑变化记录。
STP中定义的配置BPDU、RSTP中定义的RST BPDU、MSTP中定义的MST BPDU及TCN BPDU差异对比如下:
四种BPDU差异比较:
版本 | 类型 | 名称 |
---|---|---|
0 | 0x00 | 配置BPDU |
0 | 0x80 | TCN BPDU |
2 | 0x02 | RST BPDU |
3 | 0x02 | MST BPDU |
MSTP帧格式
多生成树协议MSTP是生成树协议的一种,用于消除网络环路,它兼容生成树协议STP和快速生成树RSTP协议,并且弥补了两者的缺陷。
MSTP使用多生成树桥协议数据单元MST BPDU(Multiple Spanning Tree Bridge Protocol Data Unit)作为生成树计算的依据。 MST BPDU报文用来计算生成树的拓扑、维护网络拓扑以及传达拓扑变化记录。MST BPDU报文结构如下图所示:
MSTP配置实现(1)
[r1]stp mode mstp
默认存在组0,且所有vlan默认处于该组;优先级= 32768+0
分组
[sw1]stp enable
[sw1]stp region-configuration
[sw1-mst-region]region-name a 所有设备应在一个组内
[sw1-mst-region]instance 1 vlan 1 to 5
[sw1-mst-region]instance 2 vlan 6 to 10
[sw1-mst-region]active region-configuration 激活当前配置(必须配置该指令)
切记:若将创建某个组,但该组内的vlan,在本交换机上没有创建,同时没有为该vlan服务的接口;该组将没有任何信息;整个交换网络中所有设备的分组信息必须完全一致;
定义本地为组1 的主根,组2 的备份根
stp instance 1 root primary 优先级修改为0
stp instance 2 root secondary 优先级修改为4096
[sw1]stp instance 1 priority ?
INTEGER<0-61440> Bridge priority, in steps of 4096
[sw1]interface GigabitEthernet 0/0/1
[sw1-GigabitEthernet0/0/1]stp instance 1 cost ?
INTEGER<1-200000000> Port path cost
[sw1-GigabitEthernet0/0/1]stp instance 1 port priority ?
INTEGER<0-240> Port priority, in steps of 16