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 中这些值是如何设置的?具体什么时候发生?

答案1

IPv4 路由表不是由内核创建的。内核仅存储路由表并对其进行操作。

这些指标来自安装默认路由的用户空间程序。对于使用 DHCP 的计算机,这将来自 DHCP 守护程序。对于具有静态寻址和路由的计算机,这将来自发行版的接口寻址机制(Red Hat 的 /etc/sysconfig/network、Debian 的 ifupdown 等)。

在 NetworkManager 等用户空间应用程序中,将使用有线设备的默认路由的度量设置为比使用无线设备的默认路由的度量更好(更低)是很常见的。这符合人们普遍预期的偏好使用有线链路(如果可行的话)的行为。这就是您在命令中看到的策略ip route show

相关内容