我的问题非常类似这个问题。我的 vagrant 机器错误地设置了默认路由度量。
以下是netplan配置。
network:
version: 2
ethernets:
enp0s3:
dhcp4: true
match:
macaddress: 02:70:4e:c8:68:e9
enp0s8:
dhcp4: false
addresses: [192.168.33.10/24]
gateway4: 192.168.33.1
routes:
- to: 192.168.33.0/24
via: 192.168.33.1
metric: 0
和路由表。
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.33.1 0.0.0.0 UG 0 0 0 enp0s8
0.0.0.0 10.0.2.2 0.0.0.0 UG 100 0 0 enp0s3
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s3
10.0.2.2 0.0.0.0 255.255.255.255 UH 100 0 0 enp0s3
192.168.33.0 0.0.0.0 255.255.255.0 U 0 0 0 enp0s8
192.168.33.0 192.168.33.1 255.255.255.0 UG 0 0 0 enp0s8
enp0s3
是 NAT 接口,互联网连接应该使用它。sudo route del default enp0s8
解决了这个问题,但是将路由添加到 yaml 无法解决问题,并且有固定网关的限制。
我应该使用什么配置来自动重新排序指标?
答案1
对于具有多个接口的系统,只有应获取默认网关的接口才应设置“gateway4:”;请记住,DHCP 很可能也会设置默认网关:
network:
version: 2
ethernets:
enp0s3:
dhcp4: true
match:
macaddress: 02:70:4e:c8:68:e9
enp0s8:
dhcp4: false
addresses: [192.168.33.10/24]
请注意,您设置的附加路由通常是不需要的:192.168.33.0/24 已经可以访问,因为enp0s8
在这种情况下它直接连接到接口(当addresses:
已经列出子网时)。设置metric:
为 0 可能会进一步混淆内核。
如果您需要具有静态 IP 的接口(在这种情况下enp0s8
有默认网关而不是执行 DHCP 的接口,那么您可以设置具有度量值的路由降低超过 100;所以它被挑选前通过 DHCP 设置的默认网关systemd-networkd。 例如:
network:
version: 2
ethernets:
enp0s3:
dhcp4: true
match:
macaddress: 02:70:4e:c8:68:e9
enp0s8:
dhcp4: false
addresses: [192.168.33.10/24]
routes:
- to: 0.0.0.0/0
via: 192.168.33.1
metric: 50