云计算百科
云计算领域专业知识百科平台

网络冗余必备 | 浮动静态路由(Floating Static Route)主备切换实战

网络冗余必备 | 浮动静态路由(Floating Static Route)主备切换实战

华为 eNSP · AR2220 · 浮动静态路由 · BFD 联动 · 主备链路切换

主链路挂了网络就瘫?一篇文章讲透「主备双路径 + preference 优先值差异 + BFD 联动」全流程,附完整拓扑、可复制配置、故障切换验证与踩坑清单。


先说结论:浮动静态路由的精髓就一句话 ——
同一目的地配两条静态路由,用 preference 优先值拉开差距。优先值小的(默认 60)当主路径走,大的(手动调到 100)当备份「潜伏」在路由表外。主路径下一跳失效,主路由被撤销,备份路由
自动顶上。但有个致命坑:默认静态路由只检测
本端出接口物理状态,远端故障切不过来 —— 必须配 BFD/NQA 联动才能真正实现毫秒切换。

📑 目录

  • 为什么需要浮动静态路由
  • 实验拓扑与地址规划
  • 第一步:接口与 Loopback 基础配置
  • 第二步:主备静态路由配置
  • 第三步:主路径正常时验证
  • 第四步:模拟主链路故障看切换
  • 进阶:BFD 联动实现毫秒切换
  • 浮动静态路由 vs 普通静态 vs OSPF
  • 常见踩坑排查表

  • 一、为什么需要浮动静态路由

    企业出口、关键业务链路往往要双链路冗余:一条主路径走高速专线,一条备份走低速 MPLS。需求很朴素:

    • 正常时数据走主路径,带宽拉满
    • 主路径挂了,备份路径自动接管,业务不中断
    • 主路径恢复,自动切回主路径

    普通静态路由配两条同目的地会变成等价负载均衡(ECMP),数据两边各走一半,挂一半丢一半 —— 这不是冗余是添乱。浮动静态路由用 preference(优先值)差异 把第二条压成「备份」,平时不生效,故障才顶上。

    💡 本质:浮动静态路由 = 普通静态路由 + preference 差异化。华为 VRP 里 preference 越小越优先,默认 60。


    二、实验拓扑与地址规划

    在这里插入图片描述

    地址规划表

    设备接口IP 地址说明
    AR1 GE0/0/0 12.1.1.1/24 主链路出接口(连 AR2)
    AR1 GE0/0/1 34.1.1.1/24 备份链路出接口(连 AR4)
    AR1 Loopback0 1.1.1.1/32 测试源
    AR2 GE0/0/0 / GE0/0/1 12.1.1.2 / 23.1.1.2 主路径中转
    AR4 GE0/0/0 / GE0/0/1 34.1.1.4 / 45.1.1.4 备份路径中转
    AR3 GE0/0/0 23.1.1.3/24 主链路入接口(连 AR2)
    AR3 GE0/0/1 45.1.1.3/24 备份链路入接口(连 AR4)
    AR3 Loopback0 3.3.3.3/32 测试目标

    三、第一步:接口与 Loopback 基础配置

    四台路由器逐台配置,地基打稳再谈浮动。

    AR1

    <Huawei> system-view
    [Huawei] sysname AR1
    [AR1] interface GigabitEthernet 0/0/0
    [AR1-GigabitEthernet0/0/0] ip address 12.1.1.1 24
    [AR1-GigabitEthernet0/0/0] quit
    [AR1] interface GigabitEthernet 0/0/1
    [AR1-GigabitEthernet0/0/1] ip address 34.1.1.1 24
    [AR1-GigabitEthernet0/0/1] quit
    [AR1] interface LoopBack 0
    [AR1-LoopBack0] ip address 1.1.1.1 32
    [AR1-LoopBack0] quit

    AR2(主路径中转)

    <Huawei> system-view
    [Huawei] sysname AR2
    [AR2] interface GigabitEthernet 0/0/0
    [AR2-GigabitEthernet0/0/0] ip address 12.1.1.2 24
    [AR2-GigabitEthernet0/0/0] quit
    [AR2] interface GigabitEthernet 0/0/1
    [AR2-GigabitEthernet0/0/1] ip address 23.1.1.2 24
    [AR2-GigabitEthernet0/0/1] quit

    AR4(备份路径中转)

    <Huawei> system-view
    [Huawei] sysname AR4
    [AR4] interface GigabitEthernet 0/0/0
    [AR4-GigabitEthernet0/0/0] ip address 34.1.1.4 24
    [AR4-GigabitEthernet0/0/0] quit
    [AR4] interface GigabitEthernet 0/0/1
    [AR4-GigabitEthernet0/0/1] ip address 45.1.1.4 24
    [AR4-GigabitEthernet0/0/1] quit

    AR3

    <Huawei> system-view
    [Huawei] sysname AR3
    [AR3] interface GigabitEthernet 0/0/0
    [AR3-GigabitEthernet0/0/0] ip address 23.1.1.3 24
    [AR3-GigabitEthernet0/0/0] quit
    [AR3] interface GigabitEthernet 0/0/1
    [AR3-GigabitEthernet0/0/1] ip address 45.1.1.3 24
    [AR3-GigabitEthernet0/0/1] quit
    [AR3] interface LoopBack 0
    [AR3-LoopBack0] ip address 3.3.3.3 32
    [AR3-LoopBack0] quit

    ⚠️ 配完先用 ping 验证四段直连链路都通:AR1→AR2(12.1.1.2)、AR2→AR3(23.1.1.3)、AR1→AR4(34.1.1.4)、AR4→AR3(45.1.1.3)。任何一段不通,浮动路由都是空中楼阁。


    四、第二步:主备静态路由配置

    核心操作:为同一目的地配两条静态路由,用 preference 拉开差距。主备必须双向都配,否则单通。

    AR1:去程主备

    [AR1] ip route-static 3.3.3.3 32 12.1.1.2
    // 主路径,preference 用默认值 60,可不写

    [AR1] ip route-static 3.3.3.3 32 34.1.1.4 preference 100
    // 备份路径,优先值调大到 100,平时被主路径压制不生效

    AR2:主路径中转路由

    [AR2] ip route-static 1.1.1.1 32 12.1.1.1
    [AR2] ip route-static 3.3.3.3 32 23.1.1.3
    // AR2 只走主路径,不配备份

    AR4:备份路径中转路由

    [AR4] ip route-static 1.1.1.1 32 34.1.1.1
    [AR4] ip route-static 3.3.3.3 32 45.1.1.3
    // AR4 只走备份路径,平时这条路径的流量为 0

    AR3:回程主备

    [AR3] ip route-static 1.1.1.1 32 23.1.1.2
    // 回程主路径,preference 60

    [AR3] ip route-static 1.1.1.1 32 45.1.1.4 preference 100
    // 回程备份路径,preference 100

    🚫
    最高频错误:只在 AR1 配了主备,AR3 回程只配一条主路径。现象是
    主路径正常时通,主路径故障后 AR1 能发出去(走备份),但 AR3 回包仍尝试走已断的主路径 → 全丢。回程主备和去程主备必须
    对称。

    💡 preference 数值含义:越小越优先。华为设备直连=0、OSPF=10、静态默认=60。主备差距建议 ≥ 30(如 60 vs 100),避免边界值误判。


    五、第三步:主路径正常时验证

    配置完成,先验证默认走主路径。

    ① 查 AR1 路由表

    <AR1> display ip routing-table protocol static

    Destination/Mask Proto Pre Cost NextHop Interface
    3.3.3.3/32 Static 60 0 12.1.1.2 GE0/0/0 ← 只看到主路径

    备份路由(preference 100)此时不在路由表里,被主路径压制潜伏。要看它得用:

    <AR1> display ip routing-table protocol static verbose
    // verbose 模式能看到所有静态路由条目,包括被压制未生效的备份路由

    ② tracert 看走哪条路

    <AR1> tracert 3.3.3.3

    1 12.1.1.2 10 ms // 经过 AR2
    2 23.1.1.3 20 ms // 到达 AR3
    3 3.3.3.3 30 ms // 目标 Lo0
    // 路径:AR1 → AR2 → AR3,走的是主链路

    ③ 端到端 ping

    <AR1> ping -a 1.1.1.1 3.3.3.3
    — 3.3.3.3 ping statistics — 5 packet(s) transmitted, 5 received, 0.00% packet loss

    -a 1.1.1.1 指定源 IP 为 Loopback0,模拟业务流量。


    六、第四步:模拟主链路故障看切换

    这是浮动静态路由的高光时刻。在 AR1 上把主路径出接口关掉,模拟主链路故障:

    [AR1] interface GigabitEthernet 0/0/0
    [AR1-GigabitEthernet0/0/0] shutdown
    // 主路径出接口物理 down

    ① 看路由表自动切换

    <AR1> display ip routing-table protocol static

    Destination/Mask Proto Pre Cost NextHop Interface
    3.3.3.3/32 Static 100 0 34.1.1.4 GE0/0/1 ← 备份路由顶上!

    主路由(next-hop 12.1.1.2,出接口已 down)被自动撤销,备份路由(preference 100)从潜伏状态激活,next-hop 变成 34.1.1.4,出接口变成 GE0/0/1。

    ② tracert 看新路径

    <AR1> tracert 3.3.3.3

    1 34.1.1.4 10 ms // 经过 AR4(备份中转)
    2 45.1.1.3 20 ms // 到达 AR3
    3 3.3.3.3 30 ms
    // 路径:AR1 → AR4 → AR3,已切到备份链路

    ③ 业务恢复

    <AR1> ping -a 1.1.1.1 3.3.3.3
    — 3.3.3.3 ping statistics — 5 transmitted, 5 received, 0.00% packet loss
    // 业务零中断(仅有切换瞬间的少量丢包)

    ④ 主链路恢复,自动切回

    [AR1] interface GigabitEthernet 0/0/0
    [AR1-GigabitEthernet0/0/0] undo shutdown
    // 主路径接口恢复

    <AR1> display ip routing-table protocol static
    3.3.3.3/32 Static 60 0 12.1.1.2 GE0/0/0 ← 主路由回归
    // preference 60 重新压制 100,自动切回主路径

    💡 这就是「浮动」二字的形象:备份路由像浮在水下的救生圈,平时看不见,主路径一沉它就浮上来顶替。


    七、进阶:BFD 联动实现毫秒切换

    默认检测的致命缺陷

    上面的实验能切换,是因为我们 shutdown 了本端出接口,VRP 检测到接口物理 down 就撤销关联该接口的静态路由。但现实故障往往是远端故障:

    • 中间链路被拔线但本端接口协议仍 up
    • 对端设备宕机但本端看不到
    • 链路误码率高 ping 不通但接口没 down

    这些情况下,本端出接口仍然 up,主静态路由不会被撤销,备份永远顶不上 → 业务黑洞。

    BFD 联动解法

    BFD(Bidirectional Forwarding Detection)秒级(毫秒级)检测链路双向连通性,和静态路由联动后,远端故障也能触发切换。

    AR1 配置

    [AR1] bfd // 全局使能 BFD
    [AR1] bfd ar1-ar2 bind peer-ip 12.1.1.2 source 12.1.1.1 auto
    // 建立 BFD 会话,peer 是对端 IP,source 是本端 IP
    [AR1-bfd-session-ar1-ar2] discriminator local 10
    [AR1-bfd-session-ar1-ar2] discriminator remote 20
    [AR1-bfd-session-ar1-ar2] commit
    [AR1-bfd-session-ar1-ar2] quit

    [AR1] ip route-static 3.3.3.3 32 12.1.1.2 track bfd-session ar1-ar2
    // 主静态路由绑定 BFD 会话,BFD 检测到故障 → 立即撤销此路由

    AR2 对端配置(BFD 必须两端都配)

    [AR2] bfd
    [AR2] bfd ar2-ar1 bind peer-ip 12.1.1.1 source 12.1.1.2 auto
    [AR2-bfd-session-ar2-ar1] discriminator local 20
    [AR2-bfd-session-ar2-ar1] discriminator remote 10
    [AR2-bfd-session-ar2-ar1] commit
    [AR2-bfd-session-ar2-ar1] quit

    验证 BFD 会话

    <AR1> display bfd session all

    Local Remote PeerIp State
    10 20 12.1.1.2 Up // State=Up 才算会话建立成功

    ⚠️ BFD 联动的关键:

    • 两端都要配,单端配会话起不来
    • discriminator local/remote 两端要交叉对应(本端 local=对端 remote)
    • 默认检测周期 1000ms × 3 次 = 3 秒切换;可调 min-tx-interval / min-rx-interval 压到毫秒级
    • 联动后 BFD 故障 → 静态路由撤销 → 备份顶上,远端故障也能切

    NQA 备选方案

    不支持 BFD 的老设备可用 NQA(Network Quality Analyzer)icmp 探测 + 静态路由联动,原理类似但检测更慢(秒级)。BFD 是首选。


    八、浮动静态路由 vs 普通静态 vs OSPF

    对比维度普通静态路由浮动静态路由OSPF
    冗余能力 无 ✅ 主备自动切换 ✅ 多路径负载/冗余
    配置复杂度 一条目的地一条 同目的地两条 + preference 宣告网段即可
    故障检测速度 不检测 依赖接口物理状态(秒级)/BFD(毫秒) Hello 计时器(秒级)
    远端故障感知 ❌ 不感知 ❌ 默认不感知,需 BFD/NQA ✅ 邻居超时自动收敛
    资源开销 几乎为零 几乎为零(配 BFD 略增) CPU/内存维护 LSA
    适用场景 单链路小网络 双链路冗余、出口主备 中大型网络、多节点
    本实验建议 ❌ 不满足冗余 ✅ 4 台路由器双链路首选 ⚠️ 杀鸡用牛刀,但扩展性好

    选型口诀:单链路用普通静态、双链路冗余用浮动静态、多节点动态用 OSPF。生产环境双链路冗余最常见的就是浮动静态 + BFD。


    九、常见踩坑排查表

    #现象根因解决
    1 备份路由一直不生效 preference 数值配反(备份配成更小) 备份 preference 要更大(如 100 > 60)
    2 主路径故障后业务不通 只配了去程主备,回程没配 AR3 回程也要对称配主备,双向对称
    3 远端故障不切换 本端接口仍 up,静态路由不撤销 配 BFD/NQA 联动检测远端
    4 BFD 会话起不来 只配了一端 / discriminator 没交叉对应 两端对称配,local/remote 交叉
    5 主备差距太小误切 preference 60 vs 65,边界抖动 差距 ≥ 30(推荐 60 vs 100)
    6 主路径恢复后切不回 备份路由的 preference 写得比主还小 核对主路径优先值 < 备份优先值
    7 配了两条同目的地变成负载均衡 两条都没写 preference(都默认 60) ECMP 等价,给备份补 preference 100
    8 tracert 中间跳超时 中间设备限制 TTL 回应,正常现象 以端到端 ping 结果为准

    ⚠️ 排查三板斧:① display ip routing-table protocol static 看哪条生效 → ② display bfd session all 看 BFD 状态 → ③ tracert 看实际路径。切换失败 90% 是回程没配对称或 BFD 没起来。


    📌 写在最后

    浮动静态路由的精华浓缩成三句:

    • 同目的地配两条静态路由,preference 拉开差距,小的当主大的当备;
    • 主备双向对称配置,只配去程单通,故障切不过来;
    • 默认只检测本端接口物理状态,远端故障要靠 BFD/NQA 联动才能切。

    ⏭️ 下一步预告:

    下一篇在这个拓扑上加 VRRP 虚拟网关冗余,把 AR1/AR3 改成 VRRP 主备网关,配合浮动静态路由实现端到端 + 网关级双重冗余。

    命令续写模板:[AR1] ip route-static <目标> <掩码> <主下一跳> track bfd-session <name> | 备份加 preference 100


    本文基于 eNSP V100R003C00 + AR2220 验证通过 · 原创:Seal_ · 转载请注明出处

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 网络冗余必备 | 浮动静态路由(Floating Static Route)主备切换实战
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!