← 返回题目列表

VRRP 是什么?它如何实现默认网关的高可用?

中等 第 26 / 26 题 更新于 2026/08/02
网络层网关高可用

简化版

VRRP 是 Virtual Router Redundancy Protocol,用于实现默认网关高可用。

多台路由器组成一个虚拟路由器,对外提供同一个虚拟 IP,主路由器负责转发流量,备路由器监听主路由器通告。如果主路由器故障,备路由器会接管虚拟 IP 和虚拟 MAC。

这样主机默认网关仍配置同一个 VIP,不需要因物理网关故障而修改配置。

详细版

典型结构:

Host default gateway -> 192.168.1.1(VIP)
Router A: Master
Router B: Backup

正常时 Router A 转发。

Router A 周期发送 VRRP Advertisement。

如果 Router B 超时收不到通告,就根据优先级选举,接管 VIP。

接管后通常会发送免费 ARP,通知局域网更新 VIP 对应的 MAC。

VRRP 解决的是网关单点故障,不是服务器应用层负载均衡。

完整版教学

1. 先说明默认网关为什么需要高可用

局域网主机访问外网时,会把非本地网段流量发给默认网关。

如果默认网关是一台物理设备,它故障后,所有依赖它的主机都会出网失败。

VRRP 用虚拟网关屏蔽物理设备故障。

VRRP 的目标是让主机一直使用同一个默认网关地址,但背后的真实路由器可以切换。

2. VRRP 的基本组成

VRRP 里有:

  • Virtual Router。
  • Virtual IP。
  • Master Router。
  • Backup Router。
  • Priority。
  • Advertisement。

主机只知道 VIP。

路由器之间通过 VRRP 报文维护主备关系。

3. 正常工作流程

假设 VIP 是:

192.168.1.1

Router A 优先级高,成为 Master。

它负责响应 VIP 的 ARP,并转发流量。

Router B 是 Backup,监听 A 的 VRRP 通告。

如果 A 正常,B 不转发 VIP 流量。

4. 故障切换流程

如果 Router A 故障,Router B 收不到通告。

超时后 B 认为 Master 不可用。

B 根据优先级成为新 Master。

它接管 VIP 和虚拟 MAC。

然后发送免费 ARP:

192.168.1.1 is at virtual-mac

主机继续把默认网关指向同一个 VIP。

5. VRRP 和 Keepalived

Linux 环境中常见 Keepalived 使用 VRRP 思路实现 VIP 高可用。

例如两台负载均衡器共享一个 VIP。

Master 持有 VIP。

Backup 在 Master 故障后接管 VIP。

这常用于 LVS、Nginx 入口高可用。

但要注意二层网络、ARP 通告和健康检查配置。

6. VRRP 的限制

VRRP 解决网关或 VIP 所在节点高可用,但不是万能。

限制说明
依赖二层可达VIP 漂移通常要求同广播域或特定网络支持
切换有时间需要检测超时和收敛
只管入口后端应用健康还要额外检查
可能脑裂主备通信异常可能导致双 Master

生产中要结合链路检测、健康检查和防脑裂策略。

7. 常见误区与追问

  • 误区:VRRP 是应用层负载均衡。 它主要解决虚拟网关或 VIP 高可用。
  • 误区:主机需要知道主备路由器真实 IP。 主机通常只配置虚拟 IP 作为默认网关。
  • 误区:VRRP 切换完全无感且没有丢包。 切换期间可能有短暂丢包和 ARP 收敛。
  • 追问:为什么切换后要发免费 ARP? 为了通知局域网更新 VIP 对应的 MAC。
  • 追问:优先级有什么用? 用于决定哪个路由器成为 Master。
  • 追问:脑裂是什么? 多个节点都认为自己是 Master,可能造成流量异常。

8. 加强记忆

VRRP 记成“默认网关的主备漂移”。

用户只认 VIP,谁当 Master 谁负责把网关这活接住。