配置 MSTP+VRRP 组合组网示例
组网需求
说明:
仅 S5720HI、S5720SI、S5720S-SI、S6720EI 和 S5720EI 支持该配置举例。
如图 1 所示,主机通过 SwitchC 接入网络,SwitchC 通过双上行连接 SwitchA 和 SwitchB 来接
入 Internet。由于接入备份的需要,用户部署了冗余链路。冗余备份链路的存在导致出现环
网,可能会引起广播风暴和 MAC 地址表项被破坏。
用户希望在存在冗余备份链路的同时消除网络中的环路,在一条上行链路断开的时候,流量能
切换到另外一条上行链路转发,还能合理利用网络带宽。
此时可以在网络中部署 MSTP 解决环路问题。MSTP 可阻塞二层网络中的冗余链路,将网络修剪
成树状,达到消除环路的目的。同时在 SwitchA 和 SwitchB 上配置 VRRP,HostA 以 SwitchA 为
默认网关接入 Internet,SwitchB 作为备份网关;HostB 以 SwitchB 为默认网关接入
Internet,SwitchA 作为备份网关,以实现可靠性及流量的负载分担。
图 1 配置 MSTP+VRRP 组合组网
设备
接口
对应的 VLANIF
IP 地址
SwitchA
GE0/0/1 和 GE0/0/2
VLANIF2
10.1.2.102/24
GE0/0/1 和 GE0/0/2
VLANIF3
10.1.3.102/24
GE0/0/3
VLANIF4
10.1.4.102/24
SwitchB
GE0/0/1 和 GE0/0/2
VLANIF2
10.1.2.103/24
GE0/0/1 和 GE0/0/2
VLANIF3
10.1.3.103/24
GE0/0/3
VLANIF5
10.1.5.103/24
配置思路
采用以下思路配置:
1. 在处于环形网络中的交换设备上配置 MSTP 基本功能,包括:
a. 配置 MST 域并创建多实例,配置 VLAN2 映射到 MSTI1,VLAN3 映射到 MSTI2,实现
流量的负载分担。
b. 在 MST 域内,配置各实例的根桥与备份根桥。
c. 配置各实例中某端口的路径开销值,实现将该端口阻塞。
d. 使能 MSTP,实现破除环路,包括:
• 设备全局使能 MSTP。
• 除与终端设备相连的端口外,其他端口使能 MSTP。
说明:
与终端相连的端口不用参与 MSTP 计算,建议将其设置为边缘端口并使能端口的
BPDU 报文过滤功能。
2. 配置保护功能,实现对设备或链路的保护。例如:在各实例的根桥设备指定端口配置根
保护功能。
3. 配置设备的二层转发功能。
4. 配置各设备端口 IP 地址及路由协议,使各设备间网络层连通。
说明:
本例中 SwitchA 和 SwitchB 需要支持 VRRP 和 OSPF,有关 VRRP 和 OSPF 的支持形态,请
参见相关章节。
5. 在 SwitchA 和 SwitchB 上创建 VRRP 备份组 1 和 VRRP 备份组 2,在备份组 1 中,配置
SwitchA 为 Master 设备,SwitchB 为 Backup 设备;在备份组 2 中,配置 SwitchB 为
Master 设备,SwitchA 为 Backup 设备,实现流量的负载均衡。
操作步骤
1. 配置 MSTP 基本功能
a. 配置 SwitchA、SwitchB、SwitchC 到域名为 RG1 的域内,创建实例 MSTI1 和实例
MSTI2
# 配置 SwitchA 的 MST 域。
system-view
[HUAWEI] sysname SwitchA
[SwitchA] stp region-configuration
[SwitchA-mst-region] region-name RG1
[SwitchA-mst-region] instance 1 vlan 2
[SwitchA-mst-region] instance 2 vlan 3
[SwitchA-mst-region] active region-configuration
[SwitchA-mst-region] quit
# 配置 SwitchB 的 MST 域。
system-view
[HUAWEI] sysname SwitchB
[SwitchB] stp region-configuration
[SwitchB-mst-region] region-name RG1
[SwitchB-mst-region] instance 1 vlan 2
[SwitchB-mst-region] instance 2 vlan 3
[SwitchB-mst-region] active region-configuration
[SwitchB-mst-region] quit
# 配置 SwitchC 的 MST 域。
system-view
[HUAWEI] sysname SwitchC
[SwitchC] stp region-configuration
[SwitchC-mst-region] region-name RG1
[SwitchC-mst-region] instance 1 vlan 2
[SwitchC-mst-region] instance 2 vlan 3
[SwitchC-mst-region] active region-configuration
[SwitchC-mst-region] quit
b. 在域 RG1 内,配置 MSTI1 与 MSTI2 的根桥与备份根桥
• 配置 MSTI1 的根桥与备份根桥
# 配置 SwitchA 为 MSTI1 的根桥。
[SwitchA] stp instance 1 root primary
# 配置 SwitchB 为 MSTI1 的备份根桥。
[SwitchB] stp instance 1 root secondary
• 配置 MSTI2 的根桥与备份根桥
# 配置 SwitchB 为 MSTI2 的根桥。
[SwitchB] stp instance 2 root primary
# 配置 SwitchA 为 MSTI2 的备份根桥。
[SwitchA] stp instance 2 root secondary
c. 配置实例 MSTI1 和 MSTI2 中将要被阻塞端口的路径开销值大于缺省值
说明:
• 端口路径开销值取值范围由路径开销计算方法决定,这里选择使用华为计算
方法为例,配置实例 MSTI1 和 MSTI2 中将被阻塞端口的路径开销值为
20000。
• 同一网络内所有交换设备的端口路径开销应使用相同的计算方法。
# 配置 SwitchA 的端口路径开销计算方法为华为计算方法。
[SwitchA] stp pathcost-standard legacy
# 配置 SwitchB 的端口路径开销计算方法为华为计算方法。
[SwitchB] stp pathcost-standard legacy
# 配置 SwitchC 的端口路径开销计算方法为华为计算方法,将端口 GE0/0/1 在实
例 MSTI2 中的路径开销值配置为 20000,将端口 GE0/0/4 在实例 MSTI1 中的路径开
销值配置为 20000。
[SwitchC] stp pathcost-standard legacy
[SwitchC] interface gigabitethernet 0/0/1
[SwitchC-GigabitEthernet0/0/1] stp instance 2 cost 20000
[SwitchC-GigabitEthernet0/0/1] quit
[SwitchC] interface gigabitethernet 0/0/4
[SwitchC-GigabitEthernet0/0/4] stp instance 1 cost 20000
[SwitchC-GigabitEthernet0/0/4] quit
d. 使能 MSTP,实现破除环路
• 设备全局使能 MSTP
# 在 SwitchA 上启动 MSTP。
[SwitchA] stp enable
# 在 SwitchB 上启动 MSTP。
[SwitchB] stp enable
# 在 SwitchC 上启动 MSTP。
[SwitchC] stp enable
• 将与 Host 相连的端口设置为边缘端口并使能端口的 BPDU 报文过滤功能
# 配置 SwitchC 端口 GE0/0/2 和 GE0/0/3 设置为边缘端口并使能端口的 BPDU
报文过滤功能。
[SwitchC] interface gigabitethernet 0/0/2
[SwitchC-GigabitEthernet0/0/2] stp edged-port enable
[SwitchC-GigabitEthernet0/0/2] stp bpdu-filter enable
[SwitchC-GigabitEthernet0/0/2] quit
[SwitchC] interface gigabitethernet 0/0/3
[SwitchC-GigabitEthernet0/0/3] stp edged-port enable
[SwitchC-GigabitEthernet0/0/3] stp bpdu-filter enable
[SwitchC-GigabitEthernet0/0/3] quit
• 将与 Router 相连的端口设置为边缘端口并使能端口的 BPDU 报文过滤功能
# 配置 SwitchA 端口 GE0/0/3 设置为边缘端口并使能端口的 BPDU 报文过滤
功能。
[SwitchA] interface gigabitethernet 0/0/3
[SwitchA-GigabitEthernet0/0/3] stp edged-port enable
[SwitchA-GigabitEthernet0/0/3] stp bpdu-filter enable
[SwitchA-GigabitEthernet0/0/3] quit
# 配置 SwitchB 端口 GE0/0/3 设置为边缘端口并使能端口的 BPDU 报文过滤
功能。
[SwitchB] interface gigabitethernet 0/0/3
[SwitchB-GigabitEthernet0/0/3] stp edged-port enable
[SwitchB-GigabitEthernet0/0/3] stp bpdu-filter enable
[SwitchB-GigabitEthernet0/0/3] quit
2. 配置保护功能,如在各实例的根桥设备的指定端口配置根保护功能
# 在 SwitchA 端口 GE0/0/1 上启动根保护。
[SwitchA] interface gigabitethernet 0/0/1
[SwitchA-GigabitEthernet0/0/1] stp root-protection
[SwitchA-GigabitEthernet0/0/1] quit
# 在 SwitchB 端口 GE0/0/1 上启动根保护。
[SwitchB] interface gigabitethernet 0/0/1
[SwitchB-GigabitEthernet0/0/1] stp root-protection
[SwitchB-GigabitEthernet0/0/1] quit
3. 配置处于环网中的设备的二层转发功能
• 在交换设备 SwitchA、SwitchB、SwitchC 上创建 VLAN2~3
# 在 SwitchA 上创建 VLAN2~3。
[SwitchA] vlan batch 2 to 3
# 在 SwitchB 上创建 VLAN2~3。
[SwitchB] vlan batch 2 to 3
# 在 SwitchC 上创建 VLAN2~3。
[SwitchC] vlan batch 2 to 3
• 将交换设备上接入环路中的端口加入 VLAN
# 将 SwitchA 端口 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 2 to 3
[SwitchA-GigabitEthernet0/0/1] quit
# 将 SwitchA 端口 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 2 to 3
[SwitchA-GigabitEthernet0/0/2] quit
# 将 SwitchB 端口 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 2 to 3
[SwitchB-GigabitEthernet0/0/1] quit
# 将 SwitchB 端口 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 2 to 3
[SwitchB-GigabitEthernet0/0/2] quit
# 将 SwitchC 端口 GE0/0/1 加入 VLAN。
[SwitchC] interface gigabitethernet 0/0/1
[SwitchC-GigabitEthernet0/0/1] port link-type trunk
[SwitchC-GigabitEthernet0/0/1] port trunk allow-pass vlan 2 to 3
[SwitchC-GigabitEthernet0/0/1] quit
# 将 SwitchC 端口 GE0/0/2 加入 VLAN。
[SwitchC] interface gigabitethernet 0/0/2
[SwitchC-GigabitEthernet0/0/2] port link-type access
[SwitchC-GigabitEthernet0/0/2] port default vlan 2
[SwitchC-GigabitEthernet0/0/2] quit
# 将 SwitchC 端口 GE0/0/3 加入 VLAN。
[SwitchC] interface gigabitethernet 0/0/3
[SwitchC-GigabitEthernet0/0/3] port link-type access
[SwitchC-GigabitEthernet0/0/3] port default vlan 3
[SwitchC-GigabitEthernet0/0/3] quit
# 将 SwitchC 端口 GE0/0/4 加入 VLAN。
[SwitchC] interface gigabitethernet 0/0/4
[SwitchC-GigabitEthernet0/0/4] port link-type trunk
[SwitchC-GigabitEthernet0/0/4] port trunk allow-pass vlan 2 to 3
[SwitchC-GigabitEthernet0/0/4] quit
4. 验证配置结果
经过以上配置,在网络计算稳定后,执行以下操作,验证配置结果。
说明:
本配置举例以实例 1 和实例 2 为例,因此不用关注实例 0 中端口的状态。
# 在 SwitchA 上执行 display stp brief 命令,查看端口状态和端口的保护类型,结果
如下:
[SwitchA] display stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/1 DESI FORWARDING ROOT
0 GigabitEthernet0/0/2 DESI FORWARDING NONE
1 GigabitEthernet0/0/1 DESI FORWARDING ROOT
1 GigabitEthernet0/0/2 DESI FORWARDING NONE
2 GigabitEthernet0/0/1 DESI FORWARDING ROOT
2 GigabitEthernet0/0/2 ROOT FORWARDING NONE
在 MSTI1 中,由于 SwitchA 是根桥,SwitchA 的端口 GE0/0/2 和 GE0/0/1 成为指定端
口。在 MSTI2 中,SwitchA 的端口 GE0/0/1 成为指定端口,端口 GE0/0/2 成为根端口。
# 在 SwitchB 上执行 display stp brief 命令,结果如下:
[SwitchB] display stp brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/1 DESI FORWARDING ROOT
0 GigabitEthernet0/0/2 ROOT FORWARDING NONE
1 GigabitEthernet0/0/1 DESI FORWARDING ROOT
1 GigabitEthernet0/0/2 ROOT FORWARDING NONE
2 GigabitEthernet0/0/1 DESI FORWARDING ROOT
2 GigabitEthernet0/0/2 DESI FORWARDING NONE
在 MSTI2 中,由于 SwitchB 是根桥,端口 GE0/0/1 和 GE0/0/2 在 MSTI2 中成为指定端
口。在 MSTI1 中,SwitchB 的端口 GE0/0/1 成为指定端口,端口 GE0/0/2 成为根端口。
# 在 SwitchC 上执行 display stp interface brief 命令,结果如下:
[SwitchC] display stp interface gigabitethernet 0/0/1 brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/1 ROOT FORWARDING NONE
1 GigabitEthernet0/0/1 ROOT FORWARDING NONE
2 GigabitEthernet0/0/1 ALTE DISCARDING NONE
[SwitchC] display stp interface gigabitethernet 0/0/4 brief
MSTID Port Role STP State Protection
0 GigabitEthernet0/0/4 ALTE DISCARDING NONE
1 GigabitEthernet0/0/4 ALTE DISCARDING NONE
2 GigabitEthernet0/0/4 ROOT FORWARDING NONE
SwitchC 的端口 GE0/0/1 在 MSTI1 中为根端口,在 MSTI2 中被阻塞。SwitchC 的另一个端
口 GE0/0/4,在 MSTI1 中被阻塞,在 MSTI2 中为根端口。
5. 配置设备间的网络互连
# 配置设备各端口的 IP 地址,以 SwitchA 为例。SwitchB 的配置与 SwitchA 类似,详见
配置文件。
[SwitchA] vlan batch 4
[SwitchA] interface gigabitethernet 0/0/3
[SwitchA-GigabitEthernet0/0/3] port link-type trunk
[SwitchA-GigabitEthernet0/0/3] port trunk allow-pass vlan 4
[SwitchA-GigabitEthernet0/0/3] quit
[SwitchA] interface vlanif 2
[SwitchA-Vlanif2] ip address 10.1.2.102 24
[SwitchA-Vlanif2] quit
[SwitchA] interface vlanif 3
[SwitchA-Vlanif3] ip address 10.1.3.102 24
[SwitchA-Vlanif3] quit
[SwitchA] interface vlanif 4
[SwitchA-Vlanif4] ip address 10.1.4.102 24
[SwitchA-Vlanif4] quit
# 配置 SwitchA、SwitchB 和路由器间采用 OSPF 协议进行互连。以 SwitchA 为例,
SwitchB 的配置与 SwitchA 类似,详见配置文件。
[SwitchA] ospf 1
[SwitchA-ospf-1] area 0