Mon problème est assez similaire à cette question . Ma machine vagabonde ne configure pas correctement la métrique de route par défaut.
Voici la configuration de 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
Et table de route.
# 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
est NAT interface et la connexion Internet doit l'utiliser. Sudo route del default enp0s8
résout ce problème, mais l'ajout d'itinéraires à yaml n'a pas permis de résoudre le problème et a la limite d'une passerelle fixe.
Quelle configuration dois-je utiliser pour réorganiser les métriques automatiquement?
Pour les systèmes dotés de plusieurs interfaces, seule l'interface devant obtenir la passerelle par défaut doit avoir "gateway4:" défini; en gardant à l'esprit qu'il est fort probable que DHCP définisse également la passerelle par défaut:
network:
version: 2
ethernets:
enp0s3:
dhcp4: true
match:
macaddress: 02:70:4e:c8:68:e9
enp0s8:
dhcp4: false
addresses: [192.168.33.10/24]
Notez que la route supplémentaire que vous avez définie est généralement inutile: 192.168.33.0/24 est déjà accessible, car elle est directement connectée à l'interface enp0s8
dans ce cas (lorsque addresses:
répertorie déjà le sous-réseau). Le fait de définir metric:
sur 0 peut encore perturber le noyau.
Si vous avez besoin d'une interface avec une adresse IP statique (dans ce cas, enp0s8
doit disposer de la passerelle par défaut au lieu de l'interface utilisant DHCP, vous pouvez définir une route avec une valeur métrique inférieure à 100; est choisi avant la passerelle par défaut définie via DHCP par systemd-networkd . Par exemple:
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