多路冗余下的路由优先级排序,核心思路只有一条:先比协议可信度,再比路径开销,最后靠前缀长度兜底,让每一层都有明确且唯一的裁决标准。只要这个链条不断,哪怕接入链路再多,路由表也不会乱。
双路由器冗余怎么切换:关键在于先理解“谁说了算”
很多运维同行都有过这种经历:公司两条运营商线路上联,一台核心交换机跑OSPF,另一台跑静态路由,平时好好的,一割接或者光纤抖动,流量就开始绕路,甚至出现回环,问题出在哪?出在大家都以为“路由优先级”是一个数值,实际上它是一套比较链条。
同一台设备上,路由优先级的判断顺序
在华为、H3C、思科这些主流设备上,当设备同时学到去往同一目的地的多条路由时,判断顺序是有严格层次的,行业共识认为,这个顺序是:直连路由 > 路由协议优先级 > 度量值(Metric) > 前缀长度。
- 直连路由:接口配了IP且UP,这条路由就是铁打的,谁也不能替代。
- 路由协议优先级:这是设备内部对不同协议来源的“信任度打分”,比如思科叫管理距离(AD),华为叫协议优先级(Preference),数值越小越优先。
- 度量值(Metric):同一个协议内部,用来比较路径好坏,比如OSPF的COST值,静态路由的优先级数值(注意,华为的静态路由可以配不同preference,这就是浮动路由的基础)。
- 最长前缀匹配:这条是最后的兜底规则掩码越长越精确,越精确越优先。
听起来很简单,但实际排错时,90%的混乱都出在把不同层次的数值拿来直接对比,比如拿OSPF的COST值去和静态路由的Preference比,这属于跨层比较,没有任何意义。
| 比较层次 | 华为设备参数 | 思科设备参数 | 裁决规则 |
|---|---|---|---|
| 协议优先级 | Preference(默认静态60,OSPF 10) | Administrative Distance(默认静态1,OSPF 110) | 数值越小越优先 |
| 度量值 | Cost / Metric | Metric / Hop Count | 数值越小越优先,仅同协议内比较 |
| 前缀长度 | 掩码长度 | 掩码长度 | 掩码越长越优先,最后生效 |
华为和思科路由优先级对比:默认值差异容易埋坑
这里必须单独拿出来说,因为跨厂商设备做冗余时,默认值不同会直接导致“我以为它在走A线,实际上它在走B线”。
华为设备默认优先级里,直连0,OSPF是10,静态是60,BGP是256(IBGP和EBGP有区分但都很大),思科设备默认管理距离里,直连0,静态1,OSPF是110,EIGRP是90,BGP是20(eBGP)和200(iBGP)。
举个例子:一台思科交换机同时从OSPF和静态路由学到去往10.10.10.0/24的路由,思科会走静态(AD 1 < 110),如果这台设备换成了华为,同样条件下,华为会走OSPF(Preference 10 < 60)。

同样的网络设计,换了个厂商的设备,流量路径完全变了,这绝不是设备厂商的Bug,而是默认信任模型不同,所以在做多路冗余设计时,第一件事不是敲命令,而是拿出一张纸,把每台设备的协议优先级默认值列出来,尤其是边界设备,确保两端设备对“谁做主”的认知一致。
出口路由器冗余配置方案:实操中怎么定优先级才不乱
理解上述理论后,我们落到最常见的场景:企业出口双链路,一台主路由器、一台备路由器,或者单台路由器双WAN口,这里的冗余配置方案,业内专家指出,最常用也最稳的组合是“静态路由+NQA联动”或“OSPF+BFD联动”,但无论用哪种,核心难点在于切换的“度”既不能太灵敏导致震荡,也不能太迟钝导致业务中断。
静态路由场景:用浮动路由而非单纯双默认路由
很多初级配置喜欢写两条默认路由,下一跳分别指向两个运营商的网关,这不算错,但这会让设备做负载分担,如果你希望的是“主备”,那就必须用浮动路由。浮动路由的原理就是通过修改协议优先级(Preference)来让一条路由在正常情况下“隐形”。
具体的配置思路是:
- 主线路的静态路由,保持默认优先级(华为60,思科1)。
- 备线路的静态路由,手动调高优先级数值(华为设为70或更高,思科设为10或更高)。
- 必须搭配链路检测技术,否则主线路物理断掉后,设备认为路由下一跳可达,备路由永远不会启用,检测手段就是NQA(华为)或IP SLA(思科),并且要绑定到主路由上。
这里要提一个容易忽略的细节:检测目标地址的选择,很多方案检测的是运营商网关地址,但网关地址往往是可达的,而上层出口已经拥塞或中断,更靠谱的做法是检测对端业务公网IP,比如你公司OA系统映射的公网地址,或者直接检测运营商的公共DNS(如223.5.5.5),保证端到端的连通性判断。
动态路由场景:OSPF优先级调整要小心破环
如果是和IDC机房之间跑OSPF做冗余,情况要复杂一些,因为OSPF内部有选举机制,且区域设计影响路径选择,多路冗余的优先级调整集中在接口COST值和出口路由的引入策略上。
操作路径参考(以华为设备为例):
- 在边界路由器上,将主用链路的接口COST值调小(比如设为10)。
- 将备用链路的接口COST值调大(比如设为1000)。
- 在ASBR(自治系统边界路由器)上引入外部路由时,通过路由策略(Route-Policy)为不同来源的路由打上不同的Tag,然后通过优先级(Preference)控制进入路由表的路由来源。
- 务必配置BFD(双向转发检测),OSPF自身的Hello报文检测速度是秒级,对于重要业务来说,秒级意味着大量丢包,BFD可以将检测时间缩短到毫秒级,是动态路由冗余切换的必备项。

一个反直觉的点:OSPF的COST值是基于带宽自动计算的,千兆口默认COST是1,百兆口默认是10,如果你手动把千兆口的COST调成100,那路径选择会瞬间反转,但这样做要小心,手动COST值不会随接口带宽变化而自适应,后续如果有人换了接口板卡,忘了调整,就会留下隐患,建议在调整COST值的位置写清楚注释,或者在变更工单里明确记录。
策略路由的特殊地位:优先级之外的另一套规则
还有一种常见的“乱”来自策略路由(PBR),策略路由的优先级高于普通路由表查询,也就是说,只要报文匹配了策略,它就不会走你辛苦调优的路由表。
比如你配置了策略路由,让内网视频流量走电信线路,但电信线路故障,而你的策略里没有写“不匹配时撤销策略”的语句,流量就会直接被丢弃,即使联通线路是通的。
这里的解决思路是:策略路由必须结合“下一跳可达性”判断,华为的PBR支持通过NQA联动,当NQA检测到下一跳不可达时,自动将策略置为无效,让流量落入正常的路由表转发流程,思科的PBR则通过“set ip next-hop verify-availability”实现类似效果。配置策略路由时,一定要默认“策略失败后走路由表”,而不是“策略失败后丢弃”。
多线路冗余哪家设备好:从选型倒推优先级设计的复杂度
这是一个现实问题,很多朋友问,是不是买了贵的设备,路由优先级就不用管了?并不是,设备越高端,支持的特性越多,反而越要求你把优先级设计清楚。
- 入门级路由器(如华为AR系列低端款、H3C ER系列):配置简单,主要靠静态路由+NQA,优先级设计简单直观,不容易写错,适合中小办公场景。
- 中端设备(如华为NE20E、思科ISR 4000系列):支持OSPF、BGP、策略路由、BFD,功能全,但配置交互变多,优先级冲突的概率指数级上升。
- 高端框式交换机做DC网关时,还涉及VRRP(虚拟路由冗余协议)与路由优先级的协同,VRRP负责网关冗余,路由协议负责路径冗余,两者的切换时机不同步时,会出现“网关在三层设备A上,但A的出口路由已切换到备用线路”的情况,导致流量绕行。
所以选型建议不是看参数表,而是看你的网络规模与运维能力,如果团队只有一两个人,尽量用静态+NQA的方案,把优先级逻辑简化到极致,如果团队有专职网络工程师,再考虑上动态路由协议,否则出了问题排查时间成本远高于设备差价。
网络割接路由优先级调整:变更前必查的三张表
割接是路由优先级问题爆发的高峰期,因为平时静态路由稳定运行,一割接就要临时加路由、改优先级,最容易乱。
割接前必查项目清单:
- 查邻居关系:确认新链路的两端协议状态是Full(OSPF)或Established(BGP),否则后面全白搭。
- 查路由表全局视图:在核心设备上用
display ip routing-table statistics(华为)或show ip route summary(思科)查看每种协议承载的路由前缀数量,如果某个协议前缀数异常偏多,说明有路由泄露或错误重分发。 - 查协议优先级值:用
display ip routing-table protocol ospf或show ip route ospf单独看某协议的路由,确认掩码长度和下一跳是否符合预期。重点关注是否有“次优路由”被加载比如一条OSPF路由的下一跳指向了备份链路,但备份链路的优先级设置错误,导致主链路即使恢复,流量也不切回。

割接时推荐的操作习惯是:一次只改一个变量,如果你同时调整了OSPF的COST值和静态路由的优先级,出了问题你根本不知道是哪个改动引起的。
骨干网路由选路原则:避免环路的知识底线
最后说一下底层逻辑,这部分不直接对应配置命令,但决定了你的优先级设计是否安全。
无环路的充要条件是“全网络对同一前缀的选路认知一致”,如果路由器A认为去程走电信,回程走联通,只要两台边界路由器都认可这个规则,那还不算坏,最怕的是A认为走电信,B认为走联通,数据包就在两台路由器之间来回弹。
控制平面的收敛速度必须快于数据平面的超时时间,这就是为什么动态路由协议需要配套BFD的原因,行业内普遍的认知是,链路切换在200毫秒以内完成,对多数TCP业务影响可感知但可恢复;超过1秒则大量应用会报错,所以路由优先级本身不能解决抖动问题,必须依赖快速检测机制。
路由优先级是本地行为,不是全局协商结果,OSPF的COST值、静态路由的优先级,都只对配置了该参数的设备本身生效,你在一台路由器上把某条路由优先级调低,并不会通知邻居,这在多厂商混合组网时尤其致命,因为不同厂商对相同协议的默认优先级不同(见前文表格)。
多路冗余下优先级排序的最终答案,是把协议可信度、路径开销、前缀精度三个维度变成所有边界设备的统一语言,用一张表把这些值固定下来,培训你的同事,写进变更模板,比任何一次临时救火都更有价值。
FAQ:路由优先级常见疑问速查
路由优先级和度量值是一回事吗?
不是。路由优先级是跨协议的比较依据,度量值是同协议内部的比较依据,两者不在一个维度,无法加减换算,华为设备中静态路由的Preference是60,OSPF的Preference是10,这属于协议优先级差异;OSPF内部两条路径,一个COST是10,一个是20,选择COST 10的,这是度量值比较。
为什么我改了静态路由的优先级数值,但流量还是走旧路径?
大概率是因为旧路径的直连路由或更精确的掩码路由仍然存在,直连路由优先级永远是0,任何协议路由都无法超越,检查设备上是否存在相同目的地的明细路由(比如32位主机路由),明细路由的掩码更长,会覆盖默认路由的优先级比较规则,流量会优先匹配明细路由。
多厂商混合组网时,如何统一路由优先级策略?
建议在设备互联接口和路由引入点使用路由策略或路由过滤,将外部路由统一调整为预期数值,在设计文档中明确标注每台设备的协议优先级基准值,避免依赖厂商默认值,核心原则是:不要让默认值代替设计决策。