路由策略移植的顺序,核心答案是:先搭物理连通性,再动静态路由,最后动BGP,并且每一步都要留回退窗口。这个顺序不是拍脑袋定的,而是根据路由协议的工作机制和故障爆炸半径反推出来的,顺序错了,轻则路由震荡,重则全网黑洞。
今天这篇文章,就以我这些年做迁移项目的实操经验,拆解一下这个“先静态、后动态、BGP压轴”的顺序到底是怎么排出来的,以及每一步具体该干什么。
路由策略移植前,先做一次“路由体检”
很多人拿到迁移任务,上来就改配置,这是大忌,移植路由策略前,首要任务是搞清楚当前网络的真实路由形态,这里的体检指的是路由表快照,不是简单的show一下。
- 记录核心设备的路由前缀数量、协议分布(O、B、S、D)。
- 抓取当前所有业务网段的实际下一跳和出接口。
- 梳理路由策略的挂载点,是在接口下(如OSPF cost)、路由map下,还是在协议进程里。
- 确认现网是否存在等价路由和浮动路由,这对后续的优先级设计有决定性影响。
业内专家指出,相当一部分迁移事故不是因为新配置写错了,而是因为旧路由表里存在隐藏的静态路由或策略性丢弃路由,导致新配置一上,流量路径直接“跑飞”,体检的目的,就是为了把隐藏的雷提前排掉,如果条件允许,这一步建议做配置比对,把running-config和startup-config拉平,确保迁移起点是干净的。
第一步:先移植静态路由和直连路由,这是整个顺序的基石
静态路由优先级默认是60,高于OSPF的110和BGP的200,这意味着,静态路由控制着网络的“骨架”,动态路由只是在这个骨架上做适配。
在移植顺序表里,静态路由必须是第一个动的“先行者”,具体操作路径如下:
- 先建物理或逻辑隧道,比如新的传输链路或VxLAN隧道,确保新路径的底层是通的。
- 在新设备或新接口上配置静态路由,下一跳指向新网关,此时不要删旧的。
- 利用路由管理距离做“软切换”,把新静态路由的管理距离临时设为80,让旧路由(距离60)继续生效,确认新链路稳定后,再把距离改回60,或者删除旧路由。
一个需要特别留意的点是:静态路由的“黑洞”属性,在迁移过程中,如果只写了去程路由而漏写了回程路由,流量就会“有去无回”,移植静态路由时,必须成对操作,去程和回程缺一不可。
行业共识认为,静态路由移植的核心原则是

“先加后删”,坚决杜绝一边删一边加的“裸奔式”操作。
第二步:移植OSPF等IGP协议,重点看cost值和区域边界
静态路由搞定后,才轮到内部网关协议,OSPF的移植顺序不能乱,因为它涉及区域内路由和区域间路由的收敛逻辑。
先搞区域内部,再动区域间
很多人喜欢先改区域间的汇总或路由过滤,但其实顺序应该反过来。
- 先调整区域内部的接口cost值,通过改cost值,让OSPF自动计算出新的最短路径树,观察流量是否平顺地切换到了新链路上,这一步是风险最低的,因为OSPF的收敛是增量式的,不会造成全局震荡。
- 再动区域间的路由汇总和过滤,比如在ABR上调整area range,或者修改区域间的metric,这一步要特别小心,因为汇总范围一旦缩窄,可能导致部分明细路由被“淹没”,引发次优路径。
优先级和过滤条件的移植要格外谨慎
OSPF迁移中容易翻车的是优先级设置,OSPF优先级高的设备会成为DR/BDR,这个角色的切换会引起邻接关系的重建。设备优先级要在业务低峰期先行调整,不要等到割接窗口内现改。
- 操作顺序建议为:先改Router-ID或优先级,再重启OSPF进程,最后调整接口cost。
- 对于路由过滤,要遵循“先放通、后限制”的原则,新环境初期不要加任何分发列表或prefix-list限制,等路由表完全稳定后,再逐步收紧策略,如果开始就加限制,一旦遗漏了某条路由,排查起来极难定位。
每次调整后,要立即检查邻居状态,确保stable状态(Full)的设备数量没有减少。
第三步:BGP路由策略的移植,必须放在OSPF和静态路由稳定之后
BGP是最后一道菜,因为它承载的是跨域流量和公网路由,影响范围远超IGP。什么时候动BGP,取决于底层IGP的收敛时间。
BGP的移植顺序,建议按以下逻辑拆解:
- 先移植对等体关系,再移植策略,很多人上来就先把route-map、前缀列表一股脑配上,然后才建邻居,这是一个高风险的错误逻辑,正确的做法是:先建立EBGP/IBGP邻居关系(暂时不加载任何入向/出向策略),确认TCP连接和BGP会话状态是Established。
- 以“只收不发”模式验证,在对等体建立后,先配置入向策略,将收到的路由全部打上no-export或local-pref降低,观察它对现网路由表的影响,确保收到的路由不会污染现有最优路径。
- 最后调整出向策略,这一步是流量切换的实质操作,通过修改

AS-Path prepend
(追加AS路径)或MED值来影响对端选路,逐步把流量引流过来。
核心操作细节:
关于路由策略的匹配顺序,BGP的route-map是顺序匹配的,从前到后逐条匹配,一旦匹配就停止,在迁移中新增的策略条目,应该插入到最前面,而不是追加在末尾,否则,老的permit条目可能直接就把流量放行了,新策略根本不起作用。
一个很实用的经验是:在BGP策略切换时,先复制一份现网策略并改名为“策略名_bak”,然后在新策略里引导流量,一旦出现问题,可以秒级切回备份策略,这比回滚整段配置要快得多。
移植顺序的“双保险”:割接窗口与回滚脚本设计
上述步骤的推进节奏,直接决定了迁移的成败。路由策略的移植不是一次性的,而是分批次、分窗口的,这里提供一个通用的节奏参考:
| 阶段 | 时间窗口建议 | 验证手段 | |
|---|---|---|---|
| 预迁移 | 7天前 | 完成路由体检,配置预下发(如静态路由备线) | show ip route,抓包对比 |
| 静态切换 | T日 凌晨0:00-2:00 | 调整静态路由管理距离,切换骨干链路 | 业务探针拨测,丢包率归零 |
| IGP精细化 | T日 凌晨2:00-4:00 | 调整OSPF cost值,收缩区域边界 | 观察LSDB同步,确认无错乱LSA |
| BGP引流 | T日 凌晨4:00-6:00 | 调BGP出向策略,逐步迁移流量 | 查看BGP表,确认最佳路径切换peer |
| 收敛加固 | T+3天 | 删除临时策略,固化最终路由规则 | 配置审计,比对Running和Standby配置 |
这个过程里,回滚脚本是必须提前写的,回滚不是把旧配置敲回去,而是通过调整优先级和策略值,让流量瞬间回到旧路径

,对于OSPF,只要把新接口的cost值增大(比如改成10000),流量就会秒级切回旧路径,对于BGP,只要把已发布的策略加一条deny(或者直接shutdown出向邻居地址族),流量就会自动绕行,不需要去改动那些复杂的route-map。
路由策略移植后的验证清单
迁移完不等于结束,验证才是决定“是否宣布成功”的唯一依据,验证的核心逻辑是:观察路由表中协议来源的变化,以及流量在最坏情况下的收敛表现。
重点检查以下三个层面:
- 连通性验证:不只是ping通网关,而是要ping通跨区域的目的地址,并且确认往返路径一致,不通说明有策略黑洞或不对称路由。
- 冗余倒换测试:这是关键一步,人为shutdown新链路,观察BGP或OSPF是否能在预期时间内完成切换(通常OSPF秒级,BGP秒级到分钟级),如果切换时间远超预期,说明有路由策略抑制了下一跳的迭代。
- 路由策略下发一致性:用display current-configuration | include route-policy筛选出所有策略,逐条比对新旧配置,确保没有残留的临时策略。
最后写一下配置固化,迁移稳定运行满48小时后,需要把配置写入startup-config,并更新网络拓扑文档,整个路由策略移植的顺序才算走完一个闭环。
回到开头的问题:路由策略移植顺序,本质上是一个“风险压制”的过程,静态路由的确定性最高,先动它来稳定物理基石;OSPF的收敛半径可控,次之;BGP的传播范围最广,必须最后动,遵守这个顺序,你就能在迁移中赢得最大的主动权和最从容的排错时间。
迁移路由策略常见疑问解答
问:跨地域迁移时,是不是必须先调BGP的MED值,再调本地优先级?
不需要,这样反而会打乱顺序,跨地域迁移的核心是让对端路由器优先把流量送到新入口,应该先调整出方向的MED或AS-Path,让对端愿意把流量发过来;而本地优先级(Local Pref)是控制自己走出去的流量,优先级方向不同,直接在同一个步骤里改容易造成流量来回横跳。
问:路由策略移植过程中,静态路由和OSPF的优先级冲突了怎么办?
遵循“抓大放小”原则,静态路由必须始终优先;如果OSPF计算出的路径比静态路由更优,你需要在OSPF的接口下配置ip ospf cost来抬高其开销值,或者直接在OSPF进程中下发distance命令,将OSPF全局距离调整为120-200,确保静态路由不被覆盖。