定义
虚拟路由冗余协议VRRP(Virtual Router Redundancy Protocol)通过把几台路由设备联合组成一台虚拟的路由设备,将虚拟路由设备的IP地址作为用户的默认网关实现与外部网络通信。当网关设备发生故障时,VRRP机制能够选举新的网关设备承担数据流量,从而保障网络的可靠通信。
目的
随着网络的快速普及和相关应用的日益深入,各种增值业务(如IPTV、视频会议等)已经开始广泛部署,基础网络的可靠性日益成为用户关注的焦点,能够保证网络传输不中断对于终端用户非常重要。
通常,同一网段内的所有主机上都设置一条相同的、以网关为下一跳的缺省路由。主机发往其他网段的报文将通过缺省路由发往网关,再由网关进行转发,从而实现主机与外部网络的通信。当网关发生故障时,本网段内所有以网关为缺省路由的主机将无法与外部网络通信。增加出口网关是提高系统可靠性的常见方法,此时如何在多个出口之间进行选路就成为需要解决的问题。
VRRP的出现很好的解决了这个问题。VRRP能够在不改变组网的情况下,采用将多台路由设备组成一个虚拟路由器,通过配置虚拟路由器的IP地址为默认网关,实现默认网关的备份。当网关设备发生故障时,VRRP机制能够选举新的网关设备承担数据流量,从而保障网络的可靠通信。
受益
在具有多播或广播能力的局域网(如以太网)中,借助VRRP能在网关设备出现故障时仍然提供高可靠的缺省链路,无需修改主机及网关设备的配置信息便可有效避免单一链路发生故障后的网络中断问题。
配置VRRP与BFD联动监视上行链路示例
如图1所示,局域网内的主机通过Switch双归属到部署了VRRP备份组的RouterA和RouterB,其中RouterA为Master。正常情况下,RouterA承担网关工作,用户侧流量由Switch → RouterA → RouterC → RouterE进行转发。
用户希望当RouterC到RouterE之间的链路故障时,VRRP备份组可以在1秒内感知故障,并快速进行主备切换,启用RouterB承担业务转发,以减小链路故障对业务转发的影响。
配置思路
配置思路如下:
- 配置各设备接口IP地址及路由协议,使网络层路由可达。
- 在RouterA和RouterB上配置VRRP备份组,其中RouterA的优先级为120,抢占延时为20秒,作为Master设备;RouterB的优先级为缺省值,作为Backup设备,实现网关的主备备份。
- 在RouterA和RouterE上配置静态BFD会话,监测RouterA到RouterE之间的链路。
- 在RouterA上配置VRRP与BFD联动,实现链路故障时触发VRRP备份组进行主备切换。
操作步骤
- 配置设备间的网络互连
# 配置设备各接口的IP地址,以RouterA为例。RouterB、RouterC、RouterD和RouterE的配置与RouterA类似,详见配置文件。
<Huawei> system-view [Huawei] sysname RouterA [RouterA] interface gigabitethernet 1/0/0 [RouterA-GigabitEthernet1/0/0] ip address 10.1.1.1 24 [RouterA-GigabitEthernet1/0/0] quit [RouterA] interface gigabitethernet 2/0/0 [RouterA-GigabitEthernet2/0/0] ip address 192.168.1.1 24 [RouterA-GigabitEthernet2/0/0] quit
# 配置各Router间采用OSPF协议进行互连。以RouterA为例,RouterB、RouterC、RouterD和RouterE的配置与RouterA类似,详见配置文件。
[RouterA] ospf 1 [RouterA-ospf-1] area 0 [RouterA-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255 [RouterA-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255 [RouterA-ospf-1-area-0.0.0.0] quit [RouterA-ospf-1] quit
- 配置VRRP备份组
# 在RouterA上创建VRRP备份组1,配置RouterA在该备份组中的优先级为120,并配置抢占时间为20秒。
[RouterA] interface gigabitethernet 1/0/0 [RouterA-GigabitEthernet1/0/0] vrrp vrid 1 virtual-ip 10.1.1.10 [RouterA-GigabitEthernet1/0/0] vrrp vrid 1 priority 120 [RouterA-GigabitEthernet1/0/0] vrrp vrid 1 preempt-mode timer delay 20 [RouterA-GigabitEthernet1/0/0] quit
# 在RouterB上创建VRRP备份组1,其在该备份组中的优先级为缺省值100。
[RouterB] interface gigabitethernet 1/0/0 [RouterB-GigabitEthernet1/0/0] vrrp vrid 1 virtual-ip 10.1.1.10 [RouterB-GigabitEthernet1/0/0] quit
- 配置静态BFD会话
# 在RouterA上配置BFD会话。
[RouterA] bfd [RouterA-bfd] quit [RouterA] bfd atob bind peer-ip 172.16.1.2 [RouterA-bfd-session-atob] discriminator local 1 [RouterA-bfd-session-atob] discriminator remote 2 [RouterA-bfd-session-atob] min-rx-interval 50 [RouterA-bfd-session-atob] min-tx-interval 50 [RouterA-bfd-session-atob] commit [RouterA-bfd-session-atob] quit
# 在RouterE上配置BFD会话。
[RouterE] bfd [RouterE-bfd] quit [RouterE] bfd btoa bind peer-ip 192.168.1.1 [RouterE-bfd-session-btoa] discriminator local 2 [RouterE-bfd-session-btoa] discriminator remote 1 [RouterE-bfd-session-btoa] min-rx-interval 50 [RouterE-bfd-session-btoa] min-tx-interval 50 [RouterE-bfd-session-btoa] commit [RouterE-bfd-session-btoa] quit
- 配置VRRP与BFD联动
# 在RouterA上配置VRRP与BFD联动,当BFD会话状态Down时,RouterA的优先级降低40。
[RouterA] interface gigabitethernet 1/0/0 [RouterA-GigabitEthernet1/0/0] vrrp vrid 1 track bfd-session 1 reduced 40 [RouterA-GigabitEthernet1/0/0] quit
- 验证配置结果
# 完成上述配置后,在RouterA和RouterB上分别执行display vrrp命令,可以看出RouterA为Master设备,联动的BFD会话状态为Up,RouterB为Backup设备。
[RouterA] display vrrp GigabitEthernet1/0/0 | Virtual Router 1 State : Master Virtual IP : 10.1.1.10 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 Track BFD : 1 Priority reduced : 40 BFD-Session State: UP Create time : 2012-05-22 17:32:56 Last change time : 2012-05-22 17:33:00
[RouterB] display vrrp GigabitEthernet1/0/0 | Virtual Router 1 State : Backup Virtual IP : 10.1.1.10 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 Create time : 2012-05-22 17:33:00 Last change time : 2012-05-22 17:33:04
# 在RouterE的接口GE1/0/0上执行shutdown命令,模拟链路故障。
[RouterE] interface gigabitethernet 1/0/0 [RouterE-GigabitEthernet1/0/0] shutdown [RouterE-GigabitEthernet1/0/0] quit
# 在RouterA和RouterB上分别执行display vrrp命令,可以看出RouterA状态切换为Backup,联动的BFD会话状态为Down,RouterB状态切换为Master。
[RouterA] display vrrp GigabitEthernet1/0/0 | Virtual Router 1 State : Backup Virtual IP : 10.1.1.10 Master IP : 10.1.1.2 PriorityRun : 80 PriorityConfig : 120 MasterPriority : 100 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 Track BFD : 1 Priority reduced : 40 BFD-Session State: DOWN Create time : 2012-05-22 17:34:56 Last change time : 2012-05-22 17:35:00
[RouterB] display vrrp GigabitEthernet1/0/0 | Virtual Router 1 State : Master Virtual IP : 10.1.1.10 Master IP : 10.1.1.2 PriorityRun : 100 PriorityConfig : 100 MasterPriority : 100 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-22 17:35:00 Last change time : 2012-05-22 17:35:04
# 在RouterE的接口GE1/0/0上执行undo shutdown命令,恢复链路故障。
[RouterE] interface gigabitethernet 1/0/0 [RouterE-GigabitEthernet1/0/0] undo shutdown [RouterE-GigabitEthernet1/0/0] quit
# 20秒后,在RouterA和RouterB上分别执行display vrrp命令,可以看出RouterA状态恢复为Master,联动的BFD会话状态恢复为Up,RouterB状态恢复为Backup。
[RouterA] display vrrp GigabitEthernet1/0/0 | Virtual Router 1 State : Master Virtual IP : 10.1.1.10 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 Track BFD : 1 Priority reduced : 40 BFD-Session State: UP Create time : 2012-05-22 17:36:56 Last change time : 2012-05-22 17:37:00
[RouterB] display vrrp GigabitEthernet1/0/0 | Virtual Router 1 State : Backup Virtual IP : 10.1.1.10 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 Create time : 2012-05-22 17:37:00 Last change time : 2012-05-22 17:37:04
配置文件
-
RouterA的配置文件
# sysname RouterA # bfd # interface GigabitEthernet1/0/0 ip address 10.1.1.1 255.255.255.0 vrrp vrid 1 virtual-ip 10.1.1.10 vrrp vrid 1 priority 120 vrrp vrid 1 preempt-mode timer delay 20 vrrp vrid 1 track bfd-session 1 reduced 40 # interface GigabitEthernet2/0/0 ip address 192.168.1.1 255.255.255.0 # bfd atob bind peer-ip 172.16.1.2 discriminator local 1 discriminator remote 2 min-tx-interval 50 min-rx-interval 50 commit # ospf 1 area 0.0.0.0 network 192.168.1.0 0.0.0.255 network 10.1.1.0 0.0.0.255 # return
-
RouterB的配置文件
# sysname RouterB # bfd # interface GigabitEthernet1/0/0 ip address 10.1.1.2 255.255.255.0 vrrp vrid 1 virtual-ip 10.1.1.10 # interface GigabitEthernet2/0/0 ip address 192.168.2.1 255.255.255.0 # ospf 1 area 0.0.0.0 network 192.168.2.0 0.0.0.255 network 10.1.1.0 0.0.0.255 # return
-
RouterC的配置文件
# sysname RouterC # interface GigabitEthernet1/0/0 ip address 192.168.1.2 255.255.255.0 # interface GigabitEthernet2/0/0 ip address 172.16.1.1 255.255.255.0 # ospf 1 area 0.0.0.0 network 172.16.1.0 0.0.0.255 network 192.168.1.0 0.0.0.255 # return
-
RouterD的配置文件
# sysname RouterD # interface GigabitEthernet1/0/0 ip address 192.168.2.2 255.255.255.0 # interface GigabitEthernet2/0/0 ip address 172.16.2.1 255.255.255.0 # ospf 1 area 0.0.0.0 network 172.16.2.0 0.0.0.255 network 192.168.2.0 0.0.0.255 # return
-
RouterE的配置文件
# sysname RouterE # bfd # interface GigabitEthernet1/0/0 ip address 172.16.1.2 255.255.255.0 # interface GigabitEthernet2/0/0 ip address 172.16.2.2 255.255.255.0 # bfd btoa bind peer-ip 192.168.1.1 discriminator local 2 discriminator remote 1 min-tx-interval 50 min-rx-interval 50 commit # ospf 1 area 0.0.0.0 network 172.16.1.0 0.0.0.255 network 172.16.2.0 0.0.0.255 # return