技术博客

HCIP 数通:VRRP 网关冗余实战、主备切换、BFD 联动与负载分担

深入讲解 VRRP(虚拟路由冗余协议)的工作原理与企业级配置:Master/Backup 主备选举、Priority 优先级抢占、接口监控触发主备切换、双 VRRP 组实现负载分担、BFD 联动实现毫秒级故障检测,覆盖华为 VRP 平台完整配置场景。

VRRPHCIP网关冗余BFD高可用负载分担数通

企业网络中,终端设备的默认网关是单点故障风险。当网关路由器故障时,整个 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 优先级,会导致:

解决方案:监控接口,故障时降低 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 组负载分担(两台设备互为主备,同时处理流量)。