问题描述
STP/RSTP 的缺陷是所有的 VLAN 共享一棵生成树:RSTP 在 STP 基础上进行改进,实现网络拓扑快速收敛。
但 RSTP 和 STP 还存在缺陷:
流量无法负载分担
如果网络中只有一个生成树,假设SW3与SW2相连的端口为阻塞端口,则VLAN2和VLAN3的数据都只能通过一条链路到汇聚交换机,不能实现流量负载分担。
数据链路层次优路径
由于SW3与SW2间的链路被阻塞,VLAN3的数据到达网关的路径是次优的,最优的路径应当是由SW3直达SW2。
解决方案
为了弥补 STP 和 RSTP 的缺陷,IEEE 于 2002 年发布的 802.1s 标准定义 MSTP(Multiple Spanning Tree Protocol,多生成树协议)。
华为公司提出 VBST(VLAN-Based Spanning Tree)生成树解决方案,思科提出 PVST(PVST)协议,实现每个 VLAN 使用独立的树。
原理简述
在 MSTP 中,生成树的形成是基于 VLAN 的,不同 VLAN 间可形成相互独立的生成树,不同 VLAN 内的流量沿着各自的生成树转发,进而可实现流量的负载分担。
MSTP 把一个交换网络划分成多个域,每个域内形成多棵生成树,生成树间彼此独立。
每棵生成树叫做一个多生成树实例 MSTI(Multiple Spanning Tree Instance)。
所谓生成树实例就是多个 VLAN 的一个集合。
通过将多个VLAN捆绑到一个实例,可以节省通信开销和资源占用率。
MSTP各个实例拓扑的计算相互独立,在这些实例上可以实现负载均衡。
可以把多个相同拓扑结构的VLAN映射到一个实例里,这些VLAN在接口上的转发状态取决于接口在对应实例的状态。
MSTP 将创建多个生成树实例,然后将 VLAN 分组到不同生成树的实例中,例如:在网络中将维护 2 棵生成树,将 VLAN 1-10 映射到 Instance-1,将 VLAN 11-20 映射到 Instance-2;
如图中例子,经计算,最终生成两棵生成树:
1)Instance1 对应的生成树以SW1为根交换设备,转发 VLAN1~VLAN10 的报文。
2)Instance2 对应的生成树以SW2为根交换设备,转发 VLAN11~VLAN20 的报文。
不同VLAN的报文沿不同的路径转发,实现负载分担。注意:生成树不是基于 VLAN 运行的,而是基于 Instance 运行的。
协议特性
消除环路:MSTP 兼容 STP 和 RSTP 协议;
快速收敛:既可以快速收敛(依旧应用 RSTP 的 P/A 机制),
负载分担:在数据转发过程中实现 VLAN 数据的负载均衡。
冗余备份:通过建立多棵无环路的树,除解决广播风暴外,并实现冗余备份。
应用场景
WIP
参考文献
Multiple Spanning Tree Protocol – Wikipedia