为什么要用MSTP
在前面讲解了STP和RSTP的工作原理以及他们之间的关系与区别。但是不管是STP还是RSTP,在网络中进行生成树计算的时候都没有考虑到VLAN的情况。它们都是对单一生成树实例进行应用的。也就是说,在STP和RSTP中所有的VLAN都共享相同的生成树。
为了解决这一个问题,思科提出了第二代生成树---PVST、PVST+。按照PVST协议规定,每一个VLAN都有一个生成树,而且是每隔2秒就会发送一个BPDU,这对于一个有着上千万个VLAN网络来说,一方面这么多生成树维护起来比较困难,另一方面,为每个VLAN每隔2秒就发送一个BPDU,交换机也是难以承受的。
为了解决PVST带来的困难,思科又提出了第三代生成树----MST(MSTP)多生成树协议。MSTP可以对网络中众多的VLAN进行分组,把VLAN分到组里。这里的组就是后面讲的MST实例(Instance)。每个实例一个生成树,BPDU只对实例进行发送。这样就达到了负载均衡。
总结一下:
第一代:STP和RSTP:没有考虑VLAN的情况,所有的VLAN都共享相同的生成树。
第二代:PVST、PVST+: 每一个VLAN一个生成树。
第三代: MSTP: 将多个VLAN分到组里面。每个组共享一个生成树。
MSTP概述
MSTP 多生成树协议 又是802.1s 标准。
MSTP在继承了第一代生成树RSTP的优点(快速收敛)的基础上也实现了负载均衡的功能,而且它比PVST的收敛还要快,并且和STP、RSTP、PVST都是完全兼容的。可谓是功能齐全的现代生成树。
MSTP在计算生成树的过程中,会为每个VLAN或每组VLAN计算一个生成树。一个组也就是一个实例,一个实例(也就是一个转发路径)的失效是不会影响其他实例的。
MSTP区域与实例
为了让一个或多个Vlan运行一个生成树,需要对网络中的VLAN交换机进行实例的划分,也就是将一个或者多个VLAN映射到一个MST实例(MST Instance)中,也就是划分到一个组中,然后在这个实例中运行一个生成树。那么在一个MST实例中将会有不同的多个VLAN,具有相同MST实例映射规则或配置的交换机组成了一个MST区域(region)。
同一个MST区域中的VLAN都应该有相同的三种属性:
1. MST配置名称(Name) 2. MST修正号(Resvison number) 3. Vlan到MST实例的映射: 在每台交换机里,最多建64个MST实例,编号从1-64,Instance 0是强制存在的。在交换机上可以通过配置将Vlan和不同的Instance进行映射,没有被映射到MST实例的Vlan默认属于Instance 0.实际上,在配置映射关系之前,交换机上所有的Vlan都属于Instance 0. |
如下图所示:交换机A、C在区域A中。区域A中有4个VLAN,VLAN1、2在实例1中,VLAN3、4在实例2中。
在每个区域中,MSTP都将为每个MST实例进行独立的生成树运行。即:实例1(Instance1)将运行一个生成树。实例2(Instance2)将运行另一个生成树。
MSTP术语
在每个区域中,MSTP都将为每个MST实例进行独立的生成树运行。因为这个特点,在MSTP网络中会有很多的生成树,包括了MSTI生成树、IST、CISI和CST。
如上图所示:在区域A中,实例1和实例2各自运行一本实例的生成树,成为MSTI生成树。
在整个区域A中所有的交换机运行一个生成树,成为IST生成树
在整个交换机组成的网络中,区域A和区域B各自被视为一个网桥。在这些网桥间运行的生成树被称为CST。
CST是整个网络中IST、CST、以及802.1d网桥的集合。
MSTP配置实例
【案例描述】
某企业网络管理员认识到,传统的生成树协议(STP)是基于整个交换网络产生一个树形拓扑结构,所有的VLANs都共享一个生成树,这种结构不能进行网络流量的负载均衡,使得有些交换设备比较繁忙,而另一些交换设备又很空闲,为了克服这个问题,他决定采用基于VLAN的多生成树协议MSTP,现要在交换机上做适当配置来完成这一任务。
本实验采用4台交换机设备,PC1和PC3在Vlan 10中,IP地址分别为172.16.1.10/24和172.16.1.30/24,PC2在Vlan 20中,PC4在Vlan 40中。
【实现功能】
在实现网络冗余和可靠性的同时实现负载均衡。
【实验拓扑】
【实验步骤】
以下实验并没有实现PC机之间的通信,如果要实现,读者可以自己在三层设备中加入IP。
- 第一步:配置接入层交换机S2126-A
- S2126-A (config)#spanning-tree !开启生成树
- S2126-A (config)#spanning-tree mode mstp !配置生成树模式为MSTP
- S2126-A(config)#vlan 10 !创建Vlan 10
- S2126-A(config)#vlan 20 !创建Vlan 20
- S2126-A(config)#vlan 40 !创建Vlan 40
- S2126-A(config)#interface fastethernet 0/1
- S2126-A(config-if)#switchport access vlan 10 !分配端口F0/1给Vlan 10
- S2126-A(config)#interface fastethernet 0/2
- S2126-A(config-if)#switchport access vlan 20 !分配端口F0/2给Vlan 20
- S2126-A(config)#interface fastethernet 0/23
- S2126-A(config-if)#switchport mode trunk !定义F0/23为trunk端口
- S2126-A(config)#interface fastethernet 0/24
- S2126-A(config-if)#switchport mode trunk !定义F0/24为trunk端口
- S2126-A(config)#spanning-tree mst configuration ! 进入MSTP配置模式
- S2126-A(config-mst)#instance 1 vlan 10 !配置instance 1(实例1)并关联10
- S2126-A(config-mst)#instance 2 vlan 20,40 !配置实例2并关联Vlan 20和40
- S2126-A(config-mst)#name region1 !配置域名称
- S2126-A(config-mst)#revision 1 !配置版本(修订号)
验证测试:验证MSTP配置
- S2126-A#show spanning-tree mst configuration ! 显示MSTP全局配置
- Multi spanning tree protocol : Enabled
- Name : region1
- Revision : 1
- Instance Vlans Mapped
- -------- ------------------------------------------------------------
- 0 2-9,11-19,21- 39,41- 4094
- 1 10
- 2 20,40
- 第二步:配置接入层交换机S2126-B
- S2126-B (config)#spanning-tree !开启生成树
- S2126-B (config)#spanning-tree mode mstp !采用MSTP生成树模式
- S2126-B(config)#vlan 10 !创建Vlan 10
- S2126-B(config)#vlan 20 !创建Vlan 20
- S2126-B(config)#vlan 40 !创建Vlan 40
- S2126-B(config)#interface fastethernet 0/1
- S2126-B(config-if)#switchport access vlan 10 !分配端口F0/1给Vlan 10
- S2126-B(config)#interface fastethernet 0/2
- S2126-B(config-if)#switchport access vlan 40 !分配端口F0/2给Vlan 40
- S2126-B(config)#interface fastethernet 0/23
- S2126-B(config-if)#switchport mode trunk !定义F0/23为trunk端口
- S2126-B(config)#interface fastethernet 0/24
- S2126-B(config-if)#switchport mode trunk !定义F0/24为trunk端口
- S2126-B(config)#spanning-tree mst configuration ! 进入MSTP配置模式
- S2126-B(config-mst)#instance 1 vlan 10 !配置instance 1(实例1)并关联10
- S2126-B(config-mst)#instance 2 vlan 20,40 !配置实例2并关联Vlan 20和40
- S2126-B(config-mst)#name region1 !配置域名称
- S2126-B(config-mst)#revision 1 !配置版本(修订号)
验证测试:验证MSTP配置
- S2126-B#show spanning-tree mst configuration
- Multi spanning tree protocol : Enabled
- Name : region1
- Revision : 1
- Instance Vlans Mapped
- -------- ------------------------------------------------------------
- 0 2-9,11-19,21-39,41-4094
- 1 10
- 2 20,40
- 第三步:配置分布层交换机S3550-A
- S3550-A(config)#spanning-tree !开启生成树
- S3550-A (config)#spanning-tree mode mstp !采用MSTP生成树模式
- S3550-A(config)#vlan 10
- S3550-A(config)#vlan 20
- S3550-A(config)#vlan 40
- S3550-A(config)#interface fastethernet 0/1
- S3550-A(config-if)#switchport mode trunk !定义F0/1为trunk端口
- S3550-A(config)#interface fastethernet 0/23
- S3550-A(config-if)#switchport mode trunk !定义F0/23为trunk端口
- S3550-A(config)#interface fastethernet 0/24
- S3550-A(config-if)#switchport mode trunk !定义F0/24为trunk端口
- S3550-A (config)#spanning-tree mst 1 priority 4096 !配置交换机S3550-A在instance 1中的优先级为4096 ,缺省是32768,值越小越优先成为该instance中的root switch
- S3550-A (config)#spanning-tree mst configuration ! 进入MSTP配置模式
- S3550-A (config-mst)#instance 1 vlan 10 ! 配置实例1并关联Vlan 10
- S3550-A (config-mst)#instance 2 vlan 20,40 ! 配置实例2并关联Vlan 20和40
- S3550-A (config-mst)#name region1 ! 配置域名为region1
- S3550-A (config-mst)#revision 1 ! 配置版本(修订号)
验证测试:验证MSTP配置
- S3550-A#show spanning-tree mst configuration
- Multi spanning tree protocol : Enabled
- Name : region1
- Revision : 1
- Instance Vlans Mapped
- -------- ------------------------------------------------------------
- 0 2-9,11-19,21-39,41-4094
- 1 10
- 2 20,40
- 第四步:配置分布层交换机S3550-B
- S3550-B(config)#spanning-tree !开启生成树
- S3550-B (config)#spanning-tree mode mstp !采用MSTP生成树模式
- S3550-B(config)#vlan 10
- S3550-B(config)#vlan 20
- S3550-B(config)#vlan 40
- S3550-B(config)#interface fastethernet 0/1
- S3550-B(config-if)#switchport mode trunk ! 定义F0/1为trunk端口
- S3550-B(config)#interface fastethernet 0/23
- S3550-B(config-if)#switchport mode trunk ! 定义F0/23为trunk端口
- S3550-B(config)#interface fastethernet 0/24
- S3550-B(config-if)#switchport mode trunk ! 定义F0/24为trunk端口
- S3550-B (config)#spanning-tree mst 2 priority 4096 !配置交换机S3550-B在instance 2(实例2) 中的优先级为4096 ,缺省是32768,值越小越优先成为该region (域)中的root switch
- S3550-B (config)#spanning-tree mst configuration ! 进入MSTP配置模式
- S3550-B (config-mst)#instance 1 vlan 10 ! 配置实例1并关联Vlan 10
- S3550-B (config-mst)#instance 2 vlan 20,40 ! 配置实例2并关联Vlan 20和40
- S3550-B (config-mst)#name region1 ! 配置域名为region1
- S3550-B (config-mst)#revision 1 ! 配置版本(修订号)
验证测试:验证MSTP配置
- S3550-B#show spanning-tree mst configuration
- Multi spanning tree protocol : Enabled
- Name : region1
- Revision : 1
- Instance Vlans Mapped
- -------- ------------------------------------------------------------
- 0 2-9,11-19,21-39,41-4094
- 1 10
- 2 20,40
- 第五步:验证交换机配置
- S3550-A#show spanning-tree mst 1 !显示交换机S3550-A上实例1的特性
- ###### MST 1 vlans mapped : 10
- BridgeAddr : 00d0.f8ff.4e3f !交换机S3550-A的MAC地址
- Priority : 4096 ! 优先级
- TimeSinceTopologyChange : 0d:7h:21m:17s
- TopologyChanges : 0
- DesignatedRoot : 100100D0F8FF4E3F !后12位是MAC地址,此处显示是S3550-A自身的MAC,这说明S3550-A是实例1 (instance 1)的生成树的根交换机
- RootCost : 0
- RootPort : 0
- S3550-B#show spanning-tree mst 2 !显示交换机S3550-B上实例2的特性
- ###### MST 2 vlans mapped : 20,40
- BridgeAddr : 00d0.f8ff.4662
- Priority : 4096
- TimeSinceTopologyChange : 0d:7h:31m:0s
- TopologyChanges : 0
- DesignatedRoot : 100200D0F8FF4662 ! S3550-B是实例2 (instance 2)的生成树的根交换机
- RootCost : 0
- RootPort : 0
- S2126-A#show spanning-tree mst 1 !显示交换机S2126-A上实例1的特性
- ###### MST 1 vlans mapped : 10
- BridgeAddr : 00d0.f8fe.1e49
- Priority : 32768
- TimeSinceTopologyChange : 7d:3h:19m:31s
- TopologyChanges : 0
- DesignatedRoot : 100100D0F8FF4E3F ! 实例1的生成树的根交换机是S3550-A
- RootCost : 200000
- RootPort : Fa0/23 !对实例1而言,S2126-A的根端口是Fa0/23
- S2126-A#show spanning-tree mst 2 !显示交换机S2126-A上实例2的特性
- ###### MST 2 vlans mapped : 20,40
- BridgeAddr : 00d0.f8fe.1e49
- Priority : 32768
- TimeSinceTopologyChange : 7d:3h:19m:31s
- TopologyChanges : 0
- DesignatedRoot : 100200D0F8FF4662 ! 实例2的生成树的根交换机是S3550-B
- RootCost : 200000
- RootPort : Fa0/24 !对实例2而言,S2126-A的根端口是Fa0/24