华为三层交换机配置 MSTP+VRRP 组合组网实例
网络中部署VRRP负载分担时,多台设备同时承担业务,每个虚拟设备都包括一个Master设备和若干个Backup设备。如果为了接入备份需要同时部署冗余链路,则需要部署MSTP消除网络中的环路,保证流量的负载分担。
如图所示,主机通过SwitchC接入网络,SwitchC通过双上行连接SwitchA和SwitchB来接入Internet。由于接入备份的需要,用户部署了冗余链路。冗余备份链路的存在导致出现环网,可能会引起广播风暴和MAC地址表项被破坏。用户希望在存在冗余备份链路的同时消除网络中的环路,在一条上行链路断开的时候,流量能切换到另外一条上行链路转发,还能合理利用网络带宽。此时可以在网络中部署MSTP解决环路问题。MSTP可阻塞二层网络中的冗余链路,将网络修剪成树状,达到消除环路的目的。同时在SwitchA和SwitchB上配置VRRP,HostA以SwitchA为默认网关接入Internet,SwitchB作为备份网关;HostB以SwitchB为默认网关接入Internet,SwitchA作为备份网关,以实现可靠性及流量的负载分担。
此章节摘自于华为官方文档,我做过类似的项目,所以放这里,以便以后查看。
采用以下思路配置:
- 在处于环形网络中的交换设备上配置MSTP基本功能,包括:
a. 配置MST域并创建多实例,配置VLAN2映射到MSTI1,VLAN3映射到MSTI2,实现流量的负载分担。
b. 在MST域内,配置各实例的根桥与备份根桥。
c. 配置各实例中某端口的路径开销值,实现将该端口阻塞。
d. 使能MSTP,实现破除环路,包括:
设备全局使能MSTP。
除与终端设备相连的端口外,其他端口使能MSTP。 - 配置保护功能,实现对设备或链路的保护。例如:在各实例的根桥设备指定端口
配置根保护功能。 - 配置设备的二层转发功能。
- 配置各设备端口IP地址及路由协议,使各设备间网络层连通。
- 在SwitchA和SwitchB上创建VRRP备份组1和VRRP备份组2,在备份组1中,配置SwitchA为Master设备,SwitchB为Backup设备;在备份组2中,配置SwitchB为Master设备,SwitchA为Backup设备。
操作步骤
步骤1 配置MSTP基本功能 配置SwitchA、SwitchB、SwitchC到域名为RG1的域内,创建实例MSTI1和实例
MSTI2
配置SwitchA的MST域。<HUAWEI> system-view [HUAWEI] sysname SwitchA [SwitchA] stp region-configuration //进入MST域视图。 [SwitchA-mst-region] region-name RG1 //配置域名为RG1。 [SwitchA-mst-region] instance 1 vlan 2 //将VLAN 2映射到实例1上。 [SwitchA-mst-region] instance 2 vlan 3 //将VLAN 3映射到实例2上。 [SwitchA-mst-region] active region-configuration //激活MST域的配置。 [SwitchA-mst-region] quit
配置SwitchB的MST域。
<HUAWEI> system-view [HUAWEI] sysname SwitchB [SwitchB] stp region-configuration //进入MST域视图。 [SwitchB-mst-region] region-name RG1 //配置域名为RG1。 [SwitchB-mst-region] instance 1 vlan 2 //将VLAN 2映射到实例1上。 [SwitchB-mst-region] instance 2 vlan 3 //将VLAN 3映射到实例2上。 [SwitchB-mst-region] active region-configuration //激活MST域的配置。 [SwitchB-mst-region] quit
配置SwitchC的MST域。
<HUAWEI> system-view [HUAWEI] sysname SwitchC [SwitchC] stp region-configuration //进入MST域视图。 [SwitchC-mst-region] region-name RG1 //配置域名为RG1。 [SwitchC-mst-region] instance 1 vlan 2 //将VLAN 2映射到实例1上。 [SwitchC-mst-region] instance 2 vlan 3 //将VLAN 3映射到实例2上。 [SwitchC-mst-region] active region-configuration //激活MST域的配置。 [SwitchC-mst-region] quit
在域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
配置实例MSTI1和MSTI2中将要被阻塞端口的路径开销值大于缺省值
说明
– 端口路径开销值取值范围由路径开销计算方法决定,这里选择使用华为计算方法为例,
配置实例MSTI1和MSTI2中将被阻塞端口的路径开销值为20000。
– 同一网络内所有交换设备的端口路径开销应使用相同的计算方法。# 配置SwitchA的端口路径开销计算方法为华为计算方法。 [SwitchA] stp pathcost-standard legacy # 配置SwitchB的端口路径开销计算方法为华为计算方法。 [SwitchB] stp pathcost-standard legacy #配置SwitchC的端口路径开销计算方法为华为计算方法,将端口GE1/0/1在实例MSTI2中的路径开销值配置为20000,将端口GE1/0/4在实例MSTI1中的路径开销值配置为20000。 [SwitchC] stp pathcost-standard legacy [SwitchC] interface gigabitethernet 1/0/1 [SwitchC-GigabitEthernet1/0/1] stp instance 2 cost 20000 [SwitchC-GigabitEthernet1/0/1] quit [SwitchC] interface gigabitethernet 1/0/4 [SwitchC-GigabitEthernet1/0/4] stp instance 1 cost 20000 [SwitchC-GigabitEthernet1/0/4] quit
使能MSTP,实现破除环路
– 设备全局使能MSTP# 在SwitchA上启动MSTP。 [SwitchA] stp enable # 在SwitchB上启动MSTP。 [SwitchB] stp enable # 在SwitchC上启动MSTP。 [SwitchC] stp enable
– 将与Host相连的端口配置为边缘端口
[SwitchC] interface gigabitethernet 1/0/2 [SwitchC-GigabitEthernet1/0/2] stp edged-port enable [SwitchC-GigabitEthernet1/0/2] quit [SwitchC] interface gigabitethernet 1/0/3 [SwitchC-GigabitEthernet1/0/3] stp edged-port enable [SwitchC-GigabitEthernet1/0/3] quit (可选)配置SwitchC的BPDU保护功能。 [SwitchC] stp bpdu-protection
– 将与Router相连的端口配置为边缘端口
# 配置SwitchA端口。 [SwitchA] interface gigabitethernet 1/0/3 [SwitchA-GigabitEthernet1/0/3] stp edged-port enable [SwitchA-GigabitEthernet1/0/3] quit (可选)配置SwitchA的BPDU保护功能。 [SwitchA] stp bpdu-protection
# 配置SwitchB端口。 [SwitchB] interface gigabitethernet 1/0/3 [SwitchB-GigabitEthernet1/0/3] stp edged-port enable [SwitchB-GigabitEthernet1/0/3] quit (可选)配置SwitchB的BPDU保护功能。 [SwitchB] stp bpdu-protection
说明
如果与边缘端口相连的是使能了STP功能的网络设备,配置BPDU保护功能后,如果
边缘端口收到BPDU报文,边缘端口将会被shutdown,边缘端口属性不变。
步骤2 配置保护功能,如在各实例的根桥设备的指定端口配置根保护功能# 在SwitchA端口GE1/0/1上启动根保护。 [SwitchA] interface gigabitethernet 1/0/1 [SwitchA-GigabitEthernet1/0/1] stp root-protection [SwitchA-GigabitEthernet1/0/1] quit # 在SwitchB端口GE1/0/1上启动根保护。 [SwitchB] interface gigabitethernet 1/0/1 [SwitchB-GigabitEthernet1/0/1] stp root-protection [SwitchB-GigabitEthernet1/0/1] quit
步骤3 配置处于环网中的设备的二层转发功能
l 在交换设备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
l 将交换设备上接入环路中的端口加入VLAN
# 将SwitchA端口GE1/0/1加入VLAN。 [SwitchA] interface gigabitethernet 1/0/1 [SwitchA-GigabitEthernet1/0/1] port link-type trunk [SwitchA-GigabitEthernet1/0/1] port trunk allow-pass vlan 2 to 3 [SwitchA-GigabitEthernet1/0/1] quit # 将SwitchA端口GE1/0/2加入VLAN。 [SwitchA] interface gigabitethernet 1/0/2 [SwitchA-GigabitEthernet1/0/2] port link-type trunk [SwitchA-GigabitEthernet1/0/2] port trunk allow-pass vlan 2 to 3 [SwitchA-GigabitEthernet1/0/2] quit # 将SwitchB端口GE1/0/1加入VLAN。 [SwitchB] interface gigabitethernet 1/0/1 [SwitchB-GigabitEthernet1/0/1] port link-type trunk [SwitchB-GigabitEthernet1/0/1] port trunk allow-pass vlan 2 to 3 [SwitchB-GigabitEthernet1/0/1] quit # 将SwitchB端口GE1/0/2加入VLAN。 [SwitchB] interface gigabitethernet 1/0/2 [SwitchB-GigabitEthernet1/0/2] port link-type trunk [SwitchB-GigabitEthernet1/0/2] port trunk allow-pass vlan 2 to 3 [SwitchB-GigabitEthernet1/0/2] quit # 将SwitchC端口GE1/0/1加入VLAN。 [SwitchC] interface gigabitethernet 1/0/1 [SwitchC-GigabitEthernet1/0/1] port link-type trunk [SwitchC-GigabitEthernet1/0/1] port trunk allow-pass vlan 2 to 3 [SwitchC-GigabitEthernet1/0/1] quit # 将SwitchC端口GE1/0/2加入VLAN。 [SwitchC] interface gigabitethernet 1/0/2 [SwitchC-GigabitEthernet1/0/2] port link-type access [SwitchC-GigabitEthernet1/0/2] port default vlan 2 [SwitchC-GigabitEthernet1/0/2] quit # 将SwitchC端口GE1/0/3加入VLAN。 [SwitchC] interface gigabitethernet 1/0/3 [SwitchC-GigabitEthernet1/0/3] port link-type access [SwitchC-GigabitEthernet1/0/3] port default vlan 3 [SwitchC-GigabitEthernet1/0/3] quit # 将SwitchC端口GE1/0/4加入VLAN。 [SwitchC] interface gigabitethernet 1/0/4 [SwitchC-GigabitEthernet1/0/4] port link-type trunk [SwitchC-GigabitEthernet1/0/4] port trunk allow-pass vlan 2 to 3 [SwitchC-GigabitEthernet1/0/4] quit
步骤4 验证配置结果
经过以上配置,在网络计算稳定后,执行以下操作,验证配置结果。
说明
本配置举例以实例1和实例2为例,因此不用关注实例0中端口的状态。
在SwitchA上执行display stp brief命令,查看端口状态和端口的保护类型,结果如
下:[SwitchA] display stp brief MSTID Port Role STP State Protection 0 GigabitEthernet1/0/1 DESI FORWARDING ROOT 0 GigabitEthernet1/0/2 DESI FORWARDING NONE 1 GigabitEthernet1/0/1 DESI FORWARDING ROOT 1 GigabitEthernet1/0/2 DESI FORWARDING NONE 2 GigabitEthernet1/0/1 DESI FORWARDING ROOT 2 GigabitEthernet1/0/2 ROOT FORWARDING NONE
在MSTI1中,由于SwitchA是根桥,SwitchA的端口GE1/0/2和GE1/0/1成为指定端口。在
MSTI2中,SwitchA的端口GE1/0/1成为指定端口,端口GE1/0/2成为根端口。
在SwitchB上执行display stp brief命令,结果如下:[SwitchB] display stp brief MSTID Port Role STP State Protection 0 GigabitEthernet1/0/1 DESI FORWARDING ROOT 0 GigabitEthernet1/0/2 ROOT FORWARDING NONE 1 GigabitEthernet1/0/1 DESI FORWARDING ROOT 1 GigabitEthernet1/0/2 ROOT FORWARDING NONE 2 GigabitEthernet1/0/1 DESI FORWARDING ROOT 2 GigabitEthernet1/0/2 DESI FORWARDING NONE
在MSTI2中,由于SwitchB是根桥,端口GE1/0/1和GE1/0/2在MSTI2中成为指定端口。
在MSTI1中,SwitchB的端口GE1/0/1成为指定端口,端口GE1/0/2成为根端口。
在SwitchC上执行display stp interface brief命令,结果如下:[SwitchC] display stp interface gigabitethernet 1/0/1 brief MSTID Port Role STP State Protection 0 GigabitEthernet1/0/1 ROOT FORWARDING NONE 1 GigabitEthernet1/0/1 ROOT FORWARDING NONE 2 GigabitEthernet1/0/1 ALTE DISCARDING NONE [SwitchC] display stp interface gigabitethernet 1/0/4 brief MSTID Port Role STP State Protection 0 GigabitEthernet1/0/4 ALTE DISCARDING NONE 1 GigabitEthernet1/0/4 ALTE DISCARDING NONE 2 GigabitEthernet1/0/4 ROOT FORWARDING NONE
SwitchC的端口GE1/0/1在MSTI1中为根端口,在MSTI2中被阻塞。SwitchC的另一个端
口GE1/0/4,在MSTI1中被阻塞,在MSTI2中为根端口。
步骤5 配置设备间的网络互连
配置设备各端口的IP地址,以SwitchA为例。SwitchB的配置与SwitchA类似,详见配
置文件。[SwitchA] vlan batch 4 [SwitchA] interface gigabitethernet 1/0/3 [SwitchA-GigabitEthernet1/0/3] port link-type trunk [SwitchA-GigabitEthernet1/0/3] port trunk allow-pass vlan 4 [SwitchA-GigabitEthernet1/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 [SwitchA-ospf-1-area-0.0.0.0] network 10.1.2.0 0.0.0.255 [SwitchA-ospf-1-area-0.0.0.0] network 10.1.3.0 0.0.0.255 [SwitchA-ospf-1-area-0.0.0.0] network 10.1.4.0 0.0.0.255 [SwitchA-ospf-1-area-0.0.0.0] quit [SwitchA-ospf-1] quit
步骤6 配置VRRP备份组
在SwitchA和SwitchB上创建VRRP备份组1,配置SwitchA的优先级为120,抢占延时
为20秒,作为Master设备;SwitchB的优先级为缺省值,作为Backup设备。[SwitchA] interface vlanif 2 [SwitchA-Vlanif2] vrrp vrid 1 virtual-ip 10.1.2.100 //创建组号为1的VRRP备份组并为备份组指定虚拟IP地址10.1.2.100。 [SwitchA-Vlanif2] vrrp vrid 1 priority 120 //配置VRRP备份组1的优先级为120。 [SwitchA-Vlanif2] vrrp vrid 1 preempt-mode timer delay 20 //配置VRRP备份组1抢占延时为20秒。 [SwitchA-Vlanif2] quit [SwitchB] interface vlanif 2 [SwitchB-Vlanif2] vrrp vrid 1 virtual-ip 10.1.2.100 //创建组号为1的VRRP备份组并为备份组指定虚拟IP地址10.1.2.100。 [SwitchB-Vlanif2] quit
在SwitchA和SwitchB上创建VRRP备份组2,配置SwitchB的优先级为120,抢占延时为
20秒,作为Master设备;SwitchA的优先级为缺省值,作为Backup设备。[SwitchB] interface vlanif 3 [SwitchB-Vlanif3] vrrp vrid 2 virtual-ip 10.1.3.100 //创建组号为2的VRRP备份组并为备份组指定虚拟IP地址10.1.3.100。 [SwitchB-Vlanif3] vrrp vrid 2 priority 120 //配置VRRP备份组1的优先级为120。 [SwitchB-Vlanif3] vrrp vrid 2 preempt-mode timer delay 20 //配置VRRP备份组2抢占延时为20秒。 [SwitchB-Vlanif3] quit [SwitchA] interface vlanif 3 [SwitchA-Vlanif3] vrrp vrid 2 virtual-ip 10.1.3.100 //创建组号为2的VRRP备份组并为备份组指定虚拟IP地址10.1.3.100。 [SwitchA-Vlanif3] quit
配置主机HostA的缺省网关为备份组1的虚拟IP地址10.1.2.100,配置主机HostB的缺省
网关为备份组2的虚拟IP地址10.1.3.100。
步骤7 验证配置结果
完成上述配置后,在SwitchA上执行display vrrp命令,可以看到SwitchA在备份组1中
作为Master设备,在备份组2中作为Backup设备。[SwitchA] display vrrp Vlanif2 | Virtual Router 1 State : Master Virtual IP : 10.1.2.100 Master IP : 10.1.2.102 PriorityRun : 120 PriorityConfig : 120 MasterPriority : 120 Preempt : YES Delay Time : 20 s TimerRun : 1 s TimerConfig : 1 s Auth type : NONE Virtual MAC : 0000-5e00-0101 Check TTL : YES Config type : normal-vrrp Backup-forward : disabled Create time : 2012-05-11 11:39:18 Last change time : 2012-05-26 11:38:58 Vlanif3 | Virtual Router 2 State : Backup Virtual IP : 10.1.3.100 Master IP : 10.1.3.103 PriorityRun : 100 PriorityConfig : 100 MasterPriority : 120 Preempt : YES Delay Time : 0 s TimerRun : 1 s TimerConfig : 1 s Auth type : NONE Virtual MAC : 0000-5e00-0102 Check TTL : YES Config type : normal-vrrp Backup-forward : disabled Create time : 2012-05-11 11:40:18 Last change time : 2012-05-26 11:48:58
在SwitchB上执行display vrrp命令,可以看到SwitchB在备份组1中作为Backup设备,
在备份组2中作为Master设备。[SwitchB] display vrrp Vlanif2 | Virtual Router 1 State : Backup Virtual IP : 10.1.2.100 Master IP : 10.1.2.102 PriorityRun : 100 PriorityConfig : 100 MasterPriority : 120 Preempt : YES Delay Time : 0 s TimerRun : 1 s TimerConfig : 1 s Auth type : NONE Virtual MAC : 0000-5e00-0101 Check TTL : YES Config type : normal-vrrp Backup-forward : disabled Create time : 2012-05-11 11:39:18 Last change time : 2012-05-26 11:38:58 Vlanif3 | Virtual Router 2 State : Master Virtual IP : 10.1.3.100 Master IP : 10.1.3.103 PriorityRun : 120 PriorityConfig : 120 MasterPriority : 120 Preempt : YES Delay Time : 20 s TimerRun : 1 s TimerConfig : 1 s Auth type : NONE Virtual MAC : 0000-5e00-0102 Check TTL : YES Config type : normal-vrrp Backup-forward : disabled Create time : 2012-05-11 11:40:18 Last change time : 2012-05-26 11:48:58
----结束
配置文件
SwitchA的配置文件
#
sysname SwitchA
#
vlan batch 2 to 4
#
stp instance 1 root primary
stp instance 2 root secondary
stp bpdu-protection
stp pathcost-standard legacy
#
stp region-configuration
region-name RG1
instance 1 vlan 2
instance 2 vlan 3
active region-configuration
#
interface Vlanif2
ip address 10.1.2.102 255.255.255.0
vrrp vrid 1 virtual-ip 10.1.2.100
vrrp vrid 1 priority 120
vrrp vrid 1 preempt-mode timer delay 20
#
interface Vlanif3
ip address 10.1.3.102 255.255.255.0
vrrp vrid 2 virtual-ip 10.1.3.100
#
interface Vlanif4
ip address 10.1.4.102 255.255.255.0
#
interface GigabitEthernet1/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 3
stp root-protection
#
interface GigabitEthernet1/0/2
port link-type trunk
port trunk allow-pass vlan 2 to 3
#
interface GigabitEthernet1/0/3
port link-type trunk
port trunk allow-pass vlan 4
stp edged-port enable
#
ospf 1
area 0.0.0.0
network 10.1.2.0 0.0.0.255
network 10.1.3.0 0.0.0.255
network 10.1.4.0 0.0.0.255
#
return
SwitchB的配置文件
#
sysname SwitchB
#
vlan batch 2 to 3 5
#
stp instance 1 root secondary
stp instance 2 root primary
stp bpdu-protection
stp pathcost-standard legacy
#
stp region-configuration
region-name RG1
instance 1 vlan 2
instance 2 vlan 3
active region-configuration
#
interface Vlanif2
ip address 10.1.2.103 255.255.255.0
vrrp vrid 1 virtual-ip 10.1.2.100
#
interface Vlanif3
ip address 10.1.3.103 255.255.255.0
vrrp vrid 2 virtual-ip 10.1.3.100
vrrp vrid 2 priority 120
vrrp vrid 2 preempt-mode timer delay 20
#
interface Vlanif5
ip address 10.1.5.103 255.255.255.0
#
interface GigabitEthernet1/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 3
stp root-protection
#
interface GigabitEthernet1/0/2
port link-type trunk
port trunk allow-pass vlan 2 to 3
#
interface GigabitEthernet1/0/3
port link-type trunk
port trunk allow-pass vlan 5
stp edged-port enable
#
ospf 1
area 0.0.0.0
network 10.1.2.0 0.0.0.255
network 10.1.3.0 0.0.0.255
network 10.1.5.0 0.0.0.255
#
return
SwitchC的配置文件
#
sysname SwitchC
#
vlan batch 2 to 3
#
stp bpdu-protection
stp pathcost-standard legacy
#
stp region-configuration
region-name RG1
instance 1 vlan 2
instance 2 vlan 3
active region-configuration
#
interface GigabitEthernet1/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 3
stp instance 2 cost 20000
#
interface GigabitEthernet1/0/2
port link-type access
port default vlan 2
stp edged-port enable
#
interface GigabitEthernet1/0/3
port link-type access
port default vlan 3
stp edged-port enable
#
interface GigabitEthernet1/0/4
port link-type trunk
port trunk allow-pass vlan 2 to 3
stp instance 1 cost 20000
#
return