HCIP 数通:VRRP 网关冗余实战、主备切换、BFD 联动与负载分担
深入讲解 VRRP(虚拟路由冗余协议)的工作原理与企业级配置:Master/Backup 主备选举、Priority 优先级抢占、接口监控触发主备切换、双 VRRP 组实现负载分担、BFD 联动实现毫秒级故障检测,覆盖华为 VRP 平台完整配置场景。
企业网络中,终端设备的默认网关是单点故障风险。当网关路由器故障时,整个 VLAN 的终端无法访问外部网络。VRRP(Virtual Router Redundancy Protocol)通过虚拟 IP 和虚拟 MAC 把多台物理路由器虚拟成一台,实现网关高可用。
VRRP 工作原理
没有 VRRP 时:
终端 → 默认网关 192.168.1.1(路由器 A)
路由器 A 故障 → 终端无法上网
使用 VRRP 后:
VRRP 虚拟 IP:192.168.1.1(终端配置的默认网关不变)
VRRP 虚拟 MAC:00-00-5E-00-01-xx(固定格式)
路由器 A(Master):实际处理流量,定期发送 VRRP Advertisement
路由器 B(Backup):监听 Advertisement,Master 故障时接管
路由器 A 故障 → B 检测到超时 → B 成为 Master
→ 发免费 ARP 更新终端 ARP 表 → 流量切换到 B
→ 终端无感知(IP 不变,MAC 地址不变)
切换时间:
默认 3 秒(Advertisement 间隔 1s,超时 3s)
配合 BFD:50ms 级别切换
一、基础 VRRP 配置
主备 VRRP(Active-Standby)
# 网络拓扑:
# 终端 VLAN 10 网关 = 192.168.10.1(VRRP 虚拟 IP)
# 路由器 A(Master):192.168.10.2(实际 IP)
# 路由器 B(Backup):192.168.10.3(实际 IP)
# === 路由器 A 配置(Master)===
system-view
interface GigabitEthernet0/0/0
ip address 192.168.10.2 255.255.255.0
# 创建 VRRP 组 1,虚拟 IP 为 192.168.10.1
vrrp vrid 1 virtual-ip 192.168.10.1
# 设置优先级(默认100,Master 设高一点)
vrrp vrid 1 priority 120
# 启用抢占(Master 恢复后重新夺回 Master 角色)
vrrp vrid 1 preempt-mode timer delay 30 # 延迟 30 秒抢占(等路由收敛)
quit
# === 路由器 B 配置(Backup)===
interface GigabitEthernet0/0/0
ip address 192.168.10.3 255.255.255.0
vrrp vrid 1 virtual-ip 192.168.10.1
vrrp vrid 1 priority 100 # 默认优先级,比 A 低
vrrp vrid 1 preempt-mode timer delay 30
quit
# 验证 VRRP 状态
display vrrp brief
# VRID State Interface Virtual IP
# 1 Master GE0/0/0 192.168.10.1 ← A 是 Master
# 1 Backup GE0/0/0 192.168.10.1 ← B 是 Backup
display vrrp verbose
# VRID: 1
# State: Master
# Virtual IP: 192.168.10.1
# Virtual MAC: 0000-5e00-0101 ← 格式:0000-5e00-01xx(xx=VRID)
# Priority: 120
# Master priority: 120
# Preempt: YES Delay: 30s
# Advertisement interval: 1s
# Auth type: NONE
修改 VRRP 通告间隔(加快切换速度)
# 默认 Advertisement 间隔 1s,Master Down 等 3s
# 改为 500ms 间隔,切换时间缩短到约 1.5s
interface GigabitEthernet0/0/0
vrrp vrid 1 timer advertise 500 # 单位毫秒(VRRPv3 支持)
# VRRPv2 的最小间隔是 1s
二、接口监控触发主备切换
当 Master 的上行链路故障时,如果不联动 VRRP 优先级,会导致:
- Master 上行挂掉 → Master 仍然是 VRRP Master
- 终端流量发到 Master → Master 上行故障 → 流量丢失
解决方案:监控接口,故障时降低 VRRP 优先级,触发主备切换。
# 在 Master(路由器 A)上配置接口监控
interface GigabitEthernet0/0/0
vrrp vrid 1 virtual-ip 192.168.10.1
vrrp vrid 1 priority 120
# 监控上行接口:GE0/0/1(连接 ISP/核心交换机的接口)
# 当 GE0/0/1 Down 时,VRRP 优先级自动降低 30 分
# 降低后:120 - 30 = 90 < Backup 的 100 → B 成为 Master
vrrp vrid 1 track interface GigabitEthernet0/0/1 reduced 30
quit
# 验证监控配置
display vrrp verbose
# Track interface: GE0/0/1
# Track state: UP
# Reduced priority: 30
# 更精细的监控:监控 IP 可达性(通过 NQA 探测)
# 1. 创建 NQA 测试实例
nqa test-instance user test1
test-type icmp
destination-address ipv4 8.8.8.8 # 探测目标
frequency 5 # 每 5 秒探测一次
probe-count 3 # 连续 3 次
timeout 2
start now
# 2. VRRP 跟踪 NQA 结果
interface GigabitEthernet0/0/0
vrrp vrid 1 track nqa user test1 reduced 30
三、双 VRRP 组负载分担
主备模式下,Backup 路由器空转不处理流量,浪费资源。通过两个 VRRP 组实现负载分担:
# 设计思路:
# VRRP 组 1 虚拟 IP 192.168.10.1 → A 为 Master,处理 VLAN 10 的奇数终端
# VRRP 组 2 虚拟 IP 192.168.10.254 → B 为 Master,处理 VLAN 10 的偶数终端
# (通过 DHCP 把不同终端分配不同默认网关实现分流)
# === 路由器 A 配置 ===
interface GigabitEthernet0/0/0
ip address 192.168.10.2 255.255.255.0
# VRRP 组 1:A 是 Master
vrrp vrid 1 virtual-ip 192.168.10.1
vrrp vrid 1 priority 120 # 高优先级 = Master
vrrp vrid 1 preempt-mode timer delay 30
# VRRP 组 2:A 是 Backup
vrrp vrid 2 virtual-ip 192.168.10.254
vrrp vrid 2 priority 100 # 默认优先级 = Backup
vrrp vrid 2 preempt-mode timer delay 30
quit
# === 路由器 B 配置 ===
interface GigabitEthernet0/0/0
ip address 192.168.10.3 255.255.255.0
# VRRP 组 1:B 是 Backup
vrrp vrid 1 virtual-ip 192.168.10.1
vrrp vrid 1 priority 100
vrrp vrid 1 preempt-mode timer delay 30
# VRRP 组 2:B 是 Master
vrrp vrid 2 virtual-ip 192.168.10.254
vrrp vrid 2 priority 120 # 高优先级 = Master
vrrp vrid 2 preempt-mode timer delay 30
quit
# DHCP 服务器配置两个地址池,不同段使用不同网关
# 地址池1 (192.168.10.1-100) → 默认网关 192.168.10.1(A 主)
# 地址池2 (192.168.10.101-200) → 默认网关 192.168.10.254(B 主)
# 验证负载分担
display vrrp brief
# VRID State Interface Virtual IP
# 1 Master GE0/0/0 192.168.10.1 ← A 是 VRRP1 Master
# 2 Backup GE0/0/0 192.168.10.254 ← A 是 VRRP2 Backup
# 在 B 上:
# 1 Backup GE0/0/0 192.168.10.1 ← B 是 VRRP1 Backup
# 2 Master GE0/0/0 192.168.10.254 ← B 是 VRRP2 Master
四、BFD 联动(毫秒级故障检测)
VRRP 默认切换时间约 3 秒(3 个 Advertisement 超时)。BFD(双向转发检测)可以把故障检测时间压缩到 50ms。
# BFD 需要在两台路由器的互联接口上配置
# === 路由器 A 配置 BFD ===
bfd session static 1 bind peer-ip 192.168.10.3 interface GigabitEthernet0/0/0
discriminator local 1
discriminator remote 2
commit
# === 路由器 B 配置 BFD ===
bfd session static 2 bind peer-ip 192.168.10.2 interface GigabitEthernet0/0/0
discriminator local 2
discriminator remote 1
commit
# 验证 BFD 会话
display bfd session all
# Session ID State InterfaceName PeerIPAddr Diag
# 1 Up GE0/0/0 192.168.10.3 No Diagnostic
# BFD 最小发送间隔默认 1000ms,最小接收 1000ms
# 改为快速检测:
bfd session static 1 bind peer-ip 192.168.10.3 interface GigabitEthernet0/0/0
min-tx-interval 50 # 最小发送间隔 50ms
min-rx-interval 50 # 最小接收间隔 50ms
detect-multiplier 3 # 检测倍数(超过 3 次未收到 = 故障)
# 故障检测时间 = 50ms * 3 = 150ms
commit
# VRRP 联动 BFD(当 BFD 检测到故障时,触发 VRRP 切换)
interface GigabitEthernet0/0/0
vrrp vrid 1 track bfd-session 1 reduced 30
# BFD 会话 1 Down 时,VRRP 优先级降低 30
五、多层交换机 VRRP(三层交换机场景)
# 数据中心场景:核心层两台三层交换机 + VRRP
# 核心-A 和 核心-B 各有 SVI(VLAN 接口),VRRP 提供网关冗余
# 核心-A 配置
vlan batch 10 20 30
interface Vlanif10
ip address 192.168.10.2 255.255.255.0
vrrp vrid 10 virtual-ip 192.168.10.1
vrrp vrid 10 priority 120
vrrp vrid 10 preempt-mode timer delay 30
vrrp vrid 10 track interface GigabitEthernet1/0/1 reduced 30 # 监控上行
interface Vlanif20
ip address 192.168.20.2 255.255.255.0
vrrp vrid 20 virtual-ip 192.168.20.1
vrrp vrid 20 priority 120
# 核心-B 配置
interface Vlanif10
ip address 192.168.10.3 255.255.255.0
vrrp vrid 10 virtual-ip 192.168.10.1
vrrp vrid 10 priority 100
interface Vlanif20
ip address 192.168.20.3 255.255.255.0
vrrp vrid 20 virtual-ip 192.168.20.1
vrrp vrid 20 priority 100
六、常见问题排查
# 问题1:两台都成为 Master(脑裂)
# 原因:VRRP 报文不通(防火墙、ACL 拦截)
# VRRP 使用组播 224.0.0.18,需要确保通畅
ping 224.0.0.18
tcpdump -i eth0 vrrp # Linux 上抓 VRRP 报文
display vrrp statistics # 查看 VRRP 报文收发统计
# 问题2:切换后终端无法访问(ARP 表未更新)
# VRRP Master 切换时会发送免费 ARP,更新网络中所有设备的 ARP 表
# 如果终端 ARP 老化时间太长,可能需要等待
ping 192.168.10.1 # 终端发 ARP 请求,触发 ARP 表刷新
arp -d 192.168.10.1 # 清除 ARP 缓存(Windows/Linux)
# 问题3:抢占导致频繁主备切换(震荡)
# 配置抢占延迟(等待路由收敛后再抢占)
vrrp vrid 1 preempt-mode timer delay 60 # 延迟 60 秒
# 查看 VRRP 切换日志
display logbuffer | include VRRP
小结
VRRP 的核心是虚拟 IP + 虚拟 MAC + 主备选举:优先级高的成为 Master,处理流量;Backup 监控心跳,Master 故障时快速接管。生产配置的关键点:接口监控(上行故障时主动降低优先级触发切换)、抢占延迟(避免 Master 恢复后立即抢占导致流量震荡)、BFD 联动(把切换时间从 3 秒压缩到 150ms 以内)、双 VRRP 组负载分担(两台设备互为主备,同时处理流量)。
