Convertir une configuration réseau Debian ifupdown à netplan
Depuis toujours, le système de configuration réseau sur Debian a été ifupdown. Depuis quelques temps, le système Netplan a fait son apparition et semble être utilisé de plus en plus. Je sais que beaucoup regrette ce changement forcé mais ce n'est pas l'objet de ce mémo.
1. Installer Netplan en premier
Section intitulée « 1. Installer Netplan en premier »apt updateapt install netplan.io2. Préparer ensuite la configuration Netplan
Section intitulée « 2. Préparer ensuite la configuration Netplan »Récupérez le nom et l'adresse MAC des interfaces:
ip linkEnsuite, voici l'exemple chez OVHcloud avec une instance connectée à un VRACK en plus du réseau externe, mettez l'IPv6 attribuée si elle existe, les adresses MAC et les bons noms d'interface réseau :
/etc/netplan/50-cloud-init.yaml:
network: version: 2 ethernets: ens3: accept-ra: false addresses: - 2001:xxx/56 dhcp4: true match: macaddress: xxx1 mtu: 1500 nameservers: addresses: - 213.186.33.99 search: [] routes: - to: ::/0 via: 2001:xxx::1 set-name: ens3 ens7: dhcp4: true dhcp4-overrides: use-routes: false match: macaddress: xxx2 set-name: ens73. Droits du fichier, activation de networkd et test
Section intitulée « 3. Droits du fichier, activation de networkd et test »Corrigez les droits du fichier yaml (netplan refuse un fichier lisible par tous) :
chmod 0600 /etc/netplan/50-cloud-init.yamlValidez la syntaxe et générez la configuration networkd (sans rien appliquer) :
netplan generateActivez systemd-networkd avant le test. Sinon netplan try avertit que networkd n'est pas démarré, bascule en « hard restart » et son retour arrière automatique n'est pas fiable :
systemctl enable --now systemd-networkdTestez la configuration :
netplan tryIl vous propose de l'appliquer : validez si vous n'avez pas perdu la connexion. Sinon, ne touchez à rien, il revient tout seul à l'ancienne configuration au bout du délai.
4. Vérifier la configuration
Section intitulée « 4. Vérifier la configuration »Vérifiez d'abord que networkd est bien activé au démarrage (sinon le réseau ne remontera pas au prochain reboot) :
systemctl is-enabled systemd-networkd # doit répondre : enabledPuis l'état des interfaces :
netplan status --all Online state: offline DNS Addresses: 213.186.33.99 xxx xxx DNS Search: openstacklocal
● 1: lo ethernet UNKNOWN/UP (unmanaged) MAC Address: 00:00:00:00:00:00 Addresses: 127.0.0.1/8 ::1/128
● 2: ens3 ethernet UP (networkd: ens3) MAC Address: xxx Addresses: xxx/32 (dynamic, dhcp) 2001:xxx/56 fe80::xxx/64 (link) Routes: default via xxx from xxx metric 100 (dhcp) xxx from xxx metric 100 (dhcp, link) 213.186.33.99 via xxx from xxx metric 100 (dhcp) 2001:xxx::/56 metric 256 fe80::/64 metric 256 default via 2001:xxx::1 metric 1024 (static)
● 3: ens7 ethernet UP (networkd: ens7) MAC Address: xxx Addresses: xxx/16 (dynamic, dhcp) fe80::xxx/64 (link) Routes: xxx/16 from xxx metric 100 (link) xxx from xxx metric 100 (dhcp, link) xxx from xxx metric 100 (dhcp, link) fe80::/64 metric 2565. Purger l'ancienne configuration
Section intitulée « 5. Purger l'ancienne configuration »apt purge ifupdownapt purge resolvconf6. (optionnel) Installer la prise en compte des résolveurs connus de systemd-networkd
Section intitulée « 6. (optionnel) Installer la prise en compte des résolveurs connus de systemd-networkd »Si systemd-networkd n'est pas installé, le fichier /etc/resolv.conf est un fichier normal qui doit contenir le bon DNS à utiliser, exemple:
nameserver 213.186.33.99Ce fichier ne sera donc pas mis à jour par ce qui peut être indiqué dans le netplan car on a été obligé d'enlever resolvconf qui ne sert plus à rien.
Donc on installe le nouveau package systemd-resolved qui s'occupe de faire pointer resolv.conf vers lui même et utilisera les DNS qu'il aura reçu de son côté:
apt install systemd-resolvedPour regarder la configuration DNS:
networkctl status● Interfaces: 1, 2, 3 State: routableOnline state: online Address: xxx on ens3 xxx on ens7 2001:xxx on ens3 fe80::xxx on ens3 fe80::xxx on ens7 Gateway: xxx on ens3 2001:xxx::1 on ens3 DNS: 213.186.33.99 xxx xxx