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

关键词

VRRP Track、上行接口跟踪、联动切换、NQA、BFD、优先级衰减


一、VRRP 的基本困境

1.1 VRRP 只能检测本设备故障

基础 VRRP 只能检测路由器本身是否故障(如整机宕机、VRRP 进程异常)。但上行链路故障时,VRRP 无法感知:

      ┌─── Master ──── 上行链路 ──── Internet
      │   192.168.1.2  (故障!)
      │
PC ───┤
      │
      └─── Backup ──── 上行链路 ──── Internet
          192.168.1.3  (正常)

问题:Master 上行链路断了,但 Master 本身正常
      Backup 收不到故障通知 → 不会切换
      PC 的流量被 Master 接收后无法转发出去 → 断网!

1.2 解决方案:VRRP Track

VRRP Track 检测上行链路或下一跳的可达性,故障时降低本机 VRRP 优先级,让 Backup 接管成为 Master。

Master 上行断了:
  1. Track 检测到上行故障
  2. Master 的 VRRP 优先级降低
  3. Backup 的优先级(原低于 Master)现高于 Master
  4. Backup 抢占成为新的 Master
  5. PC 流量发到 Backup → 通过备份上行链路 → 网络恢复

二、Track 检测方式

检测方式 说明 精度
接口 Track 检测上行接口物理状态 秒级
NQA Track 检测到下一跳的连通性 秒级
BFD Track 双向转发检测 毫秒级

2.1 接口 Track

最简单的 Track——直接检测上行接口是否 Up:

# 检测上行接口 GE0/0/1
interface GigabitEthernet0/0/1
 ip address 10.0.0.1 255.255.255.252

# Track 配置
track 1 interface GigabitEthernet0/0/1
# 当 GE0/0/1 Down 时,Track 状态变为 Negative

# VRRP 联动 Track
interface GigabitEthernet0/0/0
 vrrp vrid 1 virtual-ip 192.168.1.1
 vrrp vrid 1 priority 120
 vrrp vrid 1 track track 1 reduced 30
# 当 Track 变为 Negative → VRRP 优先级减 30 → 变为 90
# Backup 优先级 100 > 90 → Backup 成为 Master

2.2 NQA Track

接口 Track 只能检测直连链路故障。如果中间还有设备,需要用 NQA 检测端到端可达性:

Master ── 上行交换机 ── 出口路由器 ── Internet
         (Track 检测接口)      (实际可达性)
# NQA 测试实例
nqa test-instance admin uplink_health
 test-type icmp
 destination-address ipv4 10.0.0.2      # 检测对端可达性
 frequency 5                              # 每 5 秒检测一次
 probe-count 2
 start now

# Track 关联 NQA
track 2 nqa admin uplink_health

# VRRP 联动 Track
interface GigabitEthernet0/0/0
 vrrp vrid 1 track track 2 reduced 30

2.3 BFD Track

BFD 提供毫秒级检测,适合对切换时间要求高的场景:

# BFD 配置
bfd
interface GigabitEthernet0/0/1
 bfd bind peer-ip 10.0.0.2
 bfd detect-multiplier 3
 bfd min-tx-interval 100
 bfd min-rx-interval 100

# Track 关联 BFD
track 3 bfd-session 1

# VRRP 联动
interface GigabitEthernet0/0/0
 vrrp vrid 1 track track 3 reduced 30

三、完整配置示例

3.1 网络拓扑

                    ┌─── 上行链路 A ──── 出口路由器 A ──── Internet
                    │   10.0.1.0/30
     ┌─── Master ───┤
     │  192.168.1.2 │
PC ──┤              └─── 上行链路 B ──── 出口路由器 B ──── Internet
     │               10.0.2.0/30
     └─── Backup ────┤
        192.168.1.3  │
                    ┌─── 上行链路 A ──── 出口路由器 A
                    └─── 上行链路 B ──── 出口路由器 B

虚拟网关:192.168.1.1

3.2 Master 配置

# ===== Master 路由器 =====
# 下行接口(连接 PC 侧)
interface GigabitEthernet0/0/0
 ip address 192.168.1.2 255.255.255.0
 vrrp vrid 1 virtual-ip 192.168.1.1
 vrrp vrid 1 priority 120
 vrrp vrid 1 preempt-mode timer delay 10

# 上行接口 A
interface GigabitEthernet0/0/1
 ip address 10.0.1.1 255.255.255.252

# 上行接口 B
interface GigabitEthernet0/0/2
 ip address 10.0.2.1 255.255.255.252

# Track 上行接口 A
track 1 interface GigabitEthernet0/0/1
track 2 interface GigabitEthernet0/0/2

# 两个上行都故障才切换(任意一个 Up 就保持 Master)
vrrp vrid 1 track track 1 reduced 30
vrrp vrid 1 track track 2 reduced 30
# 两个 Track 都 Down → 优先级减 60 → 100 - 60 = 60
# Backup 优先级 100 > 60 → Backup 接管

3.3 Backup 配置

# ===== Backup 路由器 =====
# 下行接口
interface GigabitEthernet0/0/0
 ip address 192.168.1.3 255.255.255.0
 vrrp vrid 1 virtual-ip 192.168.1.1
 # 优先级默认 100

# 上行配置同 Master
interface GigabitEthernet0/0/1
 ip address 10.0.1.2 255.255.255.252
interface GigabitEthernet0/0/2
 ip address 10.0.2.2 255.255.255.252

track 1 interface GigabitEthernet0/0/1
track 2 interface GigabitEthernet0/0/2

vrrp vrid 1 track track 1 reduced 30
vrrp vrid 1 track track 2 reduced 30
# Backup 下行故障也会降优先级(避免流量黑洞)

四、Track 的多种应用场景

4.1 多上行链路的优先级衰减值

# 更精细的衰减设计
track 1 interface GigabitEthernet0/0/1   # 主上行
track 2 interface GigabitEthernet0/0/2   # 次上行

vrrp vrid 1 track track 1 reduced 40    # 主上行断了 → 减 40
vrrp vrid 1 track track 2 reduced 20    # 次上行断了 → 减 20
状态 优先级 角色
双上行正常 120 Master
次上行断 100 (= Backup) 需看 Backup 是否也 Track 了
主上行断 80 < 100 Backup 接管
双上行断 60 < 100 Backup 接管

4.2 Track 与浮动路由配合

# 浮动静态路由 + Track
ip route-static 0.0.0.0 0.0.0.0 10.0.1.2 track 1
ip route-static 0.0.0.0 0.0.0.0 10.0.2.2 preference 100

五、排错

# 查看 Track 状态
display track all
-----------------------------------------------
Track ID: 1
  Object: Interface GigabitEthernet0/0/1
  State: Positive    ← 接口正常
  Duration: 0d 12h

Track ID: 2
  Object: Interface GigabitEthernet0/0/2
  State: Negative    ← 接口故障
  Duration: 0d 0h 5m

# 查看 VRRP 当前优先级
display vrrp brief
-----------------------------------------------
Interface   VRID  State      Priority  Master IP
GE0/0/0     1     Backup     90        192.168.1.3

六、最佳实践

建议 说明
检测上行链路而非下行 Track 上行接口/下一跳,确保出方向可达
主备都配置 Track 防止备机接管后上行也是坏的(双保险)
设置抢占延迟 避免链路抖动导致频繁切换(建议 10-30 秒)
NQA 检测端到端 接口 Track 只能检测直连链路
BFD 用于毫秒级需求 关键业务需要 50ms 切换时使用 BFD

七、总结

知识点 核心要点
Track 作用 检测上行链路/下一跳可达性
VRRP + Track 故障时降低优先级,触发主备切换
检测方式 接口(物理)、NQA(端到端)、BFD(毫秒级)
衰减值 故障时优先级减少的值,决定切换触发条件
主备双 Track 防止备机接管后也无法转发

八、思考

  1. 为什么基础 VRRP 不能检测上行链路故障?
  2. 接口 Track 和 NQA Track 的区别是什么?
  3. 如果 Master 和 Backup 都 Track 了上行,但只有 Master 上行断了,切换流程是怎样的?
  4. 多个 Track 的衰减值如何叠加?
  5. 为什么要设置抢占延迟?

下篇预告:第120篇《堆叠与 VRRP 结合的高可用方案》——讲解交换机堆叠(iStack/Cluster)与 VRRP 结合部署的架构设计,实现设备级和链路级的双重高可用。