第118篇:VRRP 虚拟路由冗余协议:主备切换

关键词:VRRP、虚拟路由器、主备切换、VRID、Master、Backup、优先级、抢占模式、默认网关冗余


一、引言

在前几篇中,我们系统学习了 IPv6 的邻居发现、地址配置、路由协议和过渡技术。现在回到园区网高可用架构,学习默认网关冗余方案。

在典型的园区网中,接入层终端的默认网关通常配置在汇聚层或核心层交换机的 VRF 接口(VLANIF)上。如果该网关设备故障,终端将失去通往外部网络的路径,导致业务中断。

VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)通过将多台物理路由器虚拟为一台虚拟路由器,实现默认网关的冗余和故障自动切换。

二、核心概念

2.1 VRRP 基本架构

VRRP 基本架构 - 图示

2.2 VRRP 关键概念

概念 说明
VRID(Virtual Router ID) 虚拟路由器标识,取值 1-255,同一 VRRP 组的成员必须配置相同的 VRID
Master 当前活跃的成员路由器,负责转发发送给虚拟 IP 的报文
Backup 备份路由器,监听 Master 的通告,Master 故障时选举新的 Master
虚拟 IP(Virtual IP) 终端配置的默认网关地址,由 Master 负责响应
虚拟 MAC 格式为 0000-5E00-01XX(XX = VRID),Master 负责响应
优先级(Priority) 取值 1-254,值越大优先级越高,默认 100
抢占模式(Preempt) 高优先级路由器恢复后是否抢占 Master 角色

2.3 VRRP 状态机

VRRP 状态机 - 图示

2.4 VRRP 通告机制

参数 默认值 说明
通告间隔(Advert Interval) 1 秒 Master 发送通告的时间间隔
通告超时(Master_Down_Timer) 3 × 间隔 + 2 秒 Backup 判断 Master 故障的时间
抢占延迟(Preempt Delay) 200 秒 抢占模式下的延迟抢占时间

三、技术细节

3.1 VRRP 选举过程

VRRP 选举过程 - 图示

3.2 VRRP 报文格式

字段 长度 说明
Version 1 字节 VRRP 版本(v2=2, v3=3)
Type 1 字节 报文类型(1=通告)
VRID 1 字节 虚拟路由器 ID
Priority 1 字节 优先级
Auth Type 1 字节 认证类型(VRRPv3 已废弃认证字段)
Advert Int 1 字节 通告间隔

3.3 VRRPv2 与 VRRPv3 的区别

对比项 VRRPv2 VRRPv3
支持协议 仅 IPv4 IPv4 + IPv6
组播地址 224.0.0.18 IPv4: 224.0.0.18, IPv6: FF02::12
认证 支持明文认证 废弃认证(推荐 IPsec)
虚拟 IP 数量 1 个 支持多个虚拟 IP
IPv6 支持 不支持 原生支持

3.4 VRRP 跟踪机制

VRRP 可以通过跟踪对象的状态来动态调整优先级,实现更智能的主备切换:

跟踪对象 说明
上行接口 跟踪上行接口状态,接口 Down 时降低优先级
BFD 会话 跟踪 BFD 会话状态,实现毫秒级故障检测
NQA 探针 跟踪 NQA 探测结果,检测端到端连通性

四、实战配置/案例分析

4.1 VRRP 基础配置

# ========== 路由器 A(Master,优先级 120) ==========

# 1. 配置 VLANIF 接口和虚拟 IP
[HUAWEI] interface Vlanif 10
[HUAWEI-Vlanif10] ip address 10.10.10.1 255.255.255.0
[HUAWEI-Vlanif10] vrrp vrid 1 virtual-ip 10.10.10.254
[HUAWEI-Vlanif10] vrrp vrid 1 priority 120
[HUAWEI-Vlanif10] vrrp vrid 1 preempt timer delay 200
[HUAWEI-Vlanif10] quit

# ========== 路由器 B(Backup,优先级 100) ==========
[HUAWEI] interface Vlanif 10
[HUAWEI-Vlanif10] ip address 10.10.10.2 255.255.255.0
[HUAWEI-Vlanif10] vrrp vrid 1 virtual-ip 10.10.10.254
[HUAWEI-Vlanif10] vrrp vrid 1 priority 100
[HUAWEI-Vlanif10] vrrp vrid 1 preempt timer delay 200
[HUAWEI-Vlanif10] quit

# ========== 验证 ==========
[HUAWEI] display vrrp brief
[HUAWEI] display vrrp verbose

4.2 VRRP 双主配置(负载均衡)

# ========== 路由器 A(VRID 1 的 Master,VRID 2 的 Backup) ==========
[HUAWEI] interface Vlanif 10
[HUAWEI-Vlanif10] ip address 10.10.10.1 255.255.255.0
# VRID 1:Master
[HUAWEI-Vlanif10] vrrp vrid 1 virtual-ip 10.10.10.253
[HUAWEI-Vlanif10] vrrp vrid 1 priority 120
# VRID 2:Backup
[HUAWEI-Vlanif10] vrrp vrid 2 virtual-ip 10.10.10.254
[HUAWEI-Vlanif10] vrrp vrid 2 priority 100
[HUAWEI-Vlanif10] quit

# ========== 路由器 B(VRID 1 的 Backup,VRID 2 的 Master) ==========
[HUAWEI] interface Vlanif 10
[HUAWEI-Vlanif10] ip address 10.10.10.2 255.255.255.0
# VRID 1:Backup
[HUAWEI-Vlanif10] vrrp vrid 1 virtual-ip 10.10.10.253
[HUAWEI-Vlanif10] vrrp vrid 1 priority 100
# VRID 2:Master
[HUAWEI-Vlanif10] vrrp vrid 2 virtual-ip 10.10.10.254
[HUAWEI-Vlanif10] vrrp vrid 2 priority 120
[HUAWEI-Vlanif10] quit

4.3 VRRP + IPv6 配置

# ========== VRRPv3 IPv6 配置 ==========
[HUAWEI] interface Vlanif 10
[HUAWEI-Vlanif10] ipv6 enable
[HUAWEI-Vlanif10] ipv6 address 2001:db8:1::1/64
[HUAWEI-Vlanif10] vrrp vrid 1 virtual-ip 2001:db8:1::254
[HUAWEI-Vlanif10] vrrp vrid 1 priority 120
[HUAWEI-Vlanif10] quit

# ========== 验证 ==========
[HUAWEI] display vrrp brief
[HUAWEI] display ipv6 interface Vlanif 10

4.4 故障案例:VRRP 脑裂(Split-Brain)

场景描述:两台 VRRP 路由器同时认为自己是对端,两台都是 Master 状态。终端通信出现时断时续,ARP 表频繁变化。

排查过程:

  1. 检查 VRRP 状态:
[RTR-A] display vrrp brief
# VRID 1, State: Master, Priority: 120

[RTR-B] display vrrp brief
# VRID 1, State: Master, Priority: 120
# 两台路由器同时为 Master!
  1. 检查 VRRP 统计:
[RTR-B] display vrrp statistics
# 收到的通告报文数为 0
# RTR-B 从未收到 RTR-A 的 VRRP 通告
  1. 根因确认:两台路由器之间的二层链路故障,导致 VRRP 组播报文(224.0.0.18)无法到达对端。双方都因为 Master_Down_Timer 超时而将自己选举为 Master。

处理措施:

# 第一步:修复二层链路
# 检查交换机配置和物理链路

# 第二步:恢复后,高优先级的 RTR-A 抢占回 Master
# RTR-B 自动进入 Backup 状态

# 第三步:配置 BFD 快速检测
[HUAWEI] bfd
[HUAWEI-bfd] quit

[HUAWEI] interface Vlanif 10
[HUAWEI-Vlanif10] vrrp vrid 1 track bfd-session 1 reduced 40
[HUAWEI-Vlanif10] quit

4.5 故障案例:VRRP 抢占导致业务震荡

场景描述:路由器 A 重启后,每次 VRRP 状态切换时,终端都会出现约 30 秒的网络中断。

排查过程:

  1. 检查 VRRP 日志:
[RTR-A] display logfile | include VRRP
# 路由器 A 重启后,延迟 200 秒后抢占 Master
# 抢占期间,报文从 RTR-B 切换到 RTR-A,导致路由震荡
  1. 根因分析:抢占延迟(Preempt Delay)设置为 200 秒,等待时间过长。且在抢占期间,路由表尚未完全收敛,导致部分报文丢失。

处理措施:

# 方案一:缩短抢占延迟
[HUAWEI] interface Vlanif 10
[HUAWEI-Vlanif10] vrrp vrid 1 preempt timer delay 10
# 从 200 秒缩短到 10 秒

# 方案二:关闭抢占模式(不推荐,可能导致次优路径)
[HUAWEI-Vlanif10] undo vrrp vrid 1 preempt

# 方案三:配置 NQA 跟踪,确保路由收敛后再抢占
[HUAWEI] nqa test-instance mytest 1
[HUAWEI-nqa-mytest-1] type icmp-reply
[HUAWEI-nqa-mytest-1-icmp-reply] destination-address ipv4 10.10.10.254
[HUAWEI-nqa-mytest-1-icmp-reply] frequency 3
[HUAWEI-nqa-mytest-1-icmp-reply] probe count 3
[HUAWEI-nqa-mytest-1-icmp-reply] commit
[HUAWEI-nqa-mytest-1-icmp-reply] quit

[HUAWEI] interface Vlanif 10
[HUAWEI-Vlanif10] vrrp vrid 1 track nqa mytest 1 ipv4 reacted-timeup reduced 40 timedown 3

五、总结

项目 说明
VRRP 本质 将多台物理路由器虚拟为一台,实现默认网关冗余
Master/Backup 优先级决定主备角色,Master 负责转发
虚拟 IP/MAC 终端配置虚拟 IP 作为默认网关
抢占模式 高优先级恢复后自动抢占 Master 角色
双主问题 链路故障导致双方收不到通告,同时成为 Master
华为推荐 VRRPv3 + 抢占延迟 + BFD 快速检测 + 合理优先级设置

思考

  1. VRRP 的 Master_Down_Timer 为 3 倍通告间隔 + 2 秒。如果将通告间隔缩短为 0.5 秒,对网络有什么影响?

  2. VRRP 双主配置(两个 VRID)实现了负载均衡,但如果一台路由器故障,另一台需要接管所有流量。这种情况下如何确保单机带宽足够?

  3. VRRP 只提供了默认网关层面的冗余。如果上行链路故障但路由器本身正常,终端流量仍然会发送到故障路由器的 VRRP 虚拟 IP。如何解决这个问题?

下篇预告:第119篇:VRRP 跟踪上行接口实现联动切换