5.4 MSTP基础配置
5.4.1 原理概述
RSTP在STP基础上进行了改进,实现了网络拓扑快速收敛。但RSTP和STP还存在同一个缺陷,即由于局域网内所有的VLAN共享一棵生成树,链路被阻塞后将不承载任何流量,造成带宽浪费,因此无法在VLAN间实现数据流量的负载均衡,还有可能造成部分VLAN的报文无法转发。
通过MSTP把一个交换网络划分成多个域,每个域内形成多棵生成树,生成树之间彼此独立。每个域叫做一个MST域(Multiple Spanning Tree Region,MST Region),每棵生成树叫做一个多生成树实例MSTI(Multiple Spanning Tree Instance)。
实例内可以包含多个VLAN。通过将多个VLAN映射到同一个实例内,可以节省通信开销和资源占用率。MSTP各个实例拓扑的生成树计算相互独立,通过这些实例可以实现负载均衡。把多个相同拓扑结构的VLAN映射到一个实例里,这些VLAN在端口上的转发状态取决于端口在对应MSTP实例的状态。
MSTP通过设置VLAN映射表(即VLAN和MSTI的对应关系表),把VLAN和MSTI联系起来。每个VLAN只能对应一个MSTI,即同一VLAN的数据只能在一个MSTI中传输,而一个MSTI可能对应多个VLAN。
5.4.2 实验内容
某二层网络由三台交换机S1、S2、S3组成。交换机S1与S2在一楼层,S3在另外一个楼层,PC-1与PC-2属于HR部门,划入VLAN10,PC-3与PC-4属于IT部门,划入VLAN20。当使用普通STP时,STP将会阻塞一条链路来防止环路产生,导致该链路闲置。为了保证所有链路都能充分利用,使流量能够分担,网络管理员通过配置MSTP来实现。
5.4.3 实验拓扑
5.4.4 实验编址
设备名称 | VLAN | 接口 | IP地址 | 子网掩码 | 默认网关 |
---|---|---|---|---|---|
PC1 | VLAN10 | Ethernet0/0/1 | 192.168.10.1 | 255.255.255.0 | 192.168.1.254 |
PC2 | VLAN10 | Ethernet0/0/1 | 192.168.10.2 | 255.255.255.0 | 192.168.1.254 |
PC3 | VLAN20 | Ethernet0/0/1 | 192.168.20.1 | 255.255.255.0 | 192.168.2.254 |
PC4 | VLAN20 | Ethernet0/0/1 | 192.168.20.2 | 255.255.255.0 | 192.168.2.254 |
5.4.5 实验步骤
1、基础配置
根据编址表,在各台PC上配置IP地址。在三台交换机上创建VLAN10和VLAN20,并设置连接PC的端口设置为access口,划入相应的VLAN,交换机间的接口配置为trunk口,允许所有VLAN通过。
[S1]vlan batch 10 20
[S1]interface Ethernet0/0/3
[S1-Ethernet0/0/3]port link-type access
[S1-Ethernet0/0/3]port default vlan 10
[S1-Ethernet0/0/3]interface Ethernet0/0/1
[S1-Ethernet0/0/1]port link-type trunk
[S1-Ethernet0/0/1]port trunk allow-pass vlan all
[S1-Ethernet0/0/1]interface Ethernet0/0/2
[S1-Ethernet0/0/2]port link-type trunk
[S1-Ethernet0/0/2]port trunk allow-pass vlan all
[S2]vlan batch 10 20
[S2]interface Ethernet0/0/3
[S2-Ethernet0/0/3]port link-type access
[S2-Ethernet0/0/3]port default vlan 20
[S2-Ethernet0/0/3]interface Ethernet0/0/2
[S2-Ethernet0/0/2]port link-type trunk
[S2-Ethernet0/0/2]port trunk allow-pass vlan all
[S2-Ethernet0/0/2]interface Ethernet0/0/1
[S2-Ethernet0/0/1]port link-type trunk
[S2-Ethernet0/0/1]port trunk allow-pass vlan all
[S3]vlan batch 10 20
[S3]interface Ethernet0/0/1
[S3-Ethernet0/0/1]port link-type trunk
[S3-Ethernet0/0/1]port trunk allow-pass vlan all
[S3-Ethernet0/0/1]interface Ethernet0/0/2
[S3-Ethernet0/0/2]port link-type trunk
[S3-Ethernet0/0/2]port trunk allow-pass vlan all
[S3-Ethernet0/0/2]interface Ethernet0/0/3
[S3-Ethernet0/0/3]port link-type access
[S3-Ethernet0/0/3]port default vlan 10
[S3-Ethernet0/0/3]interface Ethernet0/0/4
[S3-Ethernet0/0/4]port link-type access
[S3-Ethernet0/0/4]port default vlan 20
2、理解MSTP的运行机制及验证单实例
使用display stp brief
命令查看三台交换机的生成树状态和统计的概要信息。
[S1]display stp brief
MSTID Port Role STP State Protection
0 Ethernet0/0/1 ALTE DISCARDING NONE
0 Ethernet0/0/2 ROOT FORWARDING NONE
0 Ethernet0/0/3 DESI FORWARDING NONE
[S2]display stp brief
MSTID Port Role STP State Protection
0 Ethernet0/0/1 ROOT FORWARDING NONE
0 Ethernet0/0/2 DESI FORWARDING NONE
0 Ethernet0/0/3 DESI FORWARDING NONE
[S3]display stp brief
MSTID Port Role STP State Protection
0 Ethernet0/0/1 DESI FORWARDING NONE
0 Ethernet0/0/2 DESI FORWARDING NONE
0 Ethernet0/0/3 DESI FORWARDING NONE
0 Ethernet0/0/4 DESI FORWARDING NONE
可以观察到,此时S3上所有端口为指定端口,且都处于转发状态,为根交换机。S1上面的E0/0/1为替代端口,处于丢弃状态。MSTID即MSTP的实例ID,三台交换机上目前都为0,即在默认情况下,所有VLAN都处于MSTP实例0中。
通过抓取S1交换机的E0/0/1口(替代端口)数据包观察,没有任何数据包转发,S1到S2的链路完全处于闲置状态,造成了资源的浪费,为了能有效的利用链路资源,可以通过配置MSTP的多实例来实现。
3、配置MSTP多实例
[S1]stp region-configuration # 进入MST域视图
[S1-mst-region]region-name huawei # 配置MST域名为huawei
[S1-mst-region]revision-level 1 # 配置MSTP的修订级别为1
[S1-mst-region]instance 1 vlan 10 # 指定VLAN10映射到MSTI1
[S1-mst-region]instance 2 vlan 20 # 指定VLAN20映射到MSTI2
[S1-mst-region]active region-configuration # 激活MST域配置
[S2]stp region-configuration
[S2-mst-region]region-name huawei
[S2-mst-region]revision-level 1
[S2-mst-region]instance 1 vlan 10
[S2-mst-region]instance 2 vlan 20
[S2-mst-region]active region-configuration
[S3]stp region-configuration
[S3-mst-region]region-name huawei
[S3-mst-region]revision-level 1
[S3-mst-region]instance 1 vlan 10
[S3-mst-region]instance 2 vlan 20
[S3-mst-region]active region-configuration
这里我的根交换机是S3,所以阻塞的接口就是S1的E0/0/1,走的路径就看着是各走各的。在这里我把S1设为实例1的根交换机,S2设为实例2的根交换机。
[S1]stp instance 1 priority 0
[S2]stp instance 2 priority 0
通过抓包分析,从PC2发送到PC1的包从S3的E0/0/1转发,从PC4发送到PC3的包从S3的E0/0/2转发。
用display stp instance 1 brief
和display stp instance 2 brief
查看三台交换机的结果如下:
[S1]display stp instance 1 brief
MSTID Port Role STP State Protection
1 Ethernet0/0/1 DESI FORWARDING NONE
1 Ethernet0/0/2 DESI FORWARDING NONE
1 Ethernet0/0/3 DESI FORWARDING NONE
[S2]display stp instance 1 brief
MSTID Port Role STP State Protection
1 Ethernet0/0/1 ALTE DISCARDING NONE
1 Ethernet0/0/2 ROOT FORWARDING NONE
[S3]display stp instance 1 brief
MSTID Port Role STP State Protection
1 Ethernet0/0/1 ROOT FORWARDING NONE
1 Ethernet0/0/2 DESI FORWARDING NONE
1 Ethernet0/0/3 DESI FORWARDING NONE
[S1]display stp instance 2 brief
MSTID Port Role STP State Protection
2 Ethernet0/0/1 ROOT FORWARDING NONE
2 Ethernet0/0/2 ALTE DISCARDING NONE
[S2]display stp instance 2 brief
MSTID Port Role STP State Protection
2 Ethernet0/0/1 DESI FORWARDING NONE
2 Ethernet0/0/2 DESI FORWARDING NONE
2 Ethernet0/0/3 DESI FORWARDING NONE
[S3]display stp instance 2 brief
MSTID Port Role STP State Protection
2 Ethernet0/0/1 DESI FORWARDING NONE
2 Ethernet0/0/2 ROOT FORWARDING NONE
2 Ethernet0/0/4 DESI FORWARDING NONE
可以观察到S2的E0/0/1和S1的E0/02分别是阻塞状态。要想断路的时候要不出现丢包就配置边缘接口。