我的路由表中有幾個接口,第一個接口停止工作。我想暫時將其下移,使其低於預設值。我是否必須刪除並再次添加它,或者是否有 ip/route/ifconfig 命令可以將條目向上或向下移動?
答案1
路由表不是按自上而下的順序使用的。相反,更具體的路由(具有較長的前綴長度)始終優先於不太特定的路由 - 例如,/24 路由勝過 /16 路由,而 /16 路由又勝過“預設”/0 路由。
如果您有兩個前往完全相同目的地的路由(例如,它們都針對192.168.1.0/24),則會根據其「度量」參數對它們進行比較– 這基本上是路由的成本,因此最低度量值(最低成本) ) 獲勝。
因此,如果您有多個「預設」路由,您可以透過刪除並重新新增具有較低指標的路由來確定其優先級,例如:
$ ip route
default via 192.168.7.1 dev eth0 proto dhcp metric 100
default via 192.168.1.1 dev wlan0 proto dhcp metric 600
$ ip route del default dev wlan0
$ ip route add default via 192.168.1.1 dev wlan0 metric 50
(您實際上不需要刪除不需要的高度量路由,特別是如果更改是非常臨時的 - 添加新路由就足夠了。)
請注意,在這種情況下您可能無法使用ip route change
或ip route replace
,因為它們將指定的指標視為尋找鍵並將設備作為要更新的參數,而您可能想做完全相反的事情。