第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 | 防止备机接管后也无法转发 |
八、思考
- 为什么基础 VRRP 不能检测上行链路故障?
- 接口 Track 和 NQA Track 的区别是什么?
- 如果 Master 和 Backup 都 Track 了上行,但只有 Master 上行断了,切换流程是怎样的?
- 多个 Track 的衰减值如何叠加?
- 为什么要设置抢占延迟?
下篇预告:第120篇《堆叠与 VRRP 结合的高可用方案》——讲解交换机堆叠(iStack/Cluster)与 VRRP 结合部署的架构设计,实现设备级和链路级的双重高可用。