web-dev-qa-db-fra.com

Comment définir la route par défaut avec netplan, serveur Ubuntu 18.04, 2 NIC

J'ai deux cartes réseau, les deux sont contrôlées via DHCP. On a IP publique, deuxième privé.

Les deux interfaces ont une adresse IP statique réservée dans DHCP et les deux interfaces obtiennent une adresse IP correcte, mais parfois, lors du redémarrage du serveur, je ne peux pas accéder au public, car la route par défaut provient d'une carte réseau privée.

Comment puis-je définir en permanence cela avec netplan?

Public NIC ens18 (IP: 213.133.xxx.xxx) Privé NIC ens19 (IP: 10.10.10.xxx)

Ma configuration de netplan est:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens18:
      dhcp4: yes
      dhcp6: no
      nameservers:
        addresses: [8.8.8.8,8.8.4.4]
  ethernets:
    ens19:
      dhcp4: yes
      dhcp6: no
5
Petar

Le problème est que networkd fera apparaître les deux réseaux et que les deux auront un jeu de passerelles par défaut, et qu'ils auront tous la même métrique.

Netplan ne vous permet pas actuellement de définir la route sur une seule interface, mais vous pouvez configurer networkd séparément pour lui indiquer de le faire, en basant la configuration sur ce que netplan a déjà généré.

J'ai copié les commandes ci-dessous. Ici, je suppose qu'ens19 est l'interface "secondaire" pour laquelle vous ne souhaitez pas définir de passerelle par défaut. Notez que pour réussir, il faut également que cela se produise avant de redémarrer avec la nouvelle interface (ou vous pouvez copier une partie de l'interface utilisateur). config, omettez la MACAddress = line, etc. afin qu’elle soit assez générique pour qu’une nouvelle interface puisse correspondre).

Sudo cp /run/systemd/network/10-netplan-ens19.network /etc/systemd/network
Sudo vi /etc/systemd/network/10-netplan-ens19.network

Ajoutez ensuite sous [DHCP]:

UseRoutes=false            # if you don't want to apply any routes from DHCP

RouteMetric=200        # any number above 100 if you want the routes applied, but that they are less preferred.

Si vous ne possédez pas encore le fichier (c.-à-d. Que vous n'avez pas encore connecté l'interface), vous pouvez copier le contenu d'une autre interface définie pour DHCP et supprimer MACAddress =.

En général, le fichier devrait ressembler à ceci:

[Match]
Name=interfacename

[Network]
DHCP=ipv4

[DHCP]
UseMTU=true
RouteMetric=200    # or UseRoutes=false, as you prefer.