一、VRRP简介
VRRP(Virtual Router Redundancy Protocol)虚拟路由冗余协议通过把几台设备联合组成一台虚拟的设备,使用一定的机制保证当主机的下一跳设备出现故障时,及时将业务切换到备份设备,从而保持通讯的连续性和可靠性。
VRRP的运行结果是在局域网上提供一个虚拟路由器。
本例中:
局域网中有两个路由器R1和R2,R1端口IP地址为192.168.1.251/24,R2端口IP地址为192.168.1.252/24。
配置R1和R2关联到同一个虚拟路由器,该虚拟路由器使用192.168.1.254做为端口IP地址。
所有的PC使用192.168.1.254做为默认网关。
VRRP可以分为VRRP for IPv4和VRRP for IPv6(简称VRRP6)。VRRP for IPv4支持VRRPv2和VRRPv3,而VRRP for IPv6仅支持VRRPv3。对IPv4网络而言,VRRP协议报文封装在IP报文中,发送到分配给VRRP的组播地址,目的地址是224.0.0.18,TTL是255,协议号是112。
为什么需要VRRP?
现网中的主机使用缺省网关与外部网络联系时,如果网关的设备出现故障,与其相连的主机将与外界失去联系,导致业务中断
二、VRRP基本概念
VRRP虚拟MAC地址为00-00-5E-00-01-组id值。
VRRP优先级1-255,默认优先级100,VRRP协议默认开启了抢占。默认发送免费ARP报文时间间隔180秒。
VRRP角色分为Master和Backup。Master承载转发报文任务,Backup作为备份,一旦Master出现故障,Backup接替成为Master
概念 | 含义 |
虚拟路由器(Virtual Router) | 又称为VRRP备份组,由一个Master设备和若干个Backup设备组成,被当作一个共享局域网内主机的缺省网关。它包括了一个虚拟路由器标识符和一组虚拟IP地址。 |
VRID | 虚拟路由器的靿栃标识。具有相同VRID的一组设备构成一个虚拟路由器。 |
虚拟IP地址(Virtual IP Address) | 虚拟路由器的IP地址,一个虚拟路由器可以有一个或多个IP地址,由用户配置。 |
虚拟MAC地址(Virtual MAC Address) | 虚拟路由器根据虚拟路由器ID生成的MAC地址。一个虚拟路由器拥有一个虚拟MAC地址,格式为:00-00-5E-00-01-{VRID}(VRRP for IPv4)或者00-00-5E-00-02-{VRID}(VRRP for IPv6)。当虚拟路由器回应ARP请求(VRRPfor IPv4)或者NS请求(VRRP for IPv6)时,使用虚拟MAC地址,而不是接口的真实MAC地址。 |
IP地址拥有者(IP Address 0wner) | 如果一个VRRP设备将虚拟路由器IP地址作为真实的接口地址,则该设备被称为IP地址拥有者。如果IP地址拥有者是可用的,通常它将成为Master。 |
主IP地址(Primary IP Address) | 从接口的真实IP地址中选出来的一个可用IP地址,通常选择配置的第一个IP地址。VRRP广播报文使用主IP地址作为 IP报文的源地址。 |
VRRP设备 | 运行VRRP协议的设备,它可能属于一个或多个虚拟路由器。 |
Master设备 | 承载转发报文任务的VRRP设备。 |
Backup设备 | 一组没有承担转发任务的VRRP设备,当Master设备出现故障时,它们将通过竞选成为新的Master设备。 |
优先级(Priority) | 虚拟路由器中VRRP设备的优先级。虚拟路由器根据优先级选举出Master设备和Backup设备。 |
VRRP抢占模式 | 在抢占模式下,如果Backup设备的优先级比当前Master设备的优先级高,则主动将自己切换成Master。 |
VRRP非抢占模式 | 在非抢占模式下,只要Master设备没有出现故障,Backup设备即使随后被配置了更高的优先级也不会成为Master设备。 |
Adver_Interval定时器 | Master设备会根据该定时器定期发送VRRP通告报文。 |
Master_Down定时器 | Backup设备在该定时器超时后,会变为Master状态。 |
三、VRRP报文格式
VRRP只有一种报文,即Advertisement报文,基于组播方式发送,因此只能在同一个广播域传递。 Advertisement报文的目的组播地址为224.0.0.18。
VRRP报文字段含义如下:
Ver:VRRP目前有两个版本,其中VRRPv2仅适用于IPv4网络,VRRPv3适用于IPv4和IPv6两种网络。
Virtual Rtr ID:该报文所关联的虚拟路由器的标识。
Priority:发送该报文的VRRP路由器的优先级。
Count IP Addrs:该VRRP报文中所包含的虚拟IP地址的数量。
Auth Type:VRRP支持三种认证类型:不认证、纯文本密码认证、MD5方式认证,对应值分别为0、1、2。
Adver Int:发送VRRP通告消息的间隔。默认为1秒
IP Address:所关联的虚拟路由器的虚拟IP地址,可以为多个。
Authentication Data:验证所需要的密码信息。
四、VRRP状态机
VRRP协议中定义了三种状态机:初始状态(Initialize)、活动状态(Master)、备份状态(Backup)。其中,只有处于Master状态的设备才可以转发那些发送到虚拟IP地址的报文。
五、VRRP协议状态
Master状态 | Backup状态 |
1.定期(ADVER_INTERVAL)发送VRRP报文。 2.以虚拟MAC地址响应对虚拟IP地址的ARP请求。 3.转发目的MAC地址为虚拟MAC地址的IP报文。 4.默认允许ping通虚拟IP地址。 5.当多台设备同时为Master时,若设备收到与自己优先级相同的报文时,会进一步比较IP地址的大小。如果收到报文的源IP地址比自己大,则切换到Backup状态,否则保持Master状态。 | 1.接收Master设备发送的VRRP报文,判断Master设备的状态是否正常。 2.对虚拟IP地址的ARP请求,不做响应。 3.丢弃目的MAC地址为虚拟MAC地址的IP报文。 4.丢弃目的IP地址为虚拟IP地址的IP报文。 5.如果收到优先级和自己相同或者比自己优先级大的报文时,重置MASTER_DOWN定时器,不进一步比较IP地址的大小。 |
六、VRRP主备选举
-
优先级不同
-
开启VRRP进入初始化状态
-
设备根据VRRP优先级,计算超时定时器,时间短的进入Master状态
-
开始发送VRRP报文,优先级高的被选举为Master设备
-
发送免费ARP检测地址冲突,以及通告设备和主机(交换机和主机无需进行ARP解析和泛洪,缩短故障时间)
-
优先级相同
-
开启VRRP进入初始化状态
-
设备根据VRRP优先级,计算超时定时器,同时进入Master状态
-
开始发送VRRP报文,优先级相同,继续对比IP地址,越大越优,IP地址小的切换为Backup状态
-
发送免费ARP检测地址冲突,以及通告设备和主机
七、VRRP负载分担
负载分担是指多个VRRP备份组同时承担业务,VRRP负载分担与VRRP主备备份的基本原理和报文协商过程都是相同的。同样对于每一个VRRP备份组,都包含一个Master设备和若干Backup设备。
VRRP备份组1:DeviceA作为Master设备,DeviceB作为Backup设备。
VRRP备份组2:DeviceB作为Master设备,DeviceA作为Backup设备。
一部分用户将VRRP备份组1作为网关,另一部分用户将VRRP备份组2作为网关。这样便可实现分担业务流量又相互备份的目的。
八、VRRP路由监控与接口联动
配置VRRP备份组后,VRRP备份组之间的主备切换通过VRRP通告报文进行协商。当网络中出现故障(比如接口Down或链路故障)或网络进行调整时,VRRP备份组并不能及时感知并进行状态切换,或者当VRRP备份组在主备切换完成后未能及时联动路由,会造成流量转发故障。
路由监视配置思路:
DeviceA上的VRRP备份组的优先级为120,状态为Master;
DeviceB上的VRRP备份组的优先级为100,状态为Backup,为立即抢占;
DeviceA上VRRP监视地址为10.1.2.0/24网段的路由,在检测到10.1.2.0/24网段信息为不可达时,DeviceA的优先级降低40(优先级降低后必须小于100)。
接口联动配置思路:
DeviceA上的VRRP备份组的优先级为120,状态为Master;
DeviceB上的VRRP备份组的优先级为100,状态为Backup,为立即抢占;
在DeviceA上配置监视上行接口interface1,当interface1状态变为Down时,DeviceA降低自身优先级,通过VRRP通告报文协商,DeviceB抢占成为Master设备,承担流量转发
九、VRRP的配置实现
1.VRRP常用基本配置
1.创建VRRP备份组并给备份组配置虚拟IP地址
[interface-GigabitEthernet0/0/0] vrrp vrid virtual-router-id virtual-ip virtual-address
注意:各备份组之间的虚拟IP地址不能重复;同属一个备份组的设备接口需使用相同的VRID。
2. 配置路由器在备份组中的优先级
[interface-GigabitEthernet0/0/0] vrrp vrid virtual-router-id priority priority-value
注意:通常情况下,Master设备的优先级应高于Backup设备。
3. 配置备份组中设备的抢占延迟时间
[interface-GigabitEthernet0/0/0] vrrp vrid virtual-router-id preempt-mode timer delay delay-value
4. 配置VRRP备份组中设备采用非抢占模式
[interface-GigabitEthernet0/0/0] vrrp vrid virtual-router-id preempt-mode disable
缺省情况下,抢占模式已被激活。
5. 配置VRRP备份组监视接口
[interface-GigabitEthernet0/0/0] vrrp vrid virtual-router-id track interface interface-type interface-number [ increased value-increased | reduced value-decreased ]
可配置设备当检测到上行接口或链路出现故障时,增加或者减少自身优先级,IP地址拥有者和Eth-trunk成员口不允许配置VRRP监视功能。
6. 配置VRRP备份组联动普通BFD会话
[interface-GigabitEthernet0/0/0] vrrp vrid virtual-router-id track bfd-session { bfd-session-id | session-name bfd-configure-name } [ increased value-increased | reduced value-reduced ]
如果选择参数session-name bfd-configure-name,可以绑定静态BFD会话或者标识符自协商的静态BFD会话。如果选择参数bfd-session-id,只能绑定静态BFD会话。
2.VRRP基础配置实例
配置要求:
R1与R2组成一个VRRP备份组,其中R1为Master,R2为Backup;
Master设备故障恢复时采用抢占模式,抢占延时10秒;
Master设备监视上行接口状态实现VRRP主备自动切换。
R1:
[R1] interface GigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0] ip address 192.168.1.253 24
[R1-GigabitEthernet0/0/0] vrrp vrid 1 virtual-ip 192.168.1.254
[R1-GigabitEthernet0/0/0] vrrp vrid 1 priority 120
[R1-GigabitEthernet0/0/0] vrrp vrid 1 preempt-mode timer delay 10
[R1-GigabitEthernet0/0/0] vrrp vrid 1 track interface GigabitEthernet0/0/1 reduced 30
R2:
[R2] interface GigabitEthernet0/0/0
[R2-GigabitEthernet0/0/0] ip address 192.168.1.252 24
[R2-GigabitEthernet0/0/0] vrrp vrid 1 virtual-ip 192.168.1.254
[R2-GigabitEthernet0/0/0] vrrp vrid 1 priority 110
3.VRRP主备备份配置
HostA通过Switch双归属到RouterA和RouterB。用户希望实现:
正常情况下,主机以RouterA为默认网关接入Internet,当RouterA故障时,RouterB接替作为网关继续进行工作,实现网关的冗余备份。RouterA故障恢复后,可以重新成为网关。
配置思路:
采用VRRP主备备份实现网关冗余备份,配置思路如下:
(1)配置各设备接口IP地址及路由协议,使各设备间网络层连通。
(2)在RouterA和RouterB上配置VRRP备份组。其中,RouterA上配置较高优先级和20秒抢占延时,作为Master设备承担流量转发;RouterB上配置较低优先级,作为备用工业路由交换一体机,实现网关冗余备份。
配置步骤:
(1)配置设备间的网络互连
# 配置设备各接口的IP地址,以RouterA为例。RouterB和RouterC的配置与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
# 配置RouterA、RouterB和RouterC间采用OSPF协议进行互连。以RouterA为例,RouterB和RouterC的配置与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
(2)配置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 //配置vrrp虚拟ip和vrid
[RouterA-GigabitEthernet2/0/0] vrrp vrid 1 priority 120 //默认优先级为100,RouterA设置优先级为120,该设备为Master
[RouterA-GigabitEthernet2/0/0] vrrp vrid 1 preempt-mode timer delay 20 //VRRP默认是抢占模式,设置抢占延时,避免频繁出现主备切换
[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
(3)验证配置结果
# 完成上述配置以后,在RouterA和RouterB上分别执行display vrrp命令,可以看到RouterA在备份组中的状态为Master,RouterB在备份组中的状态为Backup。
4.VRRP负载分担
HostA和HostC通过Switch双归属到RouterA和RouterB。用户希望HostA以RouterA为默认网关接入Internet,RouterB作为备份网关;HostC以RouterB为默认网关接入Internet,RouterA作为备份网关,以实现流量的负载均衡。
配置思路:
采用VRRP多网关负载分担实现流量的负载均衡,配置思路如下:
(1)配置各设备接口IP地址及路由协议,使各设备间网络层连通。
(2)在RouterA和RouterB上创建VRRP备份组1和VRRP备份组2,在备份组1中,配置RouterA为Master设备,RouterB为Backup设备;在备份组2中,配置RouterB为Master设备,RouterA为Backup设备,实现流量的负载均衡。
配置步骤:
(1)配置设备间的网络互连
# 配置设备各接口的IP地址,以RouterA为例。RouterB和RouterC的配置与RouterA类似,详见配置文件。
<Huawei> system-view
[Huawei] sysname RouterA
[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
[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、RouterB和RouterC间采用OSPF协议进行互连。以RouterA为例,RouterB和RouterC的配置与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
(2)配置VRRP备份组
# 在RouterA和RouterB上创建VRRP备份组1,配置RouterA的优先级为120,抢占延时为20秒;RouterB的优先级为缺省值。
[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] 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上创建VRRP备份组2,配置RouterB的优先级为120,抢占延时为20秒;RouterA的优先级为缺省值。
[
RouterB] interface gigabitethernet 2/0/0
[RouterB-GigabitEthernet2/0/0] vrrp vrid 2 virtual-ip 10.1.1.112
[RouterB-GigabitEthernet2/0/0] vrrp vrid 2 priority 120
[RouterB-GigabitEthernet2/0/0] vrrp vrid 2 preempt-mode timer delay 20
[RouterB-GigabitEthernet2/0/0] quit
[RouterA] interface gigabitethernet 2/0/0
[RouterA-GigabitEthernet2/0/0] vrrp vrid 2 virtual-ip 10.1.1.112
[RouterA-GigabitEthernet2/0/0] quit
(3)验证配置结果
#在RouterA上执行display vrrp命令,可以看到RouterA在备份组1中作为Master设备,在备份组2中作为Backup设备。
# 在RouterB上执行display vrrp命令,可以看到RouterB在备份组1中作为Backup设备,在备份组2中作为Master设备。
5.VRRP监视上行接口
局域网主机通过Switch双归属到部署了VRRP备份组的RouterA和RouterB,其中RouterA为Master。
用户希望当RouterA的上行接口GE1/0/0状态Down时,VRRP备份组能够及时感知并进行主备切换,由RouterB接替作为网关继续承担业务转发,以减小接口状态Down对业务传输的影响。
配置思路:
采用VRRP与接口状态联动实现对上行接口故障的感知及主备网关的切换,配置思路如下:
(1)配置各设备接口IP地址及路由协议,使网络层路由可达。
(2)在RouterA和RouterB上配置VRRP备份组。其中,RouterA上配置较高优先级,作为Master设备承担业务转发;RouterB上配置较低优先级,实现冗余备份。
(3)在RouterA上配置VRRP与接口状态联动,监视上行接口GE1/0/0,实现RouterA到RouterC间链路故障时,VRRP备份组及时感知并进行主备切换。
操作步骤:
(1)配置设备间的网络互连
# 配置设备各接口的IP地址,以RouterA为例。RouterB和RouterC的配置与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
# 配置RouterA、RouterB和RouterC间采用OSPF协议进行互连。以RouterA为例,RouterB和RouterC的配置与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
(2)配置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
(3)配置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 //优先级从120-40=80,小于RouterB默认的100优先级,所以RouterB变为Master设备
[RouterA-GigabitEthernet2/0/0] quit
(4)验证配置结果
# 完成上述配置后,在RouterA和RouterB上分别执行display vrrp命令,可以看到RouterA为Master设备,联动的接口状态为Up,RouterB为Backup设备。