VRRP 是什么?它如何实现默认网关的高可用?
简化版
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 谁负责把网关这活接住。