摘要:vrrp 默认就能用,但想把主备切换做到“毫秒级”,绝不是把几条命令往上一贴那么简单。很多现场“慢切”问题,其实卡在检测不够快、联动不够全、邻居缓存没刷新这三件事。
号主:老杨丨11年资深网络工程师,更多网工提升干货,
vrrp 默认就能用,但想把主备切换做到“毫秒级”,绝不是把几条命令往上一贴那么简单。很多现场“慢切”问题,其实卡在检测不够快、联动不够全、邻居缓存没刷新这三件事。
下面我把思路、原理、模板、验证一股脑给你,照着抄就能落地。
现象:上联断了,或者主设备重启,VIP 切过去要 3~10 秒,期间业务断续。
常见误判:
“VRRP就是这么慢”——不对,默认慢,可调到亚秒级。“切过去了但还不通”——多半是下游 ARP/MAC 缓存没刷新,或者上游路由没联动。“接口都UP”——链路物理好不代表上行路由/出口可达。VRRP Master Down 的检测时间由广告报文间隔决定:
Master_Down_Interval = 3 × Adv_Interval + Skew_Time(Skew 随优先级略微调整)默认 Adv_Interval=1s → 大约 3s+ 才感知主挂了想更快,就两条路:
把 Adv_Interval 拉到毫秒级;用 bfd/nqa 做外部探测,一丢就立刻降优先级/切换。故障检测:你多久意识到“主不行了”?(Adv、BFD、NQA)
角色切换:备能不能马上抢到 VIP?(抢占/延时)
邻居刷新:周边设备多久知道“VIP 换 MAC 了”?(GARP/NA 刷新、广播抑制)
上行联动:切过去那台真的有上行/路由吗?(track 接口/路由/探测)
检测提速:Adv 毫秒级 + BFD/NQA 旁路探测
联动到位:track 上联接口/静态路由/探测会话,降优先级切换
控制抢占:开启抢占但加延时,等路由/邻接就绪再接管
强制刷新:发送Gratuitous ARP/NA,快速更新下游缓存
清理围挡:别让 224.0.0.18(VRRP组播) 和 GARP 被 ACL/风暴抑制挡了
架构优选:能上 IRF/VSF/MC-LAG 的地方尽量用,少用 VRRP“漂VIP”
可观测:打点监控+压测演练,算出真实收敛时间
# 接口作为网关的三层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
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
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
# 与上游邻居建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
GARP/NA 必须能跑起来:
新 Master 抢到 VIP 后主动发 GARP(IPv6 发无请求 NA),让接入交换机/服务器立刻更新 VIP→新MAC映射。别被限速/丢弃:
检查接入交换机是否对 GARP/组播做了风暴抑制/ACL;下游服务器/虚机安全策略是否禁止 ARP 响应;下游老化调优:
对关键网段,可适当降低 ARP/MAC 老化时间,配合 GARP 冲刷更快收敛。目标:端到端收敛 (按你的SLA微调)
观测手段:
display vrrp / display vrrp brief 看状态切换时间戳;display vrrp statistics 看收发广告、抢占次数;display bfd session all 看检测时延;display arp dynamic 观察 VIP 的 MAC 是否立刻切到新 Master;在业务端跑持续 ICMP/TCP 探活,记录 RTT/丢包窗口;
设备侧:
演练脚本:
拔/禁上联口、禁上游路由、重启主机进程,各测一次;记录每次第一包恢复时间与稳定时间,存档对比。只改VRRP计时,不做链路/路由联动:出口其实不可达,切过去也“假通”。
开了抢占但不延时:路由/BGP/OSPF还没好就接管,抖动从此伴你。
GARP被挡:组播/广播被风暴抑制或ACL限了,“切了但不通”的高发源。
跨L2域过深:VRRP 报文 224.0.0.18 路上被奇怪设备处理,偶发建组异常。
堆叠/IRF场景还用VRRP:本该用同一控制平面,没必要再漂VIP。
IPv6 忽视 NA:只顾 ARP,忘了邻居通告,v6 侧还是慢。
检测要快、联动要准、接管要稳、刷新要狠。
把 Adv 毫秒级 +(BFD/NQA)+ track 上联/路由 + 抢占延时 + GARP 强刷 这套组合拳打全,VRRP 从“几秒挪窝”进化到“百毫秒切换”,不是问题。
来源:网络工程师俱乐部一点号