VRRP 切换慢到怀疑人生,这个优化方法了解一下

1. 现象与典型误判

  • 现象:上联断了,或者主设备重启,VIP 切过去要 3~10 秒,期间业务断续。

  • 常见误判:

    • “VRRP就是这么慢”——不对,默认慢,可调到亚秒级。
    • “切过去了但还不通”——多半是下游 ARP/MAC 缓存没刷新,或者上游路由没联动
    • “接口都UP”——链路物理好不代表上行路由/出口可达

2. VRRP 为啥默认慢?(先把原理掰直)

VRRP Master Down 的检测时间由广告报文间隔决定:

  • Master_Down_Interval = 3 × Adv_Interval + Skew_Time(Skew 随优先级略微调整)
  • 默认 Adv_Interval=1s → 大约 3s+ 才感知主挂了

想更快,就两条路:

  1. 把 Adv_Interval 拉到毫秒级
  2. 用 BFD/NQA 做外部探测,一丢就立刻降优先级/切换。

3. 真正的瓶颈在这四个环节

  1. 故障检测:你多久意识到“主不行了”?(Adv、BFD、NQA)

  2. 角色切换:备能不能马上抢到 VIP?(抢占/延时)

  3. 邻居刷新:周边设备多久知道“VIP 换 MAC 了”?(GARP/NA 刷新、广播抑制)

  4. 上行联动:切过去那台真的有上行/路由吗?(track 接口/路由/探测)

4. 优化思路一图流(拿去做Checklist)

  • 检测提速:Adv 毫秒级 + BFD/NQA 旁路探测

  • 联动到位:track 上联接口/静态路由/探测会话,降优先级切换

  • 控制抢占:开启抢占但加延时,等路由/邻接就绪再接管

  • 强制刷新:发送Gratuitous ARP/NA,快速更新下游缓存

  • 清理围挡:别让 224.0.0.18(VRRP组播) 和 GARP 被 ACL/风暴抑制挡了

  • 架构优选:能上 IRF/VSF/MC-LAG 的地方尽量用,少用 VRRP“漂VIP”

  • 可观测:打点监控+压测演练,算出真实收敛时间

5. 华为(VRP)实战模板(IPv4 示例)

★场景:双核心(主备)为接入网关,要求切换 <300ms,上联链路/出口可达性联动,避免抖动。

5.1 主/备共同基础

# 接口作为网关的三层SVI
interface Vlanif 10
ip address 10.10.10.2 255.255.255.0
#
# VRRP 基本
vrrp vrid 10 virtual-ip 10.10.10.1
#
# 广告周期下到毫秒级(100ms示例)
vrrp vrid 10 timer advertise msec 100
#
# 允许抢占,但延时接管(等路由/BGP/OSPF稳定再上VIP)
vrrp vrid 10 preempt-mode timer delay 5
#
# 发送GARP刷新邻居缓存(有平台默认会发,显式再打开/增强)
vrrp vrid 10 gratuitous-arp enable
#
# (可选)增强发送次数与间隔——不同版本命令略异,可参考:
# arp gratuitous send count 5 interval 200

5.2 主设备(提高优先级)

interface Vlanif 10
vrrp vrid 10 priority 120
# 追踪上联:上联口down则降优先级30,触发切换
vrrp vrid 10 track interface GigabitEthernet1/0/48 reduced 30
# 追踪出口路由可达性(用NQA/BFD)
# --- NQA 探测公网/上游回环IP ---
nqa test-instance icmp vr10-to-upstream
test-type icmp
destination-address 100.64.0.1
frequency 1
timeout 200
start now
# 绑定 track 条目(实际命令随版本可能为 track nqa)
track 10 nqa vr10-to-upstream
#
interface Vlanif 10
vrrp vrid 10 track track-entry 10 reduced 50

5.3 备设备(低优先级)

interface Vlanif 10
vrrp vrid 10 priority 100
# 同样追踪上联与NQA,这样“主/备”都能感知自身可用性
vrrp vrid 10 track interface GigabitEthernet1/0/48 reduced 30
vrrp vrid 10 track track-entry 10 reduced 50

5.4 BFD 快速联动(可替/可并,用于<200ms)

# 与上游邻居建BFD会话(示例语法,实际以现场版本为准)
bfd
quit
# 绑定会话
interface GigabitEthernet1/0/48
bfd enable
bfd min-tx-interval 50
bfd min-rx-interval 50
bfd detect-multiplier 3
#
interface Vlanif 10
vrrp vrid 10 track bfd-session GigabitEthernet1/0/48 reduced 60

★说明:BFD/NQA二选一或并用;并用时优先以更快的触发为准。毫秒级广告+ BFD 双保险,通常能把切换压到 100~300ms。

6. 邻居刷新:别让“已经切”变成“还没通”

  • GARP/NA 必须能跑起来

    • 新 Master 抢到 VIP 后主动发 GARP(IPv6 发无请求 NA),让接入交换机/服务器立刻更新 VIP→新MAC映射。
  • 别被限速/丢弃

    • 检查接入交换机是否对 GARP/组播做了风暴抑制/ACL;
    • 下游服务器/虚机安全策略是否禁止 ARP 响应;
  • 下游老化调优

    • 对关键网段,可适当降低 ARP/MAC 老化时间,配合 GARP 冲刷更快收敛。

7. 验证与打点(别凭感觉)

目标:端到端收敛 <300ms(按你的SLA微调)

    • 观测手段:

      • display vrrp / display vrrp brief 看状态切换时间戳;
      • display vrrp statistics 看收发广告、抢占次数;
      • display bfd session all 看检测时延;
      • display arp dynamic 观察 VIP 的 MAC 是否立刻切到新 Master;

 

    • 在业务端跑持续 ICMP/TCP 探活,记录 RTT/丢包窗口;

    • 设备侧:

  • 演练脚本:

    • 拔/禁上联口、禁上游路由、重启主机进程,各测一次;
    • 记录每次第一包恢复时间稳定时间,存档对比。

8. 常见坑位清单

  • 只改VRRP计时,不做链路/路由联动:出口其实不可达,切过去也“假通”。

  • 开了抢占但不延时:路由/BGP/OSPF还没好就接管,抖动从此伴你。

  • GARP被挡:组播/广播被风暴抑制或ACL限了,“切了但不通”的高发源。

  • 跨L2域过深:VRRP 报文 224.0.0.18 路上被奇怪设备处理,偶发建组异常。

  • 堆叠/IRF场景还用VRRP:本该用同一控制平面,没必要再漂VIP。

  • IPv6 忽视 NA:只顾 ARP,忘了邻居通告,v6 侧还是慢。

9. 什么时候干脆别用 VRRP?

  • 核心/汇聚能上 IRF/VSF/Stack/MC-LAG(多活网关/Anycast GW) 的,优先上;
  • 数据中心里搞 EVPN + Anycast GW,比“漂VIP”更干净、省事、快。

10. 一句话落地

检测要快、联动要准、接管要稳、刷新要狠。

把 Adv 毫秒级 +(BFD/NQA)+ track 上联/路由 + 抢占延时 + GARP 强刷 这套组合拳打全,VRRP 从“几秒挪窝”进化到“百毫秒切换”,不是问题。

阅读剩余
THE END