组网需求
如图10-4所示,局域网内的主机通过Switch双归属到部署了VRRP备份组的SwitchA和SwitchB,其中SwitchA为Master。
当SwitchA或SwitchA到SwitchB间链路出现故障时,VRRP报文协商需要一定的协商周期。为了实现链路故障时快速切换,可以在链路中部署BFD链路检测机制,并配置VRRP监视BFD会话,实现当主用接口或者链路出现Down时,备用设备迅速切换为Master,承担网络流量,以减少故障对业务传输的影响。
请确保该场景下互联接口的STP处于未使能状态。同时将互连接口退出VLAN1,避免形成环路。因为在使能STP的环形网络中,如果用交换机的VLANIF接口构建三层网络,会导致某个端口被阻塞,从而导致三层业务不能正常运行。
配置思路
采用VRRP与BFD联动实现主备网关间的快速切换,配置思路如下:
- 配置各设备接口IP地址及路由协议,使网络层路由可达。
- 在SwitchA和SwitchB上配置VRRP备份组,其中SwitchA的优先级为120,抢占延时为20秒,作为Master设备;SwitchB的优先级为缺省值,作为Backup设备,实现网关的主备备份。
- 在SwitchA和SwitchB上配置静态BFD会话,监测备份组之间的链路。
- 在SwitchB上配置VRRP与BFD联动,实现链路故障时VRRP备份组快速切换。
操作步骤
- 配置设备间的网络互连
# 配置设备各接口的IP地址,以SwitchA为例。SwitchB的配置与SwitchA类似,详见配置文件。
<HUAWEI> system-view [HUAWEI] sysname SwitchA [SwitchA] vlan 100 [SwitchA-vlan100] quit [SwitchA] interface gigabitethernet 1/0/1 [SwitchA-GigabitEthernet1/0/1] port hybrid pvid vlan 100 [SwitchA-GigabitEthernet1/0/1] port hybrid untagged vlan 100 [SwitchA-GigabitEthernet1/0/1] quit [SwitchA] interface vlanif 100 [SwitchA-Vlanif100] ip address 10.1.1.1 24 [SwitchA-Vlanif100] quit
# 配置Switch的二层转发功能。
<HUAWEI> system-view [HUAWEI] sysname Switch [Switch] vlan 100 [Switch-vlan100] quit [Switch] interface gigabitethernet 1/0/1 [Switch-GigabitEthernet1/0/1] port hybrid pvid vlan 100 [Switch-GigabitEthernet1/0/1] port hybrid untagged vlan 100 [Switch-GigabitEthernet1/0/1] quit [Switch] interface gigabitethernet 1/0/2 [Switch-GigabitEthernet1/0/2] port hybrid pvid vlan 100 [Switch-GigabitEthernet1/0/2] port hybrid untagged vlan 100 [Switch-GigabitEthernet1/0/2] 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.1.0 0.0.0.255 [SwitchA-ospf-1-area-0.0.0.0] quit [SwitchA-ospf-1] quit
- 配置VRRP备份组
# 在SwitchA上创建VRRP备份组1,配置SwitchA在该备份组中的优先级为120,并配置抢占延时为20秒。
[SwitchA] interface vlanif 100 [SwitchA-Vlanif100] vrrp vrid 1 virtual-ip 10.1.1.3 [SwitchA-Vlanif100] vrrp vrid 1 priority 120 //设备在VRRP备份组中的优先级缺省为100,修改Master设备的优先级大于Backup设备 [SwitchA-Vlanif100] vrrp vrid 1 preempt-mode timer delay 20 //设备在VRRP备份组中缺省采用立即抢占方式。修改Master设备的延迟抢占时间,以避免在网络环境不稳定时,由于双方频繁抢占而导致流量中断的问题 [SwitchA-Vlanif100] quit
# 在SwitchB上创建VRRP备份组1,其在该备份组中的优先级为缺省值100。
[SwitchB] interface vlanif 100 [SwitchB-Vlanif100] vrrp vrid 1 virtual-ip 10.1.1.3 [SwitchB-Vlanif100] quit
- 配置静态BFD会话
# 在SwitchA上配置BFD会话。
[SwitchA] bfd [SwitchA-bfd] quit [SwitchA] bfd atob bind peer-ip 10.1.1.2 interface vlanif 100 //配置静态BFD会话,监测备份组之间的链路。 [SwitchA-bfd-session-atob] discriminator local 1 //配置BFD会话的本地标识符,SwitchA上的本地标识符需要与SwitchB上的远端标识符一致 [SwitchA-bfd-session-atob] discriminator remote 2 //配置BFD会话的远端标识符,SwitchA上的远端标识符需要与SwitchB上的本地标识符一致 [SwitchA-bfd-session-atob] min-rx-interval 100 //配置BFD报文的接收间隔 [SwitchA-bfd-session-atob] min-tx-interval 100 //配置BFD报文的发送间隔 [SwitchA-bfd-session-atob] commit //提交BFD会话配置,使配置生效 [SwitchA-bfd-session-atob] quit
# 在SwitchB上配置BFD会话。
[SwitchB] bfd [SwitchB-bfd] quit [SwitchB] bfd btoa bind peer-ip 10.1.1.1 interface vlanif 100 [SwitchB-bfd-session-btoa] discriminator local 2 [SwitchB-bfd-session-btoa] discriminator remote 1 [SwitchB-bfd-session-btoa] min-rx-interval 100 [SwitchB-bfd-session-btoa] min-tx-interval 100 [SwitchB-bfd-session-btoa] commit [SwitchB-bfd-session-btoa] quit
配置完成后,在SwitchA或SwitchB上执行display bfd session命令,可以看到BFD会话的状态为Up。以SwitchA的显示为例。
[SwitchA] display bfd session all -------------------------------------------------------------------------------- Local Remote PeerIpAddr State Type InterfaceName -------------------------------------------------------------------------------- 1 2 10.1.1.2 Up S_IP_IF Vlanif100 -------------------------------------------------------------------------------- Total UP/DOWN Session Number : 1/0
- 配置VRRP与BFD联动功能
# 在SwitchB上配置VRRP与BFD联动,当BFD会话状态Down时,SwitchB的优先级增加40。
[SwitchB] interface vlanif 100 [SwitchB-Vlanif100] vrrp vrid 1 track bfd-session 2 increased 40 //其中2代表BFD会话的本地标识符 [SwitchB-Vlanif100] quit
- 验证配置结果
# 完成上述配置后,在SwitchA和SwitchB上分别执行display vrrp命令,可以看出SwitchA为Master设备,SwitchB为Backup设备,联动的BFD会话状态为UP。
[SwitchA] display vrrp Vlanif100 | Virtual Router 1 State : Master Virtual IP : 10.1.1.3 Master IP : 10.1.1.1 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-01-12 20:15:46 Last change time : 2012-01-12 20:15:46
[SwitchB] display vrrp Vlanif100 | Virtual Router 1 State : Backup Virtual IP : 10.1.1.3 Master IP : 10.1.1.1 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 Track BFD : 2 Priority increased : 40 BFD-session state : UP Create time : 2012-01-12 20:15:46 Last change time : 2012-01-12 20:15:46
# 在SwitchA的接口GE1/0/1上执行shutdown命令,模拟链路故障。此时在SwitchA和SwitchB上分别执行display vrrp命令,可以看出SwitchA状态变为Initialize,SwitchB状态变为Master,联动的BFD会话状态为DOWN。
[SwitchA] interface gigabitethernet 1/0/1 [SwitchA-GigabitEthernet1/0/1] shutdown [SwitchA-GigabitEthernet1/0/1] quit
[SwitchA] display vrrp Vlanif100 | Virtual Router 1 State : Initialize Virtual IP : 10.1.1.3 Master IP : 0.0.0.0 PriorityRun : 120 PriorityConfig : 120 MasterPriority : 0 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-01-12 20:15:46 Last change time : 2012-01-12 20:15:46
[SwitchB] display vrrp Vlanif100 | Virtual Router 1 State : Master Virtual IP : 10.1.1.3 Master IP : 10.1.1.2 PriorityRun : 140 PriorityConfig : 100 MasterPriority : 140 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 Track BFD : 2 Priority increased : 40 BFD-session state : DOWN Create time : 2012-01-12 20:15:46 Last change time : 2012-01-12 20:15:46
# 在SwitchA的接口GE1/0/1上执行undo shutdown命令,模拟故障恢复。
[SwitchA] interface gigabitethernet 1/0/1 [SwitchA-GigabitEthernet1/0/1] undo shutdown [SwitchA-GigabitEthernet1/0/1] quit
# 等待20秒后,分别在SwitchA和SwitchB上执行display vrrp命令,可以看出SwitchA状态恢复为Master,SwitchB状态恢复为Backup,联动的BFD会话状态恢复为UP。
[SwitchA] display vrrp Vlanif100 | Virtual Router 1 State : Master Virtual IP : 10.1.1.3 Master IP : 10.1.1.1 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-01-12 20:15:46 Last change time : 2012-01-12 20:15:46
[SwitchB] display vrrp Vlanif100 | Virtual Router 1 State : Backup Virtual IP : 10.1.1.3 Master IP : 10.1.1.1 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 Track BFD : 2 Priority increased : 40 BFD-session state : UP Create time : 2012-01-12 20:15:46 Last change time : 2012-01-12 20:15:46
配置文件
-
SwitchA的配置文件
# sysname SwitchA # vlan batch 100 # bfd # interface Vlanif100 ip address 10.1.1.1 255.255.255.0 vrrp vrid 1 virtual-ip 10.1.1.3 vrrp vrid 1 priority 120 vrrp vrid 1 preempt-mode timer delay 20 # interface GigabitEthernet1/0/1 port hybrid pvid vlan 100 port hybrid untagged vlan 100 # bfd atob bind peer-ip 10.1.1.2 interface Vlanif100 discriminator local 1 discriminator remote 2 min-tx-interval 100 min-rx-interval 100 commit # ospf 1 area 0.0.0.0 network 10.1.1.0 0.0.0.255 # return
-
SwitchB的配置文件
# sysname SwitchB # vlan batch 100 # bfd # interface Vlanif100 ip address 10.1.1.2 255.255.255.0 vrrp vrid 1 virtual-ip 10.1.1.3 vrrp vrid 1 track bfd-session 2 increased 40 # interface GigabitEthernet1/0/1 port hybrid pvid vlan 100 port hybrid untagged vlan 100 # bfd btoa bind peer-ip 10.1.1.1 interface Vlanif100 discriminator local 2 discriminator remote 1 min-tx-interval 100 min-rx-interval 100 commit # ospf 1 area 0.0.0.0 network 10.1.1.0 0.0.0.255 # return
-
Switch的配置文件
# sysname Switch # vlan batch 100 # interface GigabitEthernet1/0/1 port hybrid pvid vlan 100 port hybrid untagged vlan 100 # interface GigabitEthernet1/0/2 port hybrid pvid vlan 100 port hybrid untagged vlan 100 # return