Skip to main content

Netplan

image.png

Netplan es una utilidad para configurar fácilmente la red en un sistema Linux. Simplemente crea una descripción YAML de las interfaces de red necesarias y la configuración de cada una.

Enlaces

Canonical Netplan

Netplan documentation

Netplan lee la configuración de red de /etc/netplan/*.yaml que escriben los administradores, instaladores, instancias de imágenes en la nube u otras implementaciones del sistema operativo.

Fichero de configuración

Un archivo netplan.yaml es un archivo de configuración usado por Netplan, el sistema moderno de configuración de red en Ubuntu (desde la versión 17.10 en adelante). Netplan reemplaza a herramientas tradicionales como ifupdown y simplifica la administración de redes usando archivos YAML y renderizadores como NetworkManager o systemd-networkd.

📦 Ubicación del archivo Netplan

Los archivos Netplan están ubicados en: /etc/netplan/*.yaml

Pueden coexistir varios ficheros (01-netcfg.yaml, 50-cloud-init.yaml, 99-custom.yaml, etc.). Todos se fusionan al aplicar los cambios, así que evita definir una misma interfaz en múltiples archivos.


📄 Estructura general de un fichero netplan.yaml

network:
  version: 2  # Versión del formato Netplan (actualmente siempre 2)
  renderer: networkd  # Opcional: "networkd" o "NetworkManager"
  ethernets:
    eth0:
      addresses:
        - 192.168.1.100/24
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]

🧩 Componentes principales

Clave Descripción
network: Raíz del documento, agrupa toda la configuración.
version: Actualmente siempre es 2.
renderer: Opcional. Define el backend que aplicará la configuración (networkd o NetworkManager).
ethernets: Interfaces Ethernet físicas.
vlans: Define interfaces VLAN.
bridges: Define interfaces tipo puente (bridge).
bonds: Define interfaces agregadas (bonding/LACP).
wifis: Interfaces Wi-Fi (solo con NetworkManager o soporte específico).

📘 Ejemplos por tipo de configuración

1. 🌐 IP estática en interfaz Ethernet

network:
  version: 2
  ethernets:
    ens18:
      addresses: [192.168.0.100/24]
      gateway4: 192.168.0.1
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]

2. 🌍 DHCP en interfaz

network:
  version: 2
  ethernets:
    ens18:
      dhcp4: true

3. 🔧 VLAN sobre interfaz física

network:
  version: 2
  ethernets:
    ens19: {}  # Debe declararse aunque no tenga IP
  vlans:
    vlan4:
      id: 4
      link: ens19
      addresses: [192.168.4.10/24]

4. 🔗 Bridge

network:
  version: 2
  bridges:
    br0:
      interfaces: [ens18]
      addresses: [192.168.10.5/24]
      gateway4: 192.168.10.1
      nameservers:
        addresses: [1.1.1.1]

⚙️ Aplicar configuración

# Validar sintaxis con rollback
sudo netplan try

# Aplicar configuración
sudo netplan apply

# Ver interfaces configuradas
ip a

📎 Buenas prácticas

  • Respetar la indentación YAML: Usa solo espacios, no tabs.

  • No duplicar interfaces en distintos archivos.

  • Usa netplan try si trabajas remotamente (permite revertir si pierdes conectividad).

  • Si usas renderer: NetworkManager, asegúrate de que el servicio esté activo.