在Linux中更改路由表的顺序/向上或向下移动条目

Dan*_*nik 3 routing-table

我的路由表中有几个接口,第一个接口停止工作。我想暂时将其下移,使其低于默认值。我是否必须删除并再次添加它,或者是否有 ip/route/ifconfig 命令可以将条目向上或向下移动?

use*_*686 5

路由表不是按自上而下的顺序使用的。相反,更具体的路由(具有更长的前缀长度)始终优先于不太具体的路由 \xe2\x80\x93 例如 /24 路由​​胜过 /16 路由,后者胜过“默认”/0 路由。

\n

如果您有两条前往完全相同目的地的路线(例如,它们都针对 192.168.1.0/24),则会根据其“度量”参数 \xe2\x80\x93 进行比较,这基本上是路线的成本,因此最低的度量值(最低成本)获胜。

\n

因此,如果您有多个“默认”路由,您可以通过删除并重新添加具有较低指标的路由来确定其优先级,例如:

\n
$ ip route\ndefault via 192.168.7.1 dev eth0 proto dhcp metric 100\ndefault via 192.168.1.1 dev wlan0 proto dhcp metric 600\n$ ip route del default dev wlan0\n$ ip route add default via 192.168.1.1 dev wlan0 metric 50\n
Run Code Online (Sandbox Code Playgroud)\n

(您实际上不需要删除不需要的高度量路由,特别是如果更改将是非常临时的 \xe2\x80\x93 ,则添加新的路由就足够了。)

\n

请注意,在这种情况下您可能无法使用ip route changeip route replace,因为它们将指定的指标视为查找键,并将设备视为要更新的参数,而您可能想要执行完全相反的操作。

\n