VRRP 网关备份实战:从原理到配置
前言
在网络运维中,单点故障是最常见的问题之一。网关作为网络的出口,一旦故障,整个网络就会瘫痪。
VRRP(Virtual Router Redundancy Protocol)是解决这个问题的经典方案。本文将从原理、配置到测试,完整讲解 VRRP 的实战应用。
一、VRRP 协议基础
1.1 协议标准
- RFC 3768:VRRP Version 2
- RFC 5798:VRRP Version 3(支持 IPv6)
- 协议类型:开放标准,多厂商支持
1.2 核心术语
| 术语 | 英文 | 说明 |
|---|---|---|
| 虚拟路由器 | Virtual Router | 一组路由器的抽象表示 |
| Master | Master | 当前处理流量的路由器 |
| Backup | Backup | 待命的路由器 |
| 虚拟 IP | Virtual IP | 终端设备使用的网关 IP |
| 优先级 | Priority | 决定 Master 选举(1-254) |
| 通告间隔 | Advertisement Interval | Master 发送通告的间隔(默认 1 秒) |
| 抢占模式 | Preempt Mode | 高优先级路由器是否抢占 Master |
1.3 报文格式
VRRP 通告报文(简化):
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version| Type | Virtual Rtr ID| Priority | Count IP Addr |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Auth Type | Advertisement Interval |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Virtual IP Address (1-N) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
二、实验环境
2.1 硬件拓扑
互联网
│
┌─────────────┼─────────────┐
│ │ │
WAN LAN 4G
┌────────┐ ┌────────┐ ┌────────┐
│ IR915 │───│ 交换机 │───│ IR305 │
│(Master)│ │ │ │(Backup)│
└────────┘ └────────┘ └────────┘
│
192.168.2.0/24
│
┌────┴────┐
│ 测试 PC │
└─────────┘
设备说明:
- IR915:映翰通工业 5G 路由器,作为 Master(主网关)
- IR305:映翰通工业 4G 路由器,作为 Backup(备网关)
- 两款设备均支持 VRRP 协议,适合工业级网络冗余部署
IR915 与 IR305 的 VRRP 配置拓扑
2.2 IP 规划
| 设备 | 接口 | IP 地址 | 说明 |
|---|---|---|---|
| IR915 | LAN | 192.168.2.1 | 主路由器 |
| IR915 | WAN | DHCP | 外网接口 |
| IR305 | LAN | 192.168.2.2 | 备路由器 |
| IR305 | Cellular | DHCP | 备用外网 |
| 虚拟网关 | - | 172.32.1.1 | VRRP 虚拟 IP |
| 测试 PC | LAN | 192.168.2.100 | 静态 IP |
2.3 VRRP 参数
| 参数 | IR915(主) | IR305(备) |
|---|---|---|
| VRRP 组 | 1 | 1 |
| 优先级 | 254 | 1 |
| 虚拟 IP | 172.32.1.1 | 172.32.1.1 |
| 监视接口 | WAN | Cellular |
| 抢占模式 | Enable | Enable |
| 通告间隔 | 1s | - |
三、配置步骤
3.1 主路由器配置(IR915)
# 进入 VRRP 配置模式
configure terminal
interface lan0
vrrp 1 enable
vrrp 1 priority 254
vrrp 1 virtual-ip 172.32.1.1
vrrp 1 preempt enable
vrrp 1 track interface wan1
# 监视 WAN 口,故障时降低优先级
vrrp 1 track interface wan1 priority-decrease 253
exit
配置解读:
priority 254:设置最高优先级virtual-ip:设置虚拟网关 IPpreempt enable:开启抢占模式track interface:监视接口状态priority-decrease 253:故障时优先级降为 1(254-253)
3.2 备路由器配置(IR305)
configure terminal
interface lan0
vrrp 1 enable
vrrp 1 priority 1
vrrp 1 virtual-ip 172.32.1.1
vrrp 1 preempt enable
vrrp 1 track interface cellular1
vrrp 1 track interface cellular1 priority-decrease 0
exit
3.3 测试 PC 配置
Windows:
netsh interface ip set address "以太网" static 192.168.2.100 255.255.255.0 172.32.1.1
netsh interface ip set dns "以太网" static 114.114.114.114
Linux:
ip addr add 192.168.2.100/24 dev eth0
ip route add default via 172.32.1.1
echo "nameserver 114.114.114.114" > /etc/resolv.conf
四、验证与测试
4.1 状态检查
路由器端:
# 查看 VRRP 状态
show vrrp brief
# 预期输出(主路由器):
Interface Group Priority State Virtual IP
lan0 1 254 Master 172.32.1.1
# 预期输出(备路由器):
Interface Group Priority State Virtual IP
lan0 1 1 Backup 172.32.1.1
PC 端:
# 查看 ARP 表
arp -a | grep 172.32.1.1
# 预期输出(Windows):
172.32.1.1 00-18-05-09-82-c1 dynamic
# 记录 MAC 地址,用于后续对比
4.2 切换测试
步骤 1:开始持续 ping
ping 172.32.1.1 -t
步骤 2:记录当前状态
# 记录 ping 延迟和 ARP 表 MAC 地址
步骤 3:模拟故障
选项 A:拔掉 IR915 的 LAN 口网线
选项 B:拔掉 IR915 的 WAN 口网线
选项 C:直接断开 IR915 电源
步骤 4:观察现象
ping 输出示例:
来自 172.32.1.1 的回复:字节=32 时间=1ms TTL=64
来自 172.32.1.1 的回复:字节=32 时间=1ms TTL=64
请求超时。 ← 故障发生
请求超时。
请求超时。
请求超时。
请求超时。
请求超时。
来自 172.32.1.1 的回复:字节=32 时间=2ms TTL=64 ← 切换完成
来自 172.32.1.1 的回复:字节=32 时间=2ms TTL=64
步骤 5:验证切换
# 再次查看 ARP 表
arp -a | grep 172.32.1.1
# 预期输出(MAC 地址已变更):
172.32.1.1 00-18-05-1e-3a-2b dynamic
4.3 性能指标
| 指标 | 实测值 | 说明 |
|---|---|---|
| 故障检测时间 | ~3 秒 | Backup 检测不到 Master 通告 |
| 切换完成时间 | ~6 秒 | 从故障到网络恢复 |
| ping 超时次数 | 5-7 次 | 取决于通告间隔 |
| 业务影响 | 轻微卡顿 | 视频会议可能缓冲 |
五、故障排查
5.1 常见问题
问题 1:VRRP 状态不切换
可能原因:
- 优先级配置错误
- 网络不通(路由器间 LAN 口不通)
- VRRP 组号不一致
排查步骤:
1. show vrrp brief 检查状态
2. ping 对端 LAN 口 IP
3. 检查配置中的 vrrp group id
问题 2:频繁切换(震荡)
可能原因:
- 监视接口不稳定
- 优先级差距太小
- 网络延迟导致通告丢失
解决方案:
1. 检查监视接口状态
2. 增大优先级差距(主 254,备 1)
3. 调整通告间隔
问题 3:切换时间过长
可能原因:
- 默认通告间隔较长
- 未开启抢占模式
优化方案:
1. 减小 advertisement interval(谨慎)
2. 确认 preempt enable 已开启
3. 考虑 BFD 联动(进阶)
5.2 调试命令
# 开启 VRRP 调试
debug vrrp all
# 查看 VRRP 详细状态
show vrrp detail
# 查看 VRRP 统计信息
show vrrp statistics
# 清除统计(重新测试前)
clear vrrp statistics
六、进阶配置
6.1 负载分担
配置两个 VRRP 组,实现负载分担:
# 路由器 A
interface lan0
vrrp 1 priority 254 # 组 1 为主
vrrp 1 virtual-ip 172.32.1.1
vrrp 2 priority 1 # 组 2 为备
vrrp 2 virtual-ip 172.32.1.2
# 路由器 B
interface lan0
vrrp 1 priority 1 # 组 1 为备
vrrp 1 virtual-ip 172.32.1.1
vrrp 2 priority 254 # 组 2 为主
vrrp 2 virtual-ip 172.32.1.2
终端设备分流:
- 部分 PC 网关:172.32.1.1
- 部分 PC 网关:172.32.1.2
6.2 BFD 联动
BFD(Bidirectional Forwarding Detection)可将故障检测时间降低到毫秒级:
# 配置 BFD
bfd
session 1
discriminator local 1
discriminator remote 2
min-tx-interval 100
min-rx-interval 100
# VRRP 绑定 BFD
interface lan0
vrrp 1 bfd-session 1
6.3 多 WAN 口场景
# 监视多个 WAN 口
interface lan0
vrrp 1 track interface wan1 priority-decrease 100
vrrp 1 track interface wan2 priority-decrease 100
任一 WAN 口故障,优先级降低,触发切换。
七、总结
7.1 技术要点
- 虚拟 IP 是核心,终端只认虚拟 IP
- 优先级 决定 Master 选举
- 心跳机制 检测故障
- 抢占模式 决定故障恢复后行为
7.2 最佳实践
- ✅ 主备优先级差距要大(254 vs 1)
- ✅ 监视真正关键的接口(WAN/4G)
- ✅ 在业务低峰期测试
- ✅ 记录切换时间和现象
- ✅ 定期演练,确保方案有效
7.3 局限性
- ❌ 切换时间秒级,不适合超低延迟场景
- ❌ 仅解决网关冗余,不解决链路冗余
- ❌ 需要设备支持 VRRP 协议
7.4 替代方案
| 方案 | 切换时间 | 成本 | 复杂度 |
|---|---|---|---|
| VRRP | 秒级 | 低 | 低 |
| VRRP+BFD | 毫秒级 | 中 | 中 |
| SD-WAN | 毫秒级 | 高 | 高 |
| 双活数据中心 | 毫秒级 | 极高 | 极高 |
VRRP 是性价比最高的网关冗余方案,值得每个网络工程师掌握。
#VRRP #网络运维 #高可用 #网关备份 #企业网络