VRRP的概念及应用场景
VRRP(虚拟路由冗余协议)概念
VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)是一种路由容错协议 ,用于在多个路由器之间提供网关冗余,确保当主路由器故障时,备份路由器能无缝接管流量,保障网络的高可用性。


核心原理
-
虚拟路由器(Virtual Router):
- 多个物理路由器组成一个逻辑上的虚拟路由器(VRRP组),共享一个虚拟IP地址 (VIP)和虚拟MAC地址。
- 终端设备将默认网关配置为该VIP,而非具体物理路由器的IP。
-
主备选举(Master/Backup):
-
通过优先级(Priority,默认100,范围0-255)选举主路由器(Master),优先级高的获胜,优先级相同时接口IP大的为主路由器。管理员只能手动配置1-254,0表示设备停止参与VRRP备份组(比如shutdown了),255保留给ip拥有者(虚拟ip与接口ip一样)。
-
在同一个VRRP组(VRID)中,同一时刻只能有一个主路由器(Master),但可以存在多个备份路由器(Backup)。
-
vrid虚拟路由器标识,需要手工指定,范围1-255。
-
Master周期性发送VRRP通告(Advertisement)声明存活,Backup监听。
-
- VRRP协议报文格式
- 协议版本VRRPv2(常用,今适用于ipv4网络)和VRRPv3(ipv4和ipv6都适用)
- VRRP协议报文是Master路由器以组播的方式,定时发送的VRRP报文。
- 只有一种报文:Advertisement报文;目的地址是224.0.0.18(组播)进行发送。目的mac地址是01-00-5e-00-00-12,ip协议号是112。
- 虚拟路由器由LAN上唯一的Virtual Router ID标识。并具有虚MAC地址:00-00-5E-00-01-{vrid}
- 故障切换(Failover):
- (Advertisement Interval)默认为1秒。
- 如果Backup在超时时间(默认3倍Advertisement间隔,通常3秒内未收到通告,则接管Master角色。
- 切换过程对终端透明(ARP表自动更新,backup成为master后发送免费arp报文,刷新交换机的mac地址表)。
- VRRP路由器在备份组内除Master和Backup状态外,还可能处于Initialize状态。

VRRP虚IP地址的ARP响应:
- 主路由器激活虚IP地址,同时也激活该IP对应的虚MAC地址,主机发送虚IP地址的ARP请求时,主路由器使用虚MAC进行ARP响应。
- 备份路由器不激活虚拟IP地址,也不激活虚拟MAC地址,更不进行虚IP的ARP响应,也不接收目的MAC是虚MAC的报文。
2.1 正常切换过程
Master故障:Backup检测到Master宕机(3倍Advertisement超时),升主。
新Master发送GARP:
使用虚拟MAC地址作为源MAC,广播GARP报文。
交换机收到后更新端口-MAC映射,终端更新ARP缓存。
流量无缝切换:数据包正确流向新Master。
2.2 未启用GARP的后果
二层网络问题:
如果新Master不发送GARP,交换机仍保留旧Master的MAC表项,导致流量仍发往故障设备,造成通信中断。
终端ARP缓存过期依赖:
终端可能需等待ARP缓存超时(通常几分钟)才能恢复通信。

VRRP的相关概念

左侧为物理链路,右侧为逻辑链路
VRRP跟踪接口功能
- 当Master路由器连接上行链路的接口处于Down状态时,路由器主动降低自己的优先级,使得备份组内重新选择Master,承担转发任务。

VRRP抢占(Preemption)
VRRP抢占(Preemption)是指当高优先级的路由器恢复在线 后,是否立即夺回Master角色的机制。它是VRRP高可用性的关键特性之一,合理配置可避免网络震荡或业务中断。
1. 抢占的工作原理
1.1 抢占的触发条件
- 优先级比较 :
当原Master故障后,Backup路由器接管。若原Master恢复且优先级高于当前Master,触发抢占。 - Preempt模式启用 :
必须显式配置抢占(默认情况下,部分厂商设备可能禁用抢占)。
1.2 抢占过程
- 原Master恢复后,发送VRRP通告(Advertisement)声明自己的优先级。
- 当前Master收到通告后,比较优先级:
- 如果新优先级更高,当前Master主动降级为Backup,恢复的路由器成为Master。
- 如果优先级相同或更低,忽略抢占请求。
- 终端设备通过免费ARP(Gratuitous ARP)更新网关MAC地址。
2. 抢占的配置(以华为/思科为例)
2.1 华为设备配置
bash
interface GigabitEthernet0/0/1
vrrp vrid 1 virtual-ip 192.168.1.254
vrrp vrid 1 priority 120 # 设置高优先级(默认100)
vrrp vrid 1 preempt-mode # 启用抢占(默认开启)
vrrp vrid 1 preempt-mode timer delay 5 # 延迟5秒抢占(避免频繁切换)
preempt-mode
:启用抢占(默认开启)。timer delay
:延迟抢占时间(单位:秒),防止因短暂抖动导致角色切换。
2.2 思科设备(HSRP配置)
bash
interface GigabitEthernet0/1
standby 1 ip 192.168.1.254
standby 1 priority 110
standby 1 preempt # 启用抢占
standby 1 preempt delay minimum 5 # 延迟5秒抢占
preempt
:启用抢占(HSRP默认关闭,需手动开启)。delay minimum
:设置抢占延迟。
3. 抢占的应用场景
3.1 需要抢占的场景
- 主设备性能更强 :
例如,Master是高性能核心路由器,Backup是备用设备,主设备恢复后应立刻接管流量。 - 业务依赖特定设备 :
如防火墙或负载均衡器作为Master,需保证流量始终经过主设备。
3.2 不需要抢占的场景
- 网络稳定性优先 :
如果主备设备性能相当,频繁切换可能导致业务抖动,可关闭抢占。 - 短暂故障恢复 :
如主设备因端口闪断(Port Flap)短暂下线,延迟抢占可避免不必要的切换。
4. 抢占的注意事项
4.1 避免脑裂(Split-Brain)
- 心跳检测:确保Master和Backup之间的链路可靠(可结合BFD或链路检测)。
- 优先级一致性问题 :
不同设备的VRRP优先级配置错误可能导致多个Master冲突。
4.2 抢占延迟(Preempt Delay)
- 作用:防止因接口抖动(如端口Up/Down)导致频繁切换。
- 推荐值:通常设置3~10秒,具体取决于网络稳定性需求。
4.3 免费ARP(Gratuitous ARP)
- 抢占成功后,新Master会发送免费ARP更新终端设备的ARP缓存,确保流量无缝切换。
5. 常见问题(FAQ)
Q1:抢占默认开启吗?
- 华为VRRP :默认开启抢占(
preempt-mode
)。 - 思科HSRP :默认关闭抢占(需手动
standby 1 preempt
)。
Q2:抢占会导致流量中断吗?
- 正常情况下不会 :
切换过程会发送免费ARP更新终端ARP表,流量中断时间极短(毫秒级)。 - 若配置不当可能丢包 :
如未启用抢占延迟,频繁切换可能导致短暂丢包。
Q3:如何验证抢占是否生效?
-
查看VRRP状态 :
bashdisplay vrrp [verbose] # 华为 show standby # 思科
-
模拟测试 :
手动关闭Master接口,观察Backup是否接管,再恢复接口检查是否抢占。
6. 总结
关键点 | 说明 |
---|---|
抢占的作用 | 高优先级设备恢复后重新成为Master,保证流量最优路径。 |
配置命令 | 华为:preempt-mode + timer delay ;思科:preempt + delay minimum |
推荐延迟时间 | 3~10秒,避免频繁切换。 |
适用场景 | 主设备性能更强或业务依赖特定设备时建议启用。 |
不适用场景 | 主备设备性能相当或网络稳定性要求极高时可关闭抢占。 |
合理配置VRRP抢占,能在保障高可用的同时,避免不必要的网络震荡。