网络:VRRP
一、VRRP简介
定义
虚拟路由冗余协议VRRP(Virtual Router Redundancy Protocol)通过把几台路由设备联合组成一台虚拟的路由设备,将虚拟路由设备的IP地址作为用户的默认网关实现与外部网络通信。当网关设备发生故障时,VRRP机制能够选举新的网关设备承担数据流量,从而保障网络的可靠通信。
VRRP工作过程
VRRP的工作过程如下:
-
VRRP备份组中的设备根据优先级选举出Master。Master设备通过发送免费ARP报文,将虚拟MAC地址通知给与它连接的设备或者主机,从而承担报文转发任务。
-
Master设备周期性向备份组内所有Backup设备发送VRRP通告报文,以公布其配置信息(优先级等)和工作状况。
Master报文的发送:当Master正常工作时,它会每隔一段时间(缺省为1秒)向组内Backup设备发送vrrp通告报文,通告自己工作正常。(注:只有Master发送VRRP报文) VRRP通告报文被封装在IP报文里,通过组播地址224.0.0.18发送,TTL为255,协议号为112
-
如果Master设备出现故障,VRRP备份组中的Backup设备将根据优先级重新选举新的Master。
-
VRRP备份组状态切换时,Master设备由一台设备切换为另外一台设备,新的Master设备会立即发送携带虚拟路由器的虚拟MAC地址和虚拟IP地址信息的免费ARP报文,刷新与它连接的主机或设备中的MAC表项,从而把用户流量引到新的Master设备上来,整个过程对用户完全透明。
-
原Master设备故障恢复时,若该设备为IP地址拥有者(优先级为255),将直接切换至Master状态。若该设备优先级小于255,将首先切换至Backup状态,且其优先级恢复为故障前配置的优先级。
-
Backup设备的优先级高于Master设备时,由Backup设备的工作方式(抢占方式和非抢占方式)决定是否重新选举Master。
抢占模式:在抢占模式下,如果Backup设备的优先级比当前Master设备的优先级高,则主动将自己切换成Master。 非抢占模式:在非抢占模式下,只要Master设备没有出现故障,Backup设备即使随后被配置了更高的优先级也不会成为Master设备。
VRRP协议报文
VRRP报文是一种组播报文,由Master路由器发出来通告它的存在,使用VRRP报文可以检测虚拟路由器的各种参数,用于主路由器的选择。VRRP报文是封装在IP报文中,通过组播的方式传送。也就是说VRRP协议跟ICMP协议一样,工作在第三层(网络层),它是不具有端口的说法的。
报文字段 | 含义 | |
---|---|---|
VRRPv2 | VRRPv3 | |
Version | VRRP协议版本号,取值为2。 | VRRP协议版本号,取值为3。 |
Type | VRRP通告报文的类型,取值为1,表示Advertisement。 | VRRP通告报文的类型,取值为1,表示Advertisement。 |
Virtual Rtr ID(VRID) | 虚拟路由器ID,取值范围是1~255。 | 虚拟路由器ID,取值范围是1~255。 |
Priority | Master设备在备份组中的优先级,取值范围是0~255。0表示设备停止参与VRRP备份组,用来使备份设备尽快成为Master设备,而不必等到计时器超时;255则保留给IP地址拥有者。缺省值是100。 | Master设备在备份组中的优先级,取值范围是0~255。0表示设备停止参与VRRP备份组,用来使备份设备尽快成为Master设备,而不必等到计时器超时;255则保留给IP地址拥有者。缺省值是100。 |
Count IP Addrs/Count IPvX Addr | 备份组中虚拟IPv4地址的个数。 | 备份组中虚拟IPv4或虚拟IPv6地址的个数。 |
Auth Type | VRRP报文的认证类型。协议中指定了3种类型: - 0:Non Authentication,表示无认证。 - 1:Simple Text Password,表示明文认证方式。 - 2:IP Authentication Header,表示MD5认证方式。 | - |
Adver Int/Max Adver Int | VRRP通告报文的发送时间间隔,单位是秒,缺省值为1秒。 | VRRP通告报文的发送时间间隔,单位是厘秒,缺省值为100厘秒(1秒)。 |
Checksum | 16位校验和,用于检测VRRP报文中的数据破坏情况。 | 16位校验和,用于检测VRRP报文中的数据破坏情况。 |
IP Address/IPvX Address(es) | VRRP备份组的虚拟IPv4地址,所包含的地址数定义在Count IP Addrs字段。 | VRRP备份组的虚拟IPv4地址或者虚拟IPv6地址,所包含的地址数定义在Count IPvX Addrs字段。 |
Authentication Data | VRRP报文的认证字。目前只有明文认证和MD5认证才用到该部分,对于其它认证方式,一律填0。 | - |
rsvd | - | VRRP报文的保留字段,必须设置为0。 |
VRRP状态机
VRRP协议中定义了三种状态机:初始状态(Initialize)、活动状态(Master)、备份状态(Backup)。其中,只有处于Master状态的设备才可以转发那些发送到虚拟IP地址的报文。
二、VRRP配置示例
配置VRRP主备备份示例
如图所示,HostA通过Switch双归属到RouterA和RouterB。用户希望实现:
-
正常情况下,主机以RouterA为默认网关接入Internet,当RouterA故障时,RouterB接替作为网关继续进行工作,实现网关的冗余备份。
-
RouterA故障恢复后,可以重新成为网关。
操作步骤
-
配置设备间的网络互连
配置设备各接口的IP地址
RouterA:
<Huawei> system-view [Huawei] sysname RouterA [RouterA] interface gigabitethernet 2/0/0 [RouterA-GigabitEthernet2/0/0] undo portswitch [RouterA-GigabitEthernet2/0/0] ip address 10.1.1.1 24 [RouterA-GigabitEthernet2/0/0] quit [RouterA] interface gigabitethernet 1/0/0 [RouterA-GigabitEthernet1/0/0] undo portswitch [RouterA-GigabitEthernet1/0/0] ip address 192.168.1.1 24 [RouterA-GigabitEthernet1/0/0] quit
RouterB:
<Huawei> system-view [Huawei] sysname RouterB [RouterB] interface gigabitethernet 2/0/0 [RouterB-GigabitEthernet2/0/0] undo portswitch [RouterB-GigabitEthernet2/0/0] ip address 10.1.1.2 24 [RouterB-GigabitEthernet2/0/0] quit [RouterB] interface gigabitethernet 1/0/0 [RouterB-GigabitEthernet1/0/0] undo portswitch [RouterB-GigabitEthernet1/0/0] ip address 192.168.2.1 24 [RouterB-GigabitEthernet1/0/0] quit
RouterC:
<Huawei> system-view [Huawei] sysname RouterC [RouterC] interface gigabitethernet 2/0/0 [RouterC-GigabitEthernet2/0/0] undo portswitch [RouterC-GigabitEtrnet2/0/0] ip address 192.168.2.2 24 [RouterC-GigabitEthernet2/0/0] quit [RouterC] interface gigabitethernet 1/0/0 [RouterC-GigabitEthernet1/0/0] ip address 192.168.1.2 24 [RouterC-GigabitEthernet1/0/0] quit [RouterC] interface gigabitethernet 3/0/0 [RouterC-GigabitEthernet1/0/0] undo portswitch [RouterC-GigabitEthernet1/0/0] ip address 172.16.1.1 24 [RouterC-GigabitEthernet1/0/0] quit
配置RouterA、RouterB和RouterC间采用静态’路由进行互连。
RouterA:
[RouterA] ip route-static 0.0.0.0 0.0.0.0 192.168.1.2
RouterB:
[RouterB] ip route-static 0.0.0.0 0.0.0.0 192.168.2.2
RouterC:
[RouterC] ip route-static 10.1.1.0 255.255.255.0 192.168.1.1 [RouterC] ip route-static 10.1.1.0 255.255.255.0 192.168.2.1 preference 100
-
配置VRRP备份组
在RouterA上创建VRRP备份组1,配置RouterA在该备份组中的优先级为120,并配置抢占时间为20秒。
[RouterA] interface gigabitethernet 2/0/0 [RouterA-GigabitEthernet2/0/0] vrrp vrid 1 virtual-ip 10.1.1.111 [RouterA-GigabitEthernet2/0/0] vrrp vrid 1 priority 120 [RouterA-GigabitEthernet2/0/0] vrrp vrid 1 preempt-mode timer delay 20 [RouterA-GigabitEthernet2/0/0] quit
在RouterB上创建VRRP备份组1,其在该备份组中的优先级为缺省值100。
[RouterB] interface gigabitethernet 2/0/0 [RouterB-GigabitEthernet2/0/0] vrrp vrid 1 virtual-ip 10.1.1.111 [RouterB-GigabitEthernet2/0/0] quit
-
验证配置结果
完成上述配置以后,在RouterA和RouterB上分别执行display vrrp命令,可以看到RouterA在备份组中的状态为Master,RouterB在备份组中的状态为Backup。
[RouterA] display vrrp GigabitEthernet2/0/0 | Virtual Router 1 State : Master Virtual IP : 10.1.1.111 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-05-11 11:39:18 Last change time : 2012-05-26 11:38:58
[RouterB] display vrrp GigabitEthernet2/0/0 | Virtual Router 1 State : Backup Virtual IP : 10.1.1.111 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-11 11:39:18 Last change time : 2012-05-26 11:38:58
在RouterA的接口GE2/0/0上执行shutdown命令,模拟RouterA出现故障。
[RouterA] interface gigabitethernet 2/0/0 [RouterA-GigabitEthernet2/0/0] shutdown [RouterA-GigabitEthernet2/0/0] quit
在RouterB上执行display vrrp命令查看VRRP状态信息,可以看到RouterB的状态是Master。
[RouterB] display vrrp GigabitEthernet2/0/0 | Virtual Router 1 State : Master Virtual IP : 10.1.1.111 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-11 11:39:18 Last change time : 2012-05-26 11:38:58
在RouterA的接口GE2/0/0上执行undo shutdown命令,等待20秒后,在RouterA上执行display vrrp命令查看VRRP状态信息,可以看到RouterA的状态恢复成Master。
[RouterA] interface gigabitethernet 2/0/0 [RouterA-GigabitEthernet2/0/0] undo shutdown [RouterA-GigabitEthernet2/0/0] quit [RouterA] display vrrp GigabitEthernet2/0/0 | Virtual Router 1 State : Master Virtual IP : 10.1.1.111 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-05-11 11:39:18 Last change time : 2012-05-26 11:38:58
配置VRRP与接口状态联动监视上行接口示例
如图所示,局域网主机通过Switch双归属到部署了VRRP备份组的RouterA和RouterB,其中RouterA为Master。
用户希望当RouterA的上行接口GE1/0/0状态Down时,VRRP备份组能够及时感知并进行主备切换,由RouterB接替作为网关继续承担业务转发,以减小接口状态Down对业务传输的影响。
操作步骤
-
配置设备间的网络互连
配置设备各接口的IP地址
RouterA:
<Huawei> system-view [Huawei] sysname RouterA [RouterA] interface gigabitethernet 2/0/0 [RouterA-GigabitEthernet2/0/0] undo portswitch [RouterA-GigabitEthernet2/0/0] ip address 10.1.1.1 24 [RouterA-GigabitEthernet2/0/0] quit [RouterA] interface gigabitethernet 1/0/0 [RouterA-GigabitEthernet1/0/0] undo portswitch [RouterA-GigabitEthernet1/0/0] ip address 192.168.1.1 24 [RouterA-GigabitEthernet1/0/0] quit
RouterB:
<Huawei> system-view [Huawei] sysname RouterB [RouterB] interface gigabitethernet 2/0/0 [RouterB-GigabitEthernet2/0/0] undo portswitch [RouterB-GigabitEthernet2/0/0] ip address 10.1.1.2 24 [RouterB-GigabitEthernet2/0/0] quit [RouterB] interface gigabitethernet 1/0/0 [RouterB-GigabitEthernet1/0/0] undo portswitch [RouterB-GigabitEthernet1/0/0] ip address 192.168.2.1 24 [RouterB-GigabitEthernet1/0/0] quit
RouterC:
<Huawei> system-view [Huawei] sysname RouterC [RouterC] interface gigabitethernet 2/0/0 [RouterC-GigabitEthernet2/0/0] undo portswitch [RouterC-GigabitEtrnet2/0/0] ip address 192.168.2.2 24 [RouterC-GigabitEthernet2/0/0] quit [RouterC] interface gigabitethernet 1/0/0 [RouterC-GigabitEthernet1/0/0] ip address 192.168.1.2 24 [RouterC-GigabitEthernet1/0/0] quit [RouterC] interface gigabitethernet 3/0/0 [RouterC-GigabitEthernet1/0/0] undo portswitch [RouterC-GigabitEthernet1/0/0] ip address 172.16.1.1 24 [RouterC-GigabitEthernet1/0/0] quit
配置RouterA、RouterB和RouterC间采用静态’路由进行互连。
RouterA:
[RouterA] ip route-static 0.0.0.0 0.0.0.0 192.168.1.2
RouterB:
[RouterB] ip route-static 0.0.0.0 0.0.0.0 192.168.2.2
RouterC:
[RouterC] ip route-static 10.1.1.0 255.255.255.0 192.168.1.1 [RouterC] ip route-static 10.1.1.0 255.255.255.0 192.168.2.1 preference 100
-
配置VRRP备份组
在RouterA上创建VRRP备份组1,配置RouterA在该备份组中的优先级为120,并配置抢占时间为20秒。
[RouterA] interface gigabitethernet 2/0/0 [RouterA-GigabitEthernet2/0/0] vrrp vrid 1 virtual-ip 10.1.1.3 [RouterA-GigabitEthernet2/0/0] vrrp vrid 1 priority 120 [RouterA-GigabitEthernet2/0/0] vrrp vrid 1 preempt-mode timer delay 20 [RouterA-GigabitEthernet2/0/0] quit
在RouterB上创建VRRP备份组1,其在该备份组中的优先级为缺省值100。
[RouterB] interface gigabitethernet 2/0/0 [RouterB-GigabitEthernet2/0/0] vrrp vrid 1 virtual-ip 10.1.1.3 [RouterB-GigabitEthernet2/0/0] quit
-
配置VRRP与接口状态联动
在RouterA上配置VRRP与接口状态联动,当监视的接口GE1/0/0状态Down时,RouterA的优先级降低40。
[RouterA] interface gigabitethernet 2/0/0
[RouterA-GigabitEthernet2/0/0] vrrp vrid 1 track interface gigabitethernet 1/0/0 reduced 40
[RouterA-GigabitEthernet2/0/0] quit
- 验证配置结果
完成上述配置后,在RouterA和RouterB上分别执行display vrrp命令,可以看到RouterA为Master设备,联动的接口状态为Up,RouterB为Backup设备。
[RouterA] display vrrp
GigabitEthernet2/0/0 | 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
Track IF : GigabitEthernet1/0/0 Priority reduced : 40
IF state : UP
Create time : 2012-05-22 17:32:56
Last change time : 2012-05-22 17:33:00
[RouterB] display vrrp
GigabitEthernet2/0/0 | 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
Create time : 2012-05-22 17:33:00
Last change time : 2012-05-22 17:33:04
在RouterA的接口GE1/0/0上执行shutdown命令模拟链路故障,在RouterA和RouterB上分别执行display vrrp命令,可以看到RouterA状态切换成Backup,联动的接口状态为Down,RouterB的状态切换为Master。
[RouterA] interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0] shutdown
[RouterA-GigabitEthernet1/0/0] quit
[RouterA] display vrrp
GigabitEthernet2/0/0 | Virtual Router 1
State : Backup
Virtual IP : 10.1.1.3
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 IF : GigabitEthernet1/0/0 Priority reduced : 40
IF state : DOWN
Create time : 2012-05-22 17:33:56
Last change time : 2012-05-22 17:34:00
[RouterB] display vrrp
GigabitEthernet2/0/0 | Virtual Router 1
State : Master
Virtual IP : 10.1.1.3
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:34:00
Last change time : 2012-05-22 17:34:04
在RouterA的接口GE1/0/0上执行undo shutdown命令恢复链路故障,在RouterA和RouterB上分别执行display vrrp命令,20秒后,可以看到RouterA状态恢复为Master,联动的接口状态为Up,RouterB的状态恢复为Backup。
[RouterA] interface gigabitethernet 1/0/0
[RouterA-GigabitEthernet1/0/0] undo shutdown
[RouterA-GigabitEthernet1/0/0] quit
[RouterA] display vrrp
GigabitEthernet2/0/0 | 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
Track IF : GigabitEthernet1/0/0 Priority reduced : 40
IF state : UP
Create time : 2012-05-22 17:34:56
Last change time : 2012-05-22 17:35:00
[RouterB] display vrrp
GigabitEthernet2/0/0 | 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
Create time : 2012-05-22 17:35:00
Last change time : 2012-05-22 17:35:04
此文仅为个人理解,请各位点评