Netplan: como pasar de NetworkManager a Networkd

Como Ingeniero de sistemas, he visto evolucionar la gestión de redes desde los scripts ifupdown hasta la abstracción moderna que representa Netplan. Veremos en este artículo el renderer networkd, el estándar para servidores. En distribuciones modernas como Ubuntu (desde 17.10) y las versiones recientes de Debian, Netplan es el estándar de facto.

¿Qué es Netplan?

Netplan es un generador de configuración de red mediante archivos YAML. No gestiona la red por sí mismo; actúa como una capa de abstracción que «renderiza» la configuración para un backend (o renderer). Los dos backends principales son:

  1. NetworkManager: Orientado a escritorios y entornos con redes dinámicas (Wi-Fi, VPNs).
  2. systemd-networkd: El estándar para servidores y entornos headless, ligero y altamente integrado con systemd.

Guía de Migración de Netplan: De NetworkManager a networkd

Para este artículo, asumiremos una distribución basada en Debian/Ubuntu Server.

Netplan para configurar networkd

1. Identificación del Síntoma y Estado Actual

Primero, verificamos qué interfaz queremos configurar y cuál es su nombre lógico (ej. eth0, enp0s3).

# Listar interfaces de red
ip link show

2. Configuración del archivo YAML

Los archivos de configuración residen en /etc/netplan/. Buscaremos el archivo existente (normalmente 01-netcfg.yaml o 50-cloud-init.yaml).

Aviso de Seguridad: Un error de indentación en YAML o una IP mal configurada te dejará sin acceso remoto. Ten siempre acceso físico o via consola KVM/IPMI si estás en un servidor remoto.

Ejecuta el editor (usaremos vim por consistencia profesional):

sudo vi /etc/netplan/00-installer-config.yaml

Copia y adapta el siguiente esquema siguiendo la filosofía KISS:

network:
  version: 2
  renderer: networkd  # Cambiamos NetworkManager por networkd
  ethernets:
    enp0s3:           # REEMPLAZA por el nombre de tu interfaz
      dhcp4: no       # Desactivamos direccionamiento dinámico
      addresses:
        - 192.168.1.50/24  # Tu IP fija y máscara en formato CIDR
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1] # Dos DNS (Google y Cloudflare)
      routes:
        - to: default
          via: 192.168.1.1  # Tu Gateway (Puerta de enlace) 

3. Aplicación y verificación (El método seguro)

Nunca uses netplan apply directamente si estás por SSH. Usa netplan try. Este comando aplica la configuración y, si no la confirmas en 120 segundos, revierte los cambios automáticamente.

# Probar la configuración
sudo netplan try

Si pierdes la conexión, el sistema volverá al estado anterior tras dos minutos.

Si todo es correcto, confirma el cambio. Luego, para asegurar que en tu configuración de Netplan NetworkManager no interfiera y systemd-networkd esté activo:

# Deshabilitar NetworkManager 
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager
# y habilitar networkd
sudo systemctl enable systemd-networkd
sudo systemctl start systemd-networkd

4. Análisis de Logs y Verificación Final

Si algo falla, el primer lugar donde mirar es el diario del sistema:

Bash

# Ver logs específicos de la unidad de red
journalctl -u systemd-networkd 

Para verificar que la IP y la ruta por defecto se han aplicado correctamente:

Bash

# Verificar direccionamiento
ip addr show enp0s3

# Verificar tabla de rutas
ip route show

Resumen de Flags y Sintaxis

  • addresses: Acepta una lista (por eso el uso de -). Es vital incluir la máscara en formato /24.
  • routes: En versiones modernas de Netplan, gateway4 está deprecado en favor del bloque routes con el destino default.
  • renderer: Define quién toma el control tras procesar el YAML. networkd es la recomendación para servidores por su eficiencia.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio