终端只有一个默认网关。这台设备挂了,整个网段就上不了网。VRRP 解决的就是这个问题——让两台设备共用一个虚拟网关地址,切换对终端完全透明。
虚拟 MAC 是怎么算出来的
这是 VRRP 最巧妙的地方:终端把网关的 MAC 学进 ARP 表后,如果切换时 MAC 变了,终端要等 ARP 老化才能恢复——那就要断几十秒。
VRRP 的做法是让两台设备用同一个虚拟 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,交叉做主备:
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
→ 两台设备都在转发,带宽和性能都用上了
★ 代价:配置更复杂,且要保证同一条流的来回路径一致
★ 如果两台设备上面还有防火墙做状态检测,负载分担会让会话状态分裂
华为配置
# ── 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
排错
display vrrp # ★ 所有 VRRP 组状态
display vrrp verbose # 详细:优先级、虚拟 MAC、通告统计、track 状态
display vrrp statistics # 收发包统计(看有没有收到对端通告)
display vrrp interface GigabitEthernet0/0/1
# 排查震荡
display logbuffer | include VRRP # ★ 看切换日志,频率高就是震荡
- 两台都是 Master → 收不到对端通告。查二层是否互通(同一 VLAN?)、VRID 是否一致、认证密码是否一致;
- 两台都是 Backup → 通告间隔或超时配置不一致,导致都认为对方活着;
- 切换后上不了网 → 没配 track,或者优先级余量不够(reduced 值小于优先级差值);
- 频繁切换 → VRRP 震荡。常见原因是链路抖动或 CPU 过载导致通告发不出去。配抢占延迟能缓解;
- 终端 ping 不通网关但设备本身正常 → 虚拟 IP 没配、或者终端 ARP 表里缓存了旧 MAC(等老化或手工清);
- track 了但没切换 → 算一下优先级:主 120 reduced 30 → 90,备 100,90 < 100 应该切。如果主是 110 reduced 30 → 80 才切;但如果主是 110 reduced 5 → 105 > 100,就不会切。
一句话总结:VRRP 用虚拟 MAC 保证切换快,用 track 保证能感知上行故障,用抢占延迟防震荡。这三件事缺任何一件,VRRP 都可能在该切的时候不切、不该切的时候乱切。
📌 本篇整理自 2024–2025 的「数通」学习笔记(HCIE-Datacom 方向)
整理自原始笔记的「VRRP」页。
原笔记偏概念与命令,本文补上了虚拟 MAC 的构成规则、优先级余量的计算方法、以及 VRRP 震荡这个实际运维问题。
配置命令保留华为 VRP 原样。