原理概述
- RSTP早STP的基础上进行改进,实现网络拓扑的快速收敛,但是有个缺陷,由于所有的vlan共享一个生成树,链路阻塞后将不能承载任何的流量,造成带宽浪费,因此在vlan之间实现负载均衡,还有可能造成部分vlan的报文无法转发。
- MSTP可以将一个交换网络话分成多个区域,每个区域内形成的多颗生成树,生成树之间互相独立。每个区域叫做一个MST域,每棵生成树叫做一个多生成树实例MSTI,每个实例可以可以包含多个vlan,通过将各个实力拓扑的生成树计算相互独立,通过这些实例可以实现负载均衡。把多个相同拓扑结构的vlan映射到一个实例中,这些vlan在端口上的转发状态取决于端口在对应MSTP实例的状态。
- MSTP通过设置vlan映射表,把vlan和MSTP联系起来,每个vlan只能对应一个MSTI,同一个VLAN的数据只能在一个MSTI种传输,而MSTI可能对应多个vlan。
实验目的
●掌握MSTP的基础配置
●掌握MSTP多实例的方法
●掌握MSTP实现流量分单的方法
●理解MSTP和STP、RSTP的区别
实验拓扑
●基础配置:先配置vlan
- 理解MSTP的运行机制和验证单实例
- 华为交换机上默认使用的是MSTP协议,
- 使用 dis stp brief 看每个交换机的生成树和统计的摘要信息 依次为S1,S2,S3
- 可以看到S1上的端口全部为指定端口,都处于转发状态,为根交换机.S2上的e0/0/1为可替代端口,处于丢弃状态.目前三台交换的所有端口的MSTID(就是MSTP的实例ID)都是0,所以在默认的情况下,所有的vlan均属于MSTP实例0中.
- 如果当前STP的模式为RSTP,最终选举的根交换机以及被阻塞的端口等结果斗鱼MSTP的选举结果一致.因为当前只有一个MSTP实例.
- 用pc2 ping pc1 pc4 ping pc3,抓包.
- 在S2的e1口抓包:可以看出这个口没有任何数据转发,只接收上行接口周期发送的BPDU.
- 在s2的e2口抓包:,可以看出两个vlan的数据包都是从这个口转发的.
- 配置MSTP实例
- MSTP可以由一个或者多个MST域组成,每个MST域中包含一个或者多个MSTI,MST实例,MST域中有一个映射表,描述了vlan和msti的映射关系,默认所有的vlan都映射到MSTI0中,MSTI之间彼此独立.在S1上配置MSTP实例,使用STP region -configuration命令进入MST域视图.
●[S1]stp region-configuration 进入视图
●[S1-mst-region]region-name huawei 将域名改成huawei
●[S1-mst-region]revision-level 1 将MSTP级别改为1
●[S1-mst-region]instance 1 vlan 10 将vlan 10映射到MSTI 1
●[S1-mst-region]instance 2 vlan 20
●[S1-mst-region]active region-configuration 激活MST域配置.
- 在s2和S3上做同样的配置.配置完成后,使用dis stp region-configuration看看
- 所有交换机的MST域名都为huawei,修订版本号都为1,vlan与实例之间的映射一致,除了10和20,其余都处于0中,
- 配置结束后,持续抓包得到结果: 没有变化
- 现在已经配置了多实例,但是由于每个MSTP都在进行单独的生成树计算,所以在默认不变动生成树的情况下,其实每棵树的选举结果都是一致的.
- 下面再每个交换机上查看每个实例生成树状态和摘要信息,选举结果是一致的,都是把s2的e0/0/1口作为discarding状态.
- 可以发现,在短暂的阻塞后,vlan10走e1口转发,vlan20走2口转发.