Linux
在 Linux 中,什麼指標有沒有指標的路由?
如果您(在 Linux 中)有這兩條路線:
default via 192.168.1.1 dev enp58s0f1 default via 192.168.16.1 dev wlp59s0 proto static metric 600
我希望使用第一個,但事實並非如此:而是使用第二個。
如果我將其更改為:
default via 192.168.1.1 dev enp58s0f1 proto static metric 100 default via 192.168.16.1 dev wlp59s0 proto static metric 600
然後它按預期工作。似乎“無指標”是比任何數字都差(更高)的指標,而不是指標 0。
這是怎麼回事?它是特定於 Linux 還是網路標準?
提前致謝。
你確定你的第一次觀察嗎?那麼什麼
ip route show
或route -n
顯示什麼?如果您proto static
在第一種情況下添加結果會改變嗎?我發現至少有兩個資源明確表示這
0
是 Linux 中的預設值:
- http://0pointer.de/lennart/projects/ifmetric/:Linux 核心中路由的預設度量是 0,表示最高優先級。
- http://www.man7.org/linux/man-pages/man8/route.8.html:如果未指定此選項,inet6 (IPv6) 地址系列的度量預設為 ‘1’,對於 inet (IPv4)它預設為“0”。(然後它暗示使用時預設值可能不同,
iproute2
但對這些來源的分析並未顯示它是什麼)肯定需要 Linux 核心黑客來解決這個問題。
此外,選擇的預設值顯然是特定於作業系統的。這篇文章 ( https://support.microsoft.com/en-us/help/299540/an-explanation-of-the-automatic-metric-feature-for-ipv4-routes ) 例如顯示 Windows 選擇預設度量基於鏈路的頻寬。