第30篇:浮动静态路由:主备路径的最佳方案

关键词:浮动静态路由、路由备份、优先级、自动切换、主备路径


一、引言

在企业网络中,链路备份是提高网络可靠性的基础手段。浮动静态路由(Floating Static Route)通过配置不同优先级的静态路由,实现主备路径的自动切换:主路径正常时,主路由生效;主路径失效时,备份路由自动生效;主路径恢复后,自动切回主路径。这是最简单的链路备份方案,无需部署复杂的动态路由协议。

二、核心概念

2.1 浮动静态路由原理

浮动静态路由的本质是利用路由优先级的差异,让主备路由在路由表中形成"一主一备"的关系:

路由类型 优先级(Pre 数值) 路由表状态 说明
主路由 数值较小(如 60) Active(生效) 优先级数值小=优先级高,进入路由表并参与转发
备路由 数值较大(如 80) Inactive(不生效) 优先级数值大=优先级低,未进入路由表(display 看不到),仅存在于配置

主路由失效(下一跳不可达或出接口 Down)时,备路由自动进入路由表变为 Active。

2.2 主备路由 vs 等价负载分担

维度 浮动静态路由(主备) 等价静态路由(负载分担)
优先级 不同 相同
开销值 可不同 相同
路由表状态 1 个 Active,1 个 Inactive 全部 Active
资源利用 主备链路只有一条承载流量 多条链路分担流量
故障切换 主链路失效后切换 某条链路失效后迁移流量

2.3 适用场景

场景 说明
双 WAN 链路备份 主 ISP + 备 ISP
链路级备份 骨干链路 + 备份链路
低成本高可用 替代负载均衡设备的轻量方案
分支到总部 分支机构到总部的双上行

三、技术细节

3.1 主备路由的配置方法

# 主路由:优先级数值较小(60 < 80,更优)→ 优先生效
[HUAWEI] ip route-static 0.0.0.0 0 203.0.113.1 preference 60

# 备路由:优先级数值较大(80,较弱)→ 主路由失效时才生效
[HUAWEI] ip route-static 0.0.0.0 0 198.51.100.1 preference 80

# 查看路由表
<HUAWEI> display ip routing-table
Destination/Mask    Proto  Pre  Cost      NextHop         Interface
0.0.0.0/0           Static 60   0         203.0.113.1     GE0/0/1    ← 主路由生效
# 备路由未显示(处于 Inactive 状态)

3.2 故障切换过程

故障切换过程 - 图示

3.3 链路状态联动

默认情况下,静态路由的失效判断依赖于路由表递归(下一跳不可达)。使用接口联动(Track)或 BFD/NQA 可实现更精细的故障检测。

# 配置 Track
[HUAWEI] track 1 interface GigabitEthernet 0/0/1

# 配置联动 Track 的浮动静态路由
[HUAWEI] ip route-static 0.0.0.0 0 203.0.113.1 track 1 preference 60
[HUAWEI] ip route-static 0.0.0.0 0 198.51.100.1 preference 80

# 当 GE0/0/1 接口 DOWN 时,主路由立即失效,不再等待 ARP 超时

3.4 BFD 联动故障检测

使用 BFD(Bidirectional Forwarding Detection)实现毫秒级故障检测:

# 配置 BFD 会话(需对端支持 BFD)
[HUAWEI] bfd
[HUAWEI-bfd] quit

[HUAWEI] bfd atob bind peer-ip 203.0.113.1 interface GigabitEthernet 0/0/1
[HUAWEI-bfd-session-atob] discriminator local 10
[HUAWEI-bfd-session-atob] discriminator remote 20
[HUAWEI-bfd-session-atob] commit
[HUAWEI-bfd-session-atob] quit

# 主路由联动 BFD 会话(引用上面创建的会话名 atob)
[HUAWEI] ip route-static 0.0.0.0 0 203.0.113.1 track bfd-session atob preference 60
[HUAWEI] ip route-static 0.0.0.0 0 198.51.100.1 preference 80

# BFD 检测到故障后 → 接口路由可达性 DOWN → 主路由切换到备路由

注意:华为 BFD 配置命令格式因 VRP 版本而异;上例为常用配置思路,实际部署请参考具体设备版本文档。

四、实战配置/案例分析

4.1 案例一:双 WAN 路由备份

网络拓扑:

案例一:双 WAN 路由备份 - 图示

路由器配置:

# 接口配置
[R] interface GigabitEthernet 0/0/0
[R-GigabitEthernet0/0/0] ip address 192.168.10.1 24

[R] interface GigabitEthernet 0/0/1
[R-GigabitEthernet0/0/1] ip address 203.0.113.2 30

[R] interface GigabitEthernet 0/0/2
[R-GigabitEthernet0/0/2] ip address 198.51.100.2 30

# 主路由(优先级 60)
[R] ip route-static 0.0.0.0 0 203.0.113.1 preference 60

# 备路由(优先级 80)
[R] ip route-static 0.0.0.0 0 198.51.100.1 preference 80

# 验证主路由生效
<R> display ip routing-table 0.0.0.0 0
Destination/Mask    Proto  Pre  Cost      NextHop         Interface
0.0.0.0/0           Static 60   0         203.0.113.1     GE0/0/1
# 备路由未显示,处于 Inactive 状态

模拟主备切换:

# 模拟主链路接口 Down
[R] interface GigabitEthernet 0/0/1
[R-GigabitEthernet0/0/1] shutdown
[R-GigabitEthernet0/0/1] quit

# 验证备路由生效
<R> display ip routing-table 0.0.0.0 0
Destination/Mask    Proto  Pre  Cost      NextHop         Interface
0.0.0.0/0           Static 80   0         198.51.100.1    GE0/0/2  ← 备路由生效

# 恢复主链路
[R] interface GigabitEthernet 0/0/1
[R-GigabitEthernet0/0/1] undo shutdown
[R-GigabitEthernet0/0/1] quit

# 验证主路由恢复
<R> display ip routing-table 0.0.0.0 0
Destination/Mask    Proto  Pre  Cost      NextHop         Interface
0.0.0.0/0           Static 60   0         203.0.113.1     GE0/0/1  ← 切回主路由

4.2 案例二:NQA 联动检测 ISP 真实可达性

当 ISP 主干线路接口 UP 但实际不可达(如 ISP 内部故障)时,仅靠接口联动无法检测到,需使用 NQA(Network Quality Analysis)联动。

# 配置 NQA ICMP 测试
[R] nqa test-instance test1 icmp
[R-nqa-test1-icmp] destination-address ipv4 8.8.8.8
[R-nqa-test1-icmp] probe-count 3
[R-nqa-test1-icmp] interval seconds 3
[R-nqa-test1-icmp] timeout 4
[R-nqa-test1-icmp] frequency 15
[R-nqa-test1-icmp] start now
[R-nqa-test1-icmp] commit
[R-nqa-test1-icmp] quit
# 注意:frequency 需满足 frequency > (probe-count - 1) * interval + timeout + 1
#       本例:(3-1)*3 + 4 + 1 = 11,frequency=15 > 11 满足要求
#       若 frequency 过小,NQA 结果一直为 no result(只有 fail 才触发联动),路由不会切换

# 配置 Track 联动 NQA
[R] track 1 nqa test-instance test1 icmp reachability

# 主路由联动 NQA
[R] ip route-static 0.0.0.0 0 203.0.113.1 track 1 preference 60
[R] ip route-static 0.0.0.0 0 198.51.100.1 preference 80

# 当 NQA 判定链路不可达时,主路由被置为非激活(从路由表删除),备路由生效

注意:上述 NQA 命令格式在部分 VRP 版本中可能略有差异;实际部署前请参考对应设备版本的产品文档。

4.3 案例三:主备优先级配置错误导致主备反转

故障现象:部署浮动静态路由后,备份链路成为主用链路,主链路成为备份。

# 查看路由表
<R> display ip routing-table 0.0.0.0 0
Destination/Mask    Proto  Pre  Cost      NextHop         Interface
0.0.0.0/0           Static 50   0         198.51.100.1    GE0/0/2   ← 备份路由生效!

# 检查配置
<R> display current-configuration | include route-static
ip route-static 0.0.0.0 0 203.0.113.1 preference 80    ← 主路由被配置为 80
ip route-static 0.0.0.0 0 198.51.100.1 preference 50   ← 备路由被配置为 50

# 优先级 50 < 80,主备反了
# 修复:恢复正确的优先级
[R] undo ip route-static 0.0.0.0 0 203.0.113.1
[R] ip route-static 0.0.0.0 0 203.0.113.1 preference 60
[R] undo ip route-static 0.0.0.0 0 198.51.100.1
[R] ip route-static 0.0.0.0 0 198.51.100.1 preference 80

五、总结

方案 检测速度 配置复杂度 适用场景
纯浮动静态路由 慢(依赖递归查找) 低 主链路真故障检测
+ 接口联动 中(接口 DOWN 时切换) 低 单链路故障检测
+ BFD 联动 快(毫秒级) 中 关键业务秒级切换
+ NQA 联动 快(秒级) 高 ISP 上游链路检测
配置检查清单 说明
主路由优先级 < 备路由 确保主路由正常生效
主备路由目标网络相同 备份的是同一目标
下一跳可达 确保路由生效
保存配置 save 防止重启丢失

思考

  1. 浮动静态路由的切换时间是多长?影响切换时间的因素有哪些?
  2. 如果主备链路都故障,路由表会如何?流量会丢到哪?
  3. 浮动静态路由与动态路由协议(OSPF/BGP)的优先级之间如何协调?

下篇预告:第31篇:路由环路是怎么产生的:TTL 计数器原理