静态路由优先级到底怎么算?用不对就会“被覆盖”!

一、路由优先级不是“看谁先配”

很多人以为谁先配谁生效,其实路由表压根不吃这一套。

在设备选路逻辑里,优先级是靠两组数来决定的:

  • 优先级(Preference):谁小谁优先
  • 度量值(Metric):同优先级下谁小谁优先

这俩决定了路由表上“谁能赢”。

二、不同协议的“优先级”默认值是多少?

先来看常见的几类路由,默认优先级是设备定的,下面以华为设备为例:

 

静态路由优先级到底怎么算?用不对就会“被覆盖”!

 

你没看错,静态路由的默认优先级是 60,居然比 OSPF 的 10 还低

所以如果你静态路由和 OSPF 动态路由同时指向同一网段,OSPF 会赢

举个例子:

ip route-static 192.168.1.0 255.255.255.0 10.1.1.1

这条静态路由,优先级60;如果 OSPF 也发布了 192.168.1.0 网段,它就会“压住”你。

解决办法:手动改优先级!

ip route-static 192.168.1.0 255.255.255.0 10.1.1.1 preference 5

三、还有一种情况:多条静态路由,只有一条生效?

再看这种配置:

ip route-static 0.0.0.0 0.0.0.0 10.1.1.1 preference 5
ip route-static 0.0.0.0 0.0.0.0 10.2.2.1 preference 10

两个默认路由,但只有一条在路由表上出现?

那是因为设备只会保留“优先级最低”的那条静态路由,也就是优先级高的那条(数字小)会生效。

但你也可以做负载均衡,只要两条优先级一致:

ip route-static 0.0.0.0 0.0.0.0 10.1.1.1 preference 10
ip route-static 0.0.0.0 0.0.0.0 10.2.2.1 preference 10

此时路由表会保留两条,默认开启 ECMP,走双出口。

四、还有一个坑:下一跳不可达,路由会消失!

静态路由虽然“静态”,但也不是死的。

比如这条:

ip route-static 10.10.10.0 255.255.255.0 192.168.1.1

如果 192.168.1.1 这个地址不可达(比如对端口DOWN了),这条静态路由也不会被加入路由表。

所以,你得保证下一跳在“可达网段”内,或者用“接口形式”写更稳:

ip route-static 10.10.10.0 255.255.255.0 GigabitEthernet0/0/1 192.168.1.1

总结:这些细节不注意,静态路由再多也白搭

  • 静态路由默认优先级是 60,OSPF 是 10,会被压住
  • 多条静态路由只保留“优先级最低”的那条
  • 多条路由要负载均衡,优先级要一致
  • 下一跳不可达,路由表直接不收录
  • 指定接口 + 下一跳的写法更稳更保险

你以为静态路由简单,其实很多故障都出在这一步。

懂得用对优先级、调试好生效条件,你的路由才真正“静得住”又“通得远”

阅读剩余
THE END