Linux
Linux 中路由表條目的預設值是如何設置的?
ip route
這是我的命令的摘錄:192.168.1.0/24 dev enp1s0 proto kernel scope link src 192.168.1.2 metric 100 192.168.1.0/24 dev wlp2s0 proto kernel scope link src 192.168.1.14 metric 600
第一個介面
enp1s0
(乙太網)的度量值為 100(較高優先級/較低的跳數),第二個介面wlp2s0
(WLAN)的度量值為 600(較低優先級)。我正在使用 Linux 核心 4.7.2。這些值在 Linux 中是如何設置的?它究竟是什麼時候發生的?
IPv4 路由表不是由核心創建的。核心僅儲存路由表並對其進行操作。
這些指標來自安裝了預設路由的使用者空間程序。對於使用 DHCP 的電腦,它將來自 DHCP 守護程序。對於具有靜態定址和路由的電腦,這將來自發行版的介面定址機制(Red Hat 的 /etc/sysconfig/network、Debian 的 ifupdown 等)。
在 NetworkManager 等使用者空間應用程序中,將使用有線設備的預設路由的指標設置為優於(低於)使用無線設備的預設路由的指標是很常見的。如果可行的話,這與首選使用有線鏈路的普遍預期行為相匹配。這是您在
ip route show
命令中看到的策略。