MSTP(Multiple Spanning Tree Protocol ,多生成树协议)将环路网络修剪成为一个无环的树型网络, 避免报文在环路网络中的增生和无限循环, 同时还提供了数据转发的多个冗余路径,在数据转发过程中实现 VLAN数据的负载均衡。
配置 MSTP 的基本功能
交换机 SwitchA 、SwitchB 、SwitchC 和 SwitchD 都支持 MSTP,本例中的交换机都使用二层
接口运行 MSTP。
配置思路
采用如下的思路配置 MSTP的基本功能:
- 将 SwitchA 和 SwitchC 配置到一个域内,域名为 RG1,创建实例 1。
- 将 SwitchB 和 SwitchD 配置到另外一个域,域名为 RG2,创建实例 1。
- 配置交换机 SwitchA 为 CIST 总根。
- 在域 RG1内,交换机 SwitchA 为 CIST 域根, SwitchA 为实例 1 的域根。 在 SwitchA
的 GE0/0/2 和 GE0/0/1 上应用根保护功能。 - 在域 RG2内,交换机 SwitchB 为 CIST 域根, SwitchD 为实例 1 的域根。
- SwitchC 和 SwitchD 的 GE0/0/1 与 PC机相连,设置为边缘端口,同时在 SwitchC
和 SwitchD 上应用 BPDU保护功能。 - 在 SwitchA 、SwitchB 、 SwitchC 和 SwitchD 使用华为私有计算方法计算路径开销。
数据准备
为完成此配置例,需准备如下的数据:
SwitchA 和 SwitchC 的域名为 RG1
SwitchB 和 SwitchD 的域名为 RG2
VLAN号是 1~20
操作步骤
配置交换机 SwitchA
#配置 SwitchA 的 MST域。
system-view
[SwitchA] stp region-configuration
[SwitchA-mst-region] region-name RG1
[SwitchA-mst-region] instance 1 vlan 1 to 10
激活域配置。
[SwitchA-mst-region] active region-configuration
[SwitchA-mst-region] quit
配置 SwitchA 在实例 0 中的优先级为 0,保证 SwitchA 作为 CIST 的总根。
[SwitchA] stp instance 0 priority 0
配置 SwitchA 在实例 1 中的优先级为 0,保证 SwitchA 作为实例 1 的域根。
[SwitchA] stp instance 1 priority 0
配置端口路径开销的计算方法为华为私有计算方法。
[SwitchA] stp pathcost-standard legacy
创建 VLAN 2 到 20。
[SwitchA] vlan batch 2 to 20
将 GE0/0/2 加入 VLAN。
[SwitchA] interface GigabitEthernet 0/0/2
[SwitchA-GigabitEthernet0/0/2] port link-type trunk
[SwitchA-GigabitEthernet0/0/2] port trunk allow-pass vlan 1 to 20
[SwitchA-GigabitEthernet0/0/2] bpdu enable
[SwitchA-GigabitEthernet0/0/2] quit
将 GE0/0/1 加入 VLAN。
[SwitchA] interface GigabitEthernet 0/0/1
[SwitchA-GigabitEthernet0/0/1] port link-type trunk
[SwitchA-GigabitEthernet0/0/1] port trunk allow-pass vlan 1 to 20
[SwitchA-GigabitEthernet0/0/1] bpdu enable
[SwitchA-GigabitEthernet0/0/1] quit
在 GE0/0/1 上启动根保护。
[SwitchA] interface GigabitEthernet 0/0/1
[SwitchA-GigabitEthernet0/0/1] stp root-protection
[SwitchA-GigabitEthernet0/0/1] quit
在 GE0/0/2 上启动根保护。
[SwitchA] interface GigabitEthernet 0/0/2
[SwitchA-GigabitEthernet0/0/2] stp root-protection
[SwitchA-GigabitEthernet0/0/2] quit
启动 MSTP。
[SwitchA] stp enable
配置交换机 SwitchB
#配置 SwitchB 的 MST域。
[SwitchB] stp region-configuration
[SwitchB-mst-region] region-name RG2
[SwitchB-mst-region] instance 1 vlan 1 to 10
#激活域配置。
[SwitchB-mst-region] active region-configuration
[SwitchB-mst-region] quit
配置 SwitchB 在实例 0 中的优先级为 4096,保证 SwitchB 作为 CIST 的域根。
[SwitchB] stp instance 0 priority 4096
#配置端口路径的开销计算方法为华为私有计算方法。
[SwitchB] stp pathcost-standard legacy
#创建 VLAN 2 到 20。
[SwitchB] vlan batch 2 to 20
将 GE0/0/1 加入 VLAN。
[SwitchB] interface GigabitEthernet 0/0/1
[SwitchB-GigabitEthernet0/0/1] port link-type trunk
[SwitchB-GigabitEthernet0/0/1] port trunk allow-pass vlan 1 to 20
[SwitchB-GigabitEthernet0/0/1] bpdu enable
[SwitchB-GigabitEthernet0/0/1] quit
将 GE0/0/2 加入 VLAN。
[SwitchB] interface GigabitEthernet 0/0/2
[SwitchB-GigabitEthernet0/0/2] port link-type trunk
[SwitchB-GigabitEthernet0/0/2] port trunk allow-pass vlan 1 to 20
[SwitchB-GigabitEthernet0/0/2] bpdu enable
[SwitchB-GigabitEthernet0/0/2] quit
启动 MSTP。
[SwitchB] stp enable
配置 SwitchC
#配置 SwitchC 的 MST域。
[SwitchC] stp region-configuration
[SwitchC-mst-region] region-name RG1
[SwitchC-mst-region] instance 1 vlan 1 to 10
#激活域配置。
[SwitchC-mst-region] active region-configuration
[SwitchC-mst-region] quit
#配置端口路径开销的计算方法为华为私有计算方法。
[SwitchC] stp pathcost-standard legacy
启动 BPDU保护功能
[SwitchC] stp bpdu-protection
#创建 VLAN 2 到 20。
[SwitchC] vlan batch 2 to 20
将 GE0/0/2 加入 VLAN。
[SwitchC] interface GigabitEthernet 0/0/2
[SwitchC-GigabitEthernet0/0/2] port link-type trunk
[SwitchC-GigabitEthernet0/0/2] port trunk allow-pass vlan 1 to 20
[SwitchC-GigabitEthernet0/0/2] bpdu enable
[SwitchC-GigabitEthernet0/0/2] quit
将 GE0/0/3 加入 VLAN。
[SwitchC] interface GigabitEthernet 0/0/3
[SwitchC-GigabitEthernet0/0/3] port link-type trunk
[SwitchC-GigabitEthernet0/0/3] port trunk allow-pass vlan 1 to 20
[SwitchC-GigabitEthernet0/0/3] bpdu enable
[SwitchC-GigabitEthernet0/0/3] quit
将 GE0/0/1 配置成边缘端口。
[SwitchC] interface GigabitEthernet 0/0/1
[SwitchC-GigabitEthernet0/0/1] stp edged-port enable
[SwitchC-GigabitEthernet0/0/1] port hybrid pvid vlan 20
[SwitchC-GigabitEthernet0/0/1] port hybrid untagged vlan 20
[SwitchC-GigabitEthernet0/0/1] quit
启动 MSTP。
[SwitchC] stp enable
配置 SwitchD
#配置 SwitchD 的 MST域。
[SwitchD] stp region-configuration
[SwitchD-mst-region] region-name RG2
[SwitchD-mst-region] instance 1 vlan 1 to 10
激活域配置。
[SwitchD-mst-region] active region-configuration
[SwitchD-mst-region] quit
#配置 SwitchD 在实例 1 中的优先级为 0,保证 SwitchD 作为实例 1 的域根。
[SwitchD] stp instance 1 priority 0
#配置端口路径开销的计算方法为华为私有计算方法。
[SwitchD] stp pathcost-standard legacy
启动 BPDU保护功能。
[SwitchD] stp bpdu-protection
#创建 VLAN 2 到 20。
[SwitchD] vlan batch 2 to 20
将 GE0/0/2 加入 VLAN。
[SwitchD] interface GigabitEthernet 0/0/2
[SwitchD-GigabitEthernet0/0/2] port link-type trunk
[SwitchD-GigabitEthernet0/0/2] port trunk allow-pass vlan 1 to 20
[SwitchD-GigabitEthernet0/0/2] bpdu enable
[SwitchD-GigabitEthernet0/0/2] quit
将 GE0/0/3 加入 VLAN。
[SwitchD] interface GigabitEthernet 0/0/3
[SwitchD-GigabitEthernet0/0/3] port link-type trunk
[SwitchD-GigabitEthernet0/0/3] port trunk allow-pass vlan 1 to 20
[SwitchD-GigabitEthernet0/0/3] bpdu enable
[SwitchD-GigabitEthernet0/0/3] quit
将 GE0/0/1 配置成边缘端口。
[SwitchD] interface GigabitEthernet 0/0/1
[SwitchD-GigabitEthernet0/0/1] stp edged-port enable
[SwitchD-GigabitEthernet0/0/1] port hybrid pvid vlan 10
[SwitchD-GigabitEthernet0/0/1] port hybrid untagged vlan 10
[SwitchD-GigabitEthernet0/0/1] quit
启动 MSTP。
[SwitchD] stp enable
验证配置结果
经过以上配置,在网络计算稳定后,执行以下操作,验证配置结果。
#在 SwitchA 上执行 display stp brief 命令, 查看端口状态和端口的保护类型.
由于交换机 SwitchA 在 CIST 内优先级最高,所以 SwitchA 被选择为 CIST 总根,同时它也是 RG1的域根。SwitchA 的 GE0/0/2 和 GE0/0/1 在 CIST 上都是指定端口。
交换机 SwitchA 实例 1 上的优先级在域 RG1内最高,所以 SwitchA 被选择为实例1 的域根。 GE0/0/2 和 GE0/0/1 在实例 1 上都被计算为指定端口。
在 SwitchC 上执行 display stp interface brief 命令
SwitchC 的 GE0/0/3 在 CIST 和实例 1 中为根端口。 SwitchC 的另一个 GE0/0/2 ,
在 CIST 和实例 1 中都是指定端口。
#在交换机 SwitchB 上执行 display stp brief 命令
交换机 SwitchB 在 CIST 上的优先级低于 SwitchA ,GE0/0/2 在 CIST 被计算为根端口。同时因为 SwitchA 和 SwitchB 不属于同一个域,所以 GE0/0/2 在实例 1 上被计算为 Master 端口。在实例 1 中,SwitchB 的优先级低于 SwitchD ,所以 GE0/0/1被计算为根端口。 SwitchB 在 CIST 中的优先级高于 SwitchD ,GE0/0/1 在 CIST 被计算为指定端口。
在 SwitchD 上执行 display stp interface brief 命令
因为 SwitchD 的 GE0/0/2 在 CIST 上为 Alternate 端口,又因为 SwitchD 与 SwitchC不在同一个域,所以 GE0/0/2 在实例 1 中的也被选择为 Alternate 端口。
GE0/0/3 在 CIST 为根端口, 因为 SwitchD 在实例 1 中的优先级比 SwitchB 高,所以 GE0/0/3 在实例 1 上被作为指定端口。