Convertir una configuración de red Debian ifupdown a netplan
Desde siempre, el sistema de configuración de red en Debian ha sido ifupdown. Desde hace un tiempo ha aparecido Netplan y parece usarse cada vez más. Sé que a mucha gente le pesa este cambio forzado, pero no es el tema de esta nota.
1. Instalar Netplan primero
Sección titulada «1. Instalar Netplan primero»apt updateapt install netplan.io2. Preparar después la configuración de Netplan
Sección titulada «2. Preparar después la configuración de Netplan»Obtén el nombre y la dirección MAC de las interfaces:
ip linkEste es el ejemplo en OVHcloud, con una instancia conectada a un VRACK además de la red externa. Pon la IPv6 asignada si existe, las direcciones MAC y los nombres correctos de interfaz de red:
/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. Permisos del archivo, activación de networkd y prueba
Sección titulada «3. Permisos del archivo, activación de networkd y prueba»Corrige los permisos del archivo yaml (netplan rechaza un archivo legible por todos):
chmod 0600 /etc/netplan/50-cloud-init.yamlValida la sintaxis y genera la configuración de networkd (sin aplicar nada):
netplan generateActiva systemd-networkd antes de la prueba. Si no, netplan try avisa de que networkd no está arrancado, pasa a un «hard restart» y su vuelta atrás automática no es fiable:
systemctl enable --now systemd-networkdPrueba la configuración:
netplan tryTe propone aplicarla: confirma si no has perdido la conexión. Si la has perdido, no toques nada: vuelve solo a la configuración anterior cuando se agota el plazo.
4. Comprobar la configuración
Sección titulada «4. Comprobar la configuración»Comprueba primero que networkd está activado en el arranque (si no, la red no volverá en el próximo reinicio):
systemctl is-enabled systemd-networkd # debe responder: enabledDespués el estado de las 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. Purgar la configuración antigua
Sección titulada «5. Purgar la configuración antigua»apt purge ifupdownapt purge resolvconf6. (opcional) Instalar el soporte de los resolvedores conocidos por systemd-networkd
Sección titulada «6. (opcional) Instalar el soporte de los resolvedores conocidos por systemd-networkd»Si systemd-networkd no está instalado, el archivo /etc/resolv.conf es un archivo normal que debe contener el DNS correcto, por ejemplo:
nameserver 213.186.33.99Ese archivo, por tanto, no se actualizará con lo que indique el netplan, porque hemos tenido que quitar resolvconf, que ya no sirve de nada.
Así que instalamos el nuevo paquete systemd-resolved, que se encarga de apuntar resolv.conf hacia sí mismo y usa los DNS que haya recibido por su lado:
apt install systemd-resolvedPara ver la configuración 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