MSTP协议(Multiple SpanningTree Protocol,多生成树协议)。
生成树协议是一种二层管理协议,它的主要功能是阻塞网络中的冗余链路来消除二层环路,在链路故障时启用备份链路。
VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)是一种路由容错协议。当局域网内承担路由转发功能的设备失效后,另一台将自动接管,从而实现IP路由的热备份与容错,同时也保证了局域网内主机通讯的连续性和可靠性,主要应用在局域网路由出口冗余备份的场景。
一、组网需求
MSTP+VRRP双核心应用方案为MSTP协议的一个典型应用场景。该方案采用层次化网络架构,使用MSTP+VRRP协议实现冗余备份和VLAN负载均衡,提高网络系统可用性。此架构的主要优点在于结构的层次化;每一层网络设备的容量指标、特点和功能,都可针对其网络位置和作用进行优化,以加强系统稳定性和可靠性。该方案通常采用三层(核心层、汇聚层和接入层)或二层(核心层和接入层)架构,如下图,采用二层架构,组网需求如下。
●核心层:配置MSTP多实例达到负载均衡的效果。创建实例1和实例2。实例1映射VLAN 10和30;实例2映射VLAN 20和40。Device A为实例0和1的根桥(实例0默认存在),同时为VLAN 10和30的VRRP主设备。
Device B为实例2根桥,同时为VLAN 20和40的VRRP主设备。
●接入层:将直连终端(PC或服务器)的端口配置成边缘端口,同时配置BPDU保护功能,防止用户私自接入非法的设备。
二、组网图
三、配置要点
1、配置MSTP:
●配置生成树模式为MSTP。缺省情况下,生成树模式为MSTP,不必配置。
●配置MST Region,在Device A、B、C和D上配置实例1映射VLAN 10和30;实例2映射VLAN 20和40。
●配置实例0和1在Device A上的桥优先级为4096,在Device B上的桥优先级为8192,使Device A成为实例0和1的根桥。
●配置实例2在Device A上的桥优先级为8192,在Device B上的桥优先级为4096,使Device B成为实例2的根桥。
●在接入设备Device C和D上,实例0、1和2的桥优先级采用缺省值32768,将连接用户的端口配置为边缘端口,不参与生成树计算,并开启BPDU保护功能。
2、配置VRRP组的监视端口:将Master设备的上链口配置为对应VLAN的监视接口。Device A的GigabitEthernet0/5监视VLAN10和30;Device B的GigabitEthernet 0/5监视VLAN20和40。
●在上链口的接口配置模式下使用no switchport命令,把监视端口配置为三层口,并配置接口的IP地址。三层口不参与生成树计算。
●在VLAN的SVI接口配置模式下,使用vrrp group-id track interface-type interface-number [ priority decrement ]命令,配置VRRP组group-id的监视端口interface-type interface-number,和VRRP优先级改变值priority decrement。priority decrement为被监视接口链路状态或IP路由可达状态变化时,VRRP优先级改变值;链路断开时,减少优先级,链路恢复时,还原优先级;取值范围为1~255,缺省值为10。
3、优先级参数的配置:VRRP优先级改变值需要和VRRP优先级结合在一起考虑。在VLAN的SVI接口配置模式下,使用命令vrrp group-id priority priority配置VRRP优先级,priority取值范围为1~254,缺省值为100。因
为priority decrement缺省值为10,当监视端口Down掉时,对应VRRP优先级降低为100-10=90。
●在本例中,将VLAN 10和30在其Master设备Device A上的VRRP优先级抬高到120,Device B上采用默认优先级100,并配置priority decrement为30。当Device A的监视端口GigabitEthernet 0/5因故障Down掉时,VLAN 10和30的VRRP优先级默认减30,变成90;低于它们在Device B上的默认优先级100,VLAN 10和30数据将通过Device B传输。当Device A的监视端口GigabitEthernet 0/5恢复通信时,VRRP
优先级为90+30=120,大于Device B上的优先级,VLAN 10和30数据恢复到Device A上传输。如此,VLAN 10和30则将Device A作为VRRP Master设备,Device B作为VRRP Backup设备。
●同理,将VLAN 20和40在Device B上的VRRP优先级抬高到120,Device A上采用默认优先级100。
4、 配置VRRP:将VLAN的SVI加入VRRP组,同时配置VRRP组的虚拟IP地址。
5、配置SVI地址需要注意,如果监视端口Down掉,VRRP优先级降低后,出现优先级相等的情况,将比较VLAN在两台设备上的SVI地址,IP越大优先级越高。所以建议VLAN 10和VLAN 30在Master设备Device A上的IP地址配置得比Device B大。其它VLAN同理。
6、 核心设备之间需要配置聚合链路。核心设备下联口和接入设备上联口需要配置为Trunk口。接入设备上连接用户的端口需要配置为Access口,并加入VLAN。
四、配置步骤
(1) 配置MSTP功能。
# 配置核心设备Device A的MSTP功能。创建VLAN,实例1映射VLAN 10和30;实例2映射VLAN 20和40。配置实例0和1的桥优先级为4096,实例2的桥优先级为8192,使Device A成为实例0和1的根桥。开启MSTP。
DeviceA> enable
DeviceA# configure terminal
DeviceA(config)# vlan range 10,20,30,40
DeviceA(config-vlan-range)# exit
DeviceA(config)# spanning-tree mode mstp
DeviceA(config)# spanning-tree mst configuration
DeviceA(config-mst)# instance 1 vlan 10,30
DeviceA(config-mst)# instance 2 vlan 20,40
DeviceA(config-mst)# exit
DeviceA(config)# spanning-tree mst 0 priority 4096
DeviceA(config)# spanning-tree mst 1 priority 4096
DeviceA(config)# spanning-tree mst 2 priority 8192
DeviceA(config)# spanning-tree
# 配置核心设备Device B的MSTP功能。创建VLAN,实例1映射VLAN 10和30;实例2映射VLAN 20和40。配置实例0和1的桥优先级为8192,实例2的桥优先级为4096,使Device B成为实例2的根桥。开启MSTP。
DeviceB> enable
DeviceB# configure terminal
DeviceB(config)# vlan range 10,20,30,40
DeviceB(config-vlan-range)# exit
DeviceB(config)# spanning-tree mode mstp
DeviceB(config)# spanning-tree mst configuration
DeviceB(config-mst)# instance 1 vlan 10,30
DeviceB(config-mst)# instance 2 vlan 20,40
DeviceB(config-mst)# exit
DeviceB(config)# spanning-tree mst 0 priority 8192
DeviceB(config)# spanning-tree mst 1 priority 8192
DeviceB(config)# spanning-tree mst 2 priority 4096
DeviceB(config)# spanning-tree
# 配置接入设备Device C和Device D的MSTP功能。接入设备上不需要配置桥优先级。配置直连用户的端口为边缘端口,同时启用BPDU保护。Device D和Device C配置类似,下面仅以Device C为例。
DeviceC> enable
DeviceC# configure terminal
DeviceC(config)# vlan range 10,20,30,40
DeviceC(config-vlan-range)# exit
DeviceC(config)# spanning-tree mode mstp
DeviceC(config)# spanning-tree mst configuration
DeviceC(config-mst)# instance 1 vlan 10,30
DeviceC(config-mst)# instance 2 vlan 20,40
DeviceC(config-mst)# exit
DeviceC(config)# spanning-tree
DeviceC(config)# interface range gigabitethernet 0/3-6
DeviceC(config-if-range)# spanning-tree portfast
DeviceC(config-if-range)# spanning-tree bpduguard enable
DeviceC(config-if-range)# exit
(2) 配置VRRP组的监视端口。
# 配置Device A的GigabitEthernet 0/5为路由口,并配置IP地址为10.10.1.1/24。以便作为VLAN10和30的监视端口。
DeviceA(config)# interface gigabitethernet 0/5
DeviceA(config-if-GigabitEthernet 0/5)# no switchport
DeviceA(config-if-GigabitEthernet 0/5)# ip address 10.10.1.1 255.255.255.0
DeviceA(config-if-GigabitEthernet 0/5)# exit
# 配置Device B的GigabitEthernet 0/5为路由口,并配置IP地址为10.10.2.1/24。以便作为VLAN20和40的监视端口。
DeviceB(config)# interface gigabitethernet 0/5
DeviceB(config-if-GigabitEthernet 0/5)# no switchport
DeviceB(config-if-GigabitEthernet 0/5)# ip address 10.10.2.1 255.255.255.0
DeviceB(config-if-GigabitEthernet 0/5)# exit
(3) 配置核心设备上VLAN10和30的VRRP。
# 配置Master设备Device A。进入SVI接口,配置SVI地址。配置SVI加入对应的VRRP组,同时配置VRRP组的虚网关IP地址。抬高VRRP优先级为120,配置监视端口GigabitEthernet 0/5,并配置priority decrement
为30。
DeviceA(config)# interface vlan 10
DeviceA(config-if-VLAN 10)# ip address 192.168.10.3 255.255.255.0
DeviceA(config-if-VLAN 10)# vrrp 10 ip 192.168.10.1
DeviceA(config-if-VLAN 10)# vrrp 10 priority 120
DeviceA(config-if-VLAN 10)# vrrp 10 track gigabitethernet 0/5 30
DeviceA(config-if-VLAN 10)# exit
DeviceA(config)# interface vlan 30
DeviceA(config-if-VLAN 30)# ip address 192.168.30.3 255.255.255.0
DeviceA(config-if-VLAN 30)# vrrp 30 ip 192.168.30.1
DeviceA(config-if-VLAN 30)# vrrp 30 priority 120
DeviceA(config-if-VLAN 30)# vrrp 30 track gigabitethernet 0/5 30
DeviceA(config-if-VLAN 30)# exit
# 配置Backup设备Device B。进入SVI接口,配置SVI地址。配置SVI加入对应的VRRP组,同时配置VRRP组的虚网关IP地址。在Backup设备上采用默认VRRP优先级100,不需要配置监视端口。
DeviceB(config)# interface vlan 10
DeviceB(config-if-VLAN 10)# ip address 192.168.10.2 255.255.255.0
DeviceB(config-if-VLAN 10)# vrrp 10 ip 192.168.10.1
DeviceB(config-if-VLAN 10)# exit
DeviceB(config)# interface vlan 30
DeviceB(config-if-VLAN 30)# ip address 192.168.30.2 255.255.255.0
DeviceB(config-if-VLAN 30)# vrrp 30 ip 192.168.30.1
DeviceB(config-if-VLAN 30)# exit
(4) 配置核心设备上VLAN20和40的VRRP。
# 配置Master设备Device B。进入SVI接口,配置SVI地址。配置SVI加入对应的VRRP组,同时配置VRRP组的虚网关IP地址。抬高VRRP优先级为120,配置监视端口GigabitEthernet 0/5,并配置priority decrement
为30。
DeviceB(config)# interface vlan 20
DeviceB(config-if-VLAN 20)# ip address 192.168.20.3 255.255.255.0
DeviceB(config-if-VLAN 20)# vrrp 20 ip 192.168.20.1
DeviceB(config-if-VLAN 20)# vrrp 20 priority 120
DeviceB(config-if-VLAN 20)# vrrp 20 track gigabitethernet 0/5 30
DeviceB(config-if-VLAN 20)# exit
DeviceB(config)# interface vlan 40
DeviceB(config-if-VLAN 40)# ip address 192.168.40.3 255.255.255.0
DeviceB(config-if-VLAN 40)# vrrp 40 ip 192.168.40.1
DeviceB(config-if-VLAN 40)# vrrp 40 priority 120
DeviceB(config-if-VLAN 40)# vrrp 40 track gigabitethernet 0/5 30
DeviceB(config-if-VLAN 40)# exit
# 配置Backup设备Device A。进入SVI接口,配置SVI地址。配置SVI加入对应的VRRP组,同时配置VRRP组的虚网关IP地址。在Backup设备上采用默认VRRP优先级100,不需要配置监视端口。
DeviceA(config)# interface vlan 20
DeviceA(config-if-VLAN 20)# ip address 192.168.20.2 255.255.255.0
DeviceA(config-if-VLAN 20)# vrrp 20 ip 192.168.20.1
DeviceA(config-if-VLAN 20)# exit
DeviceA(config)# interface vlan 40
DeviceA(config-if-VLAN 40)# ip address 192.168.40.2 255.255.255.0
DeviceA(config-if-VLAN 40)# vrrp 40 ip 192.168.40.1
DeviceA(config-if-VLAN 40)# exit
(5) 配置VRRP核心设备之间的聚合链路。
# 在Device A上配置GigabitEthernet 0/3和0/4聚合为AggregatePort 1,配置聚合口为Trunk模式。
DeviceA(config)# interface range gigabitethernet 0/3-4
DeviceA(config-if-range)# port-group 1
DeviceA(config-if-range)# exit
DeviceA(config-if-range)# interface aggregateport 1
DeviceA(config-if-AggregatePort 1)# switchport mode trunk
DeviceA(config-if-AggregatePort 1)# exit
# 在Device B上配置GigabitEthernet 0/3和0/4聚合为AggregatePort 1,配置聚合口为Trunk模式。
DeviceB(config)# interface range gigabitethernet 0/3-4
DeviceB(config-if-range)# port-group 1
DeviceB(config-if-range)# exit
DeviceB(config-if-range)# interface aggregateport 1
DeviceB(config-if-AggregatePort 1)# switchport mode trunk
DeviceB(config-if-AggregatePort 1)# exit
(6) 配置核心设备下联口和接入设备上联口为Trunk口。
# 配置Device A下联口GigabitEthernet 0/1~0/2为Trunk口。
DeviceA(config)# interface range gigabitethernet 0/1-2
DeviceA(config-if-range)# switchport mode trunk
DeviceA(config-if-range)# end
DeviceA# write
# 配置Device B下联口GigabitEthernet 0/1~0/2为Trunk口。
DeviceB(config)# interface range gigabitethernet 0/1-2
DeviceB(config-if-range)# switchport mode trunk
DeviceB(config-if-range)# end
DeviceB# write
# 配置Device C上联口GigabitEthernet 0/1~0/2为Trunk口。
DeviceC(config)# interface range gigabitethernet 0/1-2
DeviceC(config-if-range)# switchport mode trunk
DeviceC(config-if-range)# exit
# 配置Device D上联口GigabitEthernet 0/1~0/2为Trunk口。
DeviceD(config)# interface range gigabitethernet 0/1-2
DeviceD(config-if-range)# switchport mode trunk
DeviceD(config-if-range)# exit
(7) 配置接入设备用户端口为Access模式,并加入VLAN。
# 配置Device C。
DeviceC(config)# interface gigabitethernet 0/3
DeviceC(config-if-GigabitEthernet 0/3)# switchport mode access
DeviceC(config-if-GigabitEthernet 0/3)# switchport access vlan 10
DeviceC(config-if-GigabitEthernet 0/3)# exit
DeviceC(config)# interface gigabitethernet 0/4
DeviceC(config-if-GigabitEthernet 0/4)# switchport mode access
DeviceC(config-if-GigabitEthernet 0/4)# switchport access vlan 20
DeviceC(config-if-GigabitEthernet 0/4)# exit
DeviceC(config)# interface gigabitethernet 0/5
DeviceC(config-if-GigabitEthernet 0/5)# switchport mode access
DeviceC(config-if-GigabitEthernet 0/5)# switchport access vlan 30
DeviceC(config-if-GigabitEthernet 0/5)# exit
DeviceC(config)# interface gigabitethernet 0/6
DeviceC(config-if-GigabitEthernet 0/6)# switchport mode access
DeviceC(config-if-GigabitEthernet 0/6)# switchport access vlan 40
DeviceC(config-if-GigabitEthernet 0/6)# end
DeviceC# write
# 配置Device D。
DeviceD(config)# interface gigabitethernet 0/3
DeviceD(config-if-GigabitEthernet 0/3)# switchport mode access
DeviceD(config-if-GigabitEthernet 0/3)# switchport access vlan 10
DeviceD(config-if-GigabitEthernet 0/3)# exit
DeviceD(config)# interface gigabitethernet 0/4
DeviceD(config-if-GigabitEthernet 0/4)# switchport mode access
DeviceD(config-if-GigabitEthernet 0/4)# switchport access vlan 20
DeviceD(config-if-GigabitEthernet 0/4)# exit
DeviceD(config)# interface gigabitethernet 0/5
DeviceD(config-if-GigabitEthernet 0/5)# switchport mode access
DeviceD(config-if-GigabitEthernet 0/5)# switchport access vlan 30
DeviceD(config-if-GigabitEthernet 0/5)# exit
DeviceD(config)# interface gigabitethernet 0/6
DeviceD(config-if-GigabitEthernet 0/6)# switchport mode access
DeviceD(config-if-GigabitEthernet 0/6)# switchport access vlan 40
DeviceD(config-if-GigabitEthernet 0/6)# end
DeviceD# write
五、验证配置结果
# 在Device A上通过show spanning-tree summary查看生成树拓扑。
DeviceA# show spanning-tree summary
Spanning tree enabled protocol mstp
……………………………………….
# 在Device B上通过show spanning-tree summary查看生成树拓扑。
DeviceB# show spanning-tree summary
Spanning tree enabled protocol mstp
……………………………………….
# Device C和D上,通过show spanning-tree summary查看生成树拓扑计算的正确性。如下以Device C为例。
DeviceC# show spanning-tree summary
Spanning tree enabled protocol mstp
……………………………………….
# 在Device A,Device B上通过show vrrp brief查看VRRP主备是否建立成功。
DeviceA# show vrrp brief
# 断开Device A的上行链路GigabitEthernet 0/5,在Device A,Device B上查看设备的VRRP状态变化。
DeviceA#show vrrp brief
……………………………………….
DeviceB# show vrrp brief
……………………………………….
# 断开Device B的上行链路GigabitEthernet 0/5,在Device A,Device B上查看设备的VRRP状态变化。
DeviceA#show vrrp brief
……………………………………….
DeviceB# show vrrp brief
……………………………………….
六、配置文件
●Device A的配置文件
spanning-tree mst configuration
instance 0 vlan 1-9, 11-19, 21-29, 31-39, 41-4094
instance 1 vlan 10, 30
instance 2 vlan 20, 40
!
spanning-tree mst 0 priority 4096
spanning-tree mst 1 priority 4096
spanning-tree mst 2 priority 8192
spanning-tree
!
sysmac 00d0.f822.3344
!
vlan range 1,10,20,30,40
!
interface GigabitEthernet 0/1
switchport mode trunk
!
interface GigabitEthernet 0/2
switchport mode trunk
!
interface GigabitEthernet 0/3
port-group 1
!
interface GigabitEthernet 0/4
port-group 1
!
interface AggregatePort 1
switchport mode trunk
!
interface gigabitethernet 0/5
no switchport
ip address 10.10.1.1 255.255.255.0
!
interface vlan 10
ip address 192.168.10.3 255.255.255.0
vrrp 10 ip 192.168.10.1
vrrp 10 priority 120
vrrp 10 track gigabitethernet 0/5 30
!
interface vlan 20
ip address 192.168.20.2 255.255.255.0
vrrp 20 ip 192.168.20.1
!
interface vlan 30
ip address 192.168.30.3 255.255.255.0
vrrp 30 ip 192.168.30.1
vrrp 30 priority 120
vrrp 30 track gigabitethernet 0/5 30
!
interface vlan 40
ip address 192.168.40.2 255.255.255.0
vrrp 40 ip 192.168.40.1
●Device B的配置文件
spanning-tree mst configuration
instance 0 vlan 1-9, 11-19, 21-29, 31-39, 41-4094
instance 1 vlan 10, 30
instance 2 vlan 20, 40
!
spanning-tree mst 0 priority 8192
spanning-tree mst 1 priority 8192
spanning-tree mst 2 priority 4096
spanning-tree
!
sysmac 001a.a917.78cc
!
vlan range 1,10,20,30,40
!
interface GigabitEthernet 0/1
switchport mode trunk
!
interface GigabitEthernet 0/2
switchport mode trunk
!
interface GigabitEthernet 0/3
port-group 1
!
interface GigabitEthernet 0/4
port-group 1
!
interface AggregatePort 1
switchport mode trunk
!
interface gigabitethernet 0/5
no switchport
ip address 10.10.2.1 255.255.255.0
!
interface vlan 10
ip address 192.168.10.2 255.255.255.0
vrrp 10 ip 192.168.10.1
!
interface vlan 20
ip address 192.168.20.3 255.255.255.0
vrrp 20 ip 192.168.20.1
vrrp 20 priority 120
vrrp 20 track gigabitethernet 0/5 30
!
interface vlan 30
ip address 192.168.30.2 255.255.255.0
vrrp 30 ip 192.168.30.1
!
interface vlan 40
ip address 192.168.40.3 255.255.255.0
vrrp 40 ip 192.168.40.1
vrrp 40 priority 120
vrrp 40 track gigabitethernet 0/5 3
● Device C和Device D的配置文件
spanning-tree mst configuration
instance 0 vlan 1-9, 11-19, 21-29, 31-39, 41-4094
instance 1 vlan 10, 30
instance 2 vlan 20, 40
!
spanning-tree
!
vlan range 1,10,20,30,40
!
interface GigabitEthernet 0/1
switchport mode trunk
!
interface GigabitEthernet 0/2
switchport mode trunk
!
interface GigabitEthernet 0/3
switchport access vlan 10
spanning-tree bpduguard enable
spanning-tree portfast
!
interface GigabitEthernet 0/4
switchport access vlan 20
spanning-tree bpduguard enable
spanning-tree portfast
!
interface GigabitEthernet 0/5
switchport access vlan 30
spanning-tree bpduguard enable
spanning-tree portfast
!
interface GigabitEthernet 0/6
switchport access vlan 40
spanning-tree bpduguard enable
spanning-tree portfast
注:常见错误
● 在MSTP+VRRP拓扑中,不同设备上的MST域配置不一致。
● 配置实例和VLAN的映射关系时未提前创建VLAN。
●在MSTP+VRRP拓扑中,若某些设备运行的是STP或RSTP协议,则该设备将被当做不同MST域来进行生成
树计算,此时计算出的生成树将与预期不同。