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

关键词:VRRP 跟踪、Interface Track、BFD 跟踪、NQA 跟踪、优先级降低、上行链路故障、联动切换


一、引言

在前一篇第118篇中,我们学习了 VRRP 的基本原理和主备切换机制。然而,VRRP 默认只检测路由器自身的存活状态。如果 Master 路由器的上行接口故障(如连接核心层的链路 Down),路由器本身仍然正常运行,VRRP 不会发生切换。此时终端的流量仍然发送到 Master,但 Master 的上行链路已经不通,导致业务中断。

VRRP 跟踪机制解决了这个问题:通过跟踪上行接口状态、BFD 会话或 NQA 探测结果,当跟踪对象故障时自动降低 VRRP 优先级,触发主备切换。

二、核心概念

2.1 VRRP 跟踪机制分类

跟踪类型 检测粒度 检测速度 配置复杂度
接口跟踪 接口物理状态(Up/Down) 毫秒级 简单
BFD 跟踪 端到端连通性 毫秒级(3×10ms = 30ms) 中等
NQA 跟踪 端到端应用层连通性 秒级 复杂

2.2 VRRP 跟踪原理

VRRP 跟踪原理 - 图示

2.3 优先级调整机制

状态 操作 说明
跟踪对象 Up 恢复原始优先级 跟踪对象恢复正常,优先级恢复
跟踪对象 Down 优先级 -= Reduced 值 优先级降低,可能失去 Master 角色
优先级降至 ≤ 100 触发切换 如果 Backup 优先级 > 当前优先级,发生切换

2.4 不同跟踪方式的对比

不同跟踪方式的对比 - 图示

三、技术细节

3.1 接口跟踪(Interface Track)

接口跟踪是最简单的跟踪方式,直接监控指定接口的物理状态。当被跟踪接口 Down 时,VRRP 优先级自动降低。

参数 说明
被跟踪接口 上行接口,如 GigabitEthernet0/0/1
Reduced 值 接口 Down 时优先级降低的值
恢复时间 接口 Up 后优先级立即恢复

3.2 BFD 跟踪

BFD(Bidirectional Forwarding Detection)提供毫秒级的连通性检测。VRRP 可以跟踪 BFD 会话的状态,实现快速故障检测。

参数 默认值 说明
发送间隔 10ms 最小 10ms
接收间隔 10ms 最小 10ms
检测倍数 3 连续 3 次未收到 BFD 报文判定为 Down
检测时间 30ms 3 × 10ms

3.3 NQA 跟踪

NQA(Network Quality Analysis)提供应用层连通性检测。VRRP 可以跟踪 NQA 探针的结果,实现基于业务可达性的主备切换。

参数 说明
测试类型 ICMP-Echo、TCP、HTTP 等
探测频率 每次探测的时间间隔
探测次数 连续失败次数达到阈值后判定为 Down
反应时间 Down/Up 的反应延迟

四、实战配置/案例分析

4.1 VRRP 接口跟踪配置

# ========== 路由器 A(Master,跟踪上行接口) ==========

# 1. 配置 VRRP 和接口跟踪
[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
# 跟踪上行接口 GE0/0/1,Down 时优先级降低 30
[HUAWEI-Vlanif10] vrrp vrid 1 track interface GigabitEthernet 0/0/1 reduced 30
[HUAWEI-Vlanif10] quit

# ========== 路由器 B(Backup) ==========
[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
# Backup 也配置跟踪,防止自身上行故障
[HUAWEI-Vlanif10] vrrp vrid 1 track interface GigabitEthernet 0/0/1 reduced 30
[HUAWEI-Vlanif10] quit

# ========== 验证 ==========
[HUAWEI] display vrrp verbose
# 查看跟踪接口状态和当前优先级

4.2 VRRP + BFD 跟踪配置

# ========== BFD 单跳会话配置 ==========

# 路由器 A 配置
[HUAWEI] bfd
[HUAWEI-bfd] quit

[HUAWEI] interface GigabitEthernet 0/0/1
[HUAWEI-GigabitEthernet0/0/1] bfd 1 min-rx 10 min-tx 10 multiplier 3
[HUAWEI-GigabitEthernet0/0/1] quit

# 路由器 B 配置
[HUAWEI] bfd
[HUAWEI-bfd] quit

[HUAWEI] interface GigabitEthernet 0/0/1
[HUAWEI-GigabitEthernet0/0/1] bfd 1 min-rx 10 min-tx 10 multiplier 3
[HUAWEI-GigabitEthernet0/0/1] quit

# ========== VRRP 跟踪 BFD ==========

# 路由器 A
[HUAWEI] interface Vlanif 10
[HUAWEI-Vlanif10] vrrp vrid 1 track bfd-session 1 reduced 40
[HUAWEI-Vlanif10] quit

# 路由器 B
[HUAWEI] interface Vlanif 10
[HUAWEI-Vlanif10] vrrp vrid 1 track bfd-session 1 reduced 40
[HUAWEI-Vlanif10] quit

# ========== 验证 ==========
[HUAWEI] display bfd session
[HUAWEI] display vrrp verbose

4.3 VRRP + NQA 跟踪配置

# ========== NQA 探针配置 ==========

# 路由器 A 配置 NQA 探针(探测核心路由器可达性)
[HUAWEI] nqa test-instance core-check 1
[HUAWEI-nqa-core-check-1] type icmp-reply
[HUAWEI-nqa-core-check-1] destination-address ipv4 10.1.1.1
[HUAWEI-nqa-core-check-1] frequency 3
[HUAWEI-nqa-core-check-1] probe count 3
[HUAWEI-nqa-core-check-1] timeout 2
[HUAWEI-nqa-core-check-1] commit
[HUAWEI-nqa-core-check-1] quit

# ========== VRRP 跟踪 NQA ==========
[HUAWEI] interface Vlanif 10
[HUAWEI-Vlanif10] vrrp vrid 1 track nqa core-check 1 ipv4 reacted-timeup reduced 40 timedown 3
[HUAWEI-Vlanif10] quit

# ========== 验证 ==========
[HUAWEI] display nqa test-instance core-check 1 results
[HUAWEI] display vrrp verbose

4.4 故障案例:上行接口 Down 但 VRRP 不切换

场景描述:Master 路由器 A 的上行接口故障,终端仍然将流量发送到路由器 A,导致全网无法访问互联网。

排查过程:

  1. 检查 VRRP 状态:
[RTR-A] display vrrp brief
# VRID 1, State: Master, Priority: 120
# 路由器 A 仍然是 Master

[RTR-B] display vrrp brief
# VRID 1, State: Backup, Priority: 100
# 路由器 B 仍然是 Backup
  1. 检查 VRRP 跟踪配置:
[RTR-A] display current-configuration interface Vlanif 10
# 未配置 VRRP 跟踪!
# vrrp vrid 1 priority 120
# 没有 track 命令
  1. 根因确认:VRRP 未配置跟踪机制。当上行接口故障时,VRRP 只检测自身存活状态,不检测上行链路状态。路由器 A 本身仍然正常运行,不会降低优先级,因此不会触发切换。

处理措施:

# 紧急切换:手动降低路由器 A 的优先级
[RTR-A] interface Vlanif 10
[RTR-A-Vlanif10] vrrp vrid 1 priority 80
# 优先级 80 < 100,路由器 B 抢占为 Master

# 永久修复:配置 VRRP 接口跟踪
[RTR-A] interface Vlanif 10
[RTR-A-Vlanif10] vrrp vrid 1 priority 120
[RTR-A-Vlanif10] vrrp vrid 1 track interface GigabitEthernet 0/0/1 reduced 30
[RTR-A-Vlanif10] quit

# 同样在路由器 B 上配置
[RTR-B] interface Vlanif 10
[RTR-B-Vlanif10] vrrp vrid 1 track interface GigabitEthernet 0/0/1 reduced 30
[RTR-B-Vlanif10] quit

4.5 故障案例:BFD 会话震荡导致 VRRP 频繁切换

场景描述:部署 BFD 跟踪后,VRRP 频繁在主备之间切换,终端网络时断时续。

排查过程:

  1. 检查 BFD 会话状态:
[RTR-A] display bfd session all
# BFD 会话频繁 Up/Down
# Last change: 2 seconds ago
  1. 检查 VRRP 日志:
[RTR-A] display logfile | include VRRP
# 频繁记录优先级变更和状态切换
  1. 根因分析:上行链路存在间歇性丢包,导致 BFD 检测超时。BFD 检测间隔配置为 10ms,检测倍数为 3,总检测时间为 30ms。链路抖动超过 30ms 就会触发 BFD 会话 Down,进而触发 VRRP 切换。

处理措施:

# 方案一:调整 BFD 参数,增加容错时间
[RTR-A] interface GigabitEthernet 0/0/1
[RTR-A-GigabitEthernet0/0/1] bfd 1 min-rx 100 min-tx 100 multiplier 5
# 检测时间:5 × 100ms = 500ms,容忍短时抖动
[RTR-A-GigabitEthernet0/0/1] quit

# 方案二:使用 NQA 跟踪代替 BFD 跟踪
# NQA 虽然检测速度慢,但更稳定,不受链路抖动影响
[RTR-A] nqa test-instance core-check 1
[RTR-A-nqa-core-check-1] type icmp-reply
[RTR-A-nqa-core-check-1] destination-address ipv4 10.1.1.1
[RTR-A-nqa-core-check-1] frequency 3
[RTR-A-nqa-core-check-1] probe count 5
[RTR-A-nqa-core-check-1] timeout 3
[RTR-A-nqa-core-check-1] commit
[RTR-A-nqa-core-check-1] quit

[RTR-A] interface Vlanif 10
[RTR-A-Vlanif10] undo vrrp vrid 1 track bfd-session 1
[RTR-A-Vlanif10] vrrp vrid 1 track nqa core-check 1 ipv4 reacted-timeup reduced 40 timedown 5

五、总结

项目 说明
VRRP 跟踪本质 监控外部对象状态,联动调整 VRRP 优先级
接口跟踪 最简单,检测接口物理状态
BFD 跟踪 毫秒级检测,适合高可用要求
NQA 跟踪 应用层检测,适合业务可达性跟踪
Reduced 值 跟踪对象 Down 时优先级降低的值,需合理设置
华为推荐 接口跟踪 + BFD 跟踪组合使用,兼顾速度和可靠性

思考

  1. 如果 VRRP 的 Reduced 值设置过大(如 100),可能导致什么问题?如果设置过小(如 1)呢?

  2. BFD 跟踪和接口跟踪可以同时配置吗?如果同时配置,优先级降低是叠加的吗?

  3. NQA 跟踪的 timedown 参数表示连续失败多少次后判定为 Down。如果将其设置为 1,检测速度会加快,但会带来什么问题?

下篇预告:第120篇:堆叠与 VRRP 结合的高可用方案