终端只有一个默认网关。这台设备挂了,整个网段就上不了网。VRRP 解决的就是这个问题——让两台设备共用一个虚拟网关地址,切换对终端完全透明。

VRRP 的 Master、Backup 与虚拟路由器三个角色,以及选举规则
▲ VRRP 的三个角色与选举规则

虚拟 MAC 是怎么算出来的

这是 VRRP 最巧妙的地方:终端把网关的 MAC 学进 ARP 表后,如果切换时 MAC 变了,终端要等 ARP 老化才能恢复——那就要断几十秒。

VRRP 的做法是让两台设备用同一个虚拟 MAC:

虚拟 MAC 构成
00-00-5E-00-01-{VRID}

  0000.5E   VRRP 的固定 OUI(IANA 分配)
  00-01     表示 VRRP
  VRID      虚拟路由器 ID(1~255),十六进制

例:VRID = 1   → 虚拟 MAC = 0000-5e00-0101
    VRID = 10  → 虚拟 MAC = 0000-5e00-010a

★ 切换时 MAC 不变 → 终端 ARP 表不用更新 → 恢复快
★ 这是 VRRP 比"两台设备各配一个地址 + 手工切换"强的地方

选举与抢占

规则说明
优先级1~254,默认 100,大者当选
平局比接口 IP 地址,大者当选
IP 拥有者虚拟 IP 就是本机真实 IP 的设备,优先级固定 255
抢占默认开启。新设备优先级更高时会抢回 Master
通告间隔默认 1 秒;Backup 超时 3 秒(3 倍间隔)判定 Master 挂了

抢占默认是开的,这在某些场景会出问题:如果 Master 因为抖动反复切换(VRRP 震荡),网络会一直闪断。这时要么关掉抢占(vrrp vrid 1 preempt-mode disable),要么配抢占延迟(preempt-mode timer delay 20)让它等稳定了再抢。

track:不配就是白做

这是 VRRP 最大的坑,和防火墙双机热备的 hrp track 是同一个道理。

场景还原
拓扑: [上行链路]——R1(Master)——内网终端
                        |
                     VRRP 组
                        |
     [上行链路]——R2(Backup)——内网终端

故障:R1 的上行接口断了,但 R1 本身还活着

不配 track:
  R1 依然是 Master,继续接收内网流量
  R1 查路由:默认路由的出接口 down 了 → 丢包
  R2 在备着,什么都不做
  → 内网完全上不了网,但两台设备"看起来都正常"

配了 track:
  vrrp vrid 1 track interface GigabitEthernet0/0/0 reduced 30
  上行口 down → R1 优先级 120-30 = 90 < R2 的 100
  → R2 抢占成为 Master → 业务自动恢复

reduced 30 的含义是「track 的对象出问题时,优先级降低 30」。所以主设备的优先级要留够余量:如果主是 120、备是 100,那么 reduced 必须大于 20 才能切换。

负载分担:多组 VRRP

标准 VRRP 里 Backup 完全闲置。要利用起来,可以在同一对设备上起多组 VRRP,交叉做主备:

双组 VRRP 负载分担
R1: vrid 1 → Master(虚拟 IP 192.168.1.1,给一半终端做网关)
    vrid 2 → Backup(虚拟 IP 192.168.1.2,给另一半终端)

R2: vrid 1 → Backup
    vrid 2 → Master

内网一半终端的网关配 .1,另一半配 .2
→ 两台设备都在转发,带宽和性能都用上了

★ 代价:配置更复杂,且要保证同一条流的来回路径一致
★ 如果两台设备上面还有防火墙做状态检测,负载分担会让会话状态分裂

华为配置

huawei · 主备 VRRP + 上行监视
# ── R1(Master)──
interface GigabitEthernet0/0/1
 ip address 192.168.1.253 24
 vrrp vrid 1 virtual-ip 192.168.1.1
 vrrp vrid 1 priority 120                        # 比默认 100 高
 vrrp vrid 1 preempt-mode timer delay 20         # 抢占延迟 20 秒
 vrrp vrid 1 track interface GigabitEthernet0/0/0 reduced 30
 vrrp vrid 1 authentication-mode simple cipher Huawei@123

# ── R2(Backup)──
interface GigabitEthernet0/0/1
 ip address 192.168.1.254 24
 vrrp vrid 1 virtual-ip 192.168.1.1
 # 优先级保持默认 100
 vrrp vrid 1 track interface GigabitEthernet0/0/0 reduced 30
 vrrp vrid 1 authentication-mode simple cipher Huawei@123

# ★ 认证不是必须的,但建议配 —— 防止有人插一台设备乱发通告把 Master 抢走

# 监视 BFD / 路由 / 其他对象:
 vrrp vrid 1 track bfd-session 1 reduced 40
 vrrp vrid 1 track ip route 0.0.0.0 0 reduced 40

排错

huawei
display vrrp                          # ★ 所有 VRRP 组状态
display vrrp verbose                  # 详细:优先级、虚拟 MAC、通告统计、track 状态
display vrrp statistics               # 收发包统计(看有没有收到对端通告)
display vrrp interface GigabitEthernet0/0/1

# 排查震荡
display logbuffer | include VRRP      # ★ 看切换日志,频率高就是震荡

一句话总结:VRRP 用虚拟 MAC 保证切换快,用 track 保证能感知上行故障,用抢占延迟防震荡。这三件事缺任何一件,VRRP 都可能在该切的时候不切、不该切的时候乱切。

📌 本篇整理自 2024–2025 的「数通」学习笔记(HCIE-Datacom 方向)

整理自原始笔记的「VRRP」页。
原笔记偏概念与命令,本文补上了虚拟 MAC 的构成规则、优先级余量的计算方法、以及 VRRP 震荡这个实际运维问题。
配置命令保留华为 VRP 原样。