Bandera: Русский Русский Bandera: English English

Netplan: configuración avanzada de red (túneles, VLAN, puentes, bonding)

Publicado el 18.09.2025


Introducción

Netplan es una utilidad para la configuración declarativa de la red en Linux (Ubuntu, Debian y derivadas).
Normalmente se utiliza para casos sencillos como Ethernet o Wi-Fi, pero puede hacer mucho más:

  • interfaces de túnel (IPIP, GRE, VXLAN, WireGuard),
  • VLAN,
  • bridges (puentes),
  • agrupación de interfaces (bonding).

Estas capacidades permiten construir topologías de red complejas — desde VPN domésticas hasta centros de datos y entornos en la nube.


Interfaces de túnel

Los túneles encapsulan paquetes de un protocolo dentro de otro. Se usan para VPN, conexiones entre servidores o aislamiento de redes.

IPIP (IP-in-IP)

Túnel IPv4 a IPv4 más simple.

network:
  version: 2
  renderer: networkd
  tunnels:
    tun0:
      mode: ipip
      local: 192.168.1.100
      remote: 203.0.113.1
      addresses: [10.0.0.1/30]
      routes:
        - to: 10.0.1.0/24
          via: 10.0.0.2

GRE (Generic Routing Encapsulation)

Admite más protocolos que IPIP.

network:
  version: 2
  renderer: networkd
  tunnels:
    gre0:
      mode: gre
      local: 192.168.1.100
      remote: 203.0.113.1
      addresses: [10.0.0.1/30]
      routes:
        - to: 10.0.2.0/24
          via: 10.0.0.2

VXLAN (Virtual Extensible LAN)

Se usa en virtualización y nubes. Admite multidifusión y puertos personalizados.

network:
  version: 2
  renderer: networkd
  tunnels:
    vxlan0:
      mode: vxlan
      id: 42
      link: enp0s3
      local: 192.168.1.100
      group: 239.1.1.1   # grupo multicast
      port: 4789         # puerto estándar de VXLAN
      addresses: [10.0.0.1/24]

WireGuard

VPN moderno, soporte en netplan.io >= 0.99.

network:
  version: 2
  renderer: networkd
  tunnels:
    wg0:
      mode: wireguard
      addresses: [10.0.0.2/24]
      private-key: /etc/wireguard/private.key
      peers:
        - public-key: <remote-public-key>
          endpoint: 203.0.113.1:51820
          allowed-ips: [0.0.0.0/0]
          persistent-keepalive: 25

VLAN (Virtual LAN)

Segmentación del tráfico por ID de VLAN.

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: no
  vlans:
    vlan10:
      id: 10
      link: enp0s3
      addresses: [192.168.10.100/24]
      routes:
        - to: default
          via: 192.168.10.1

Bridges (Puentes)

Unen varios interfaces.

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3: { dhcp4: no }
    enp0s8: { dhcp4: no }
  bridges:
    br0:
      interfaces: [enp0s3, enp0s8]
      addresses: [192.168.1.100/24]
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 1.1.1.1]

Bonding (agrupación de interfaces)

Para tolerancia a fallos y/o aumento del ancho de banda.

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3: { dhcp4: no }
    enp0s8: { dhcp4: no }
  bonds:
    bond0:
      interfaces: [enp0s3, enp0s8]
      addresses: [192.168.1.100/24]
      routes:
        - to: default
          via: 192.168.1.1
      parameters:
        mode: 802.3ad                # LACP (se requiere soporte en el switch)
        transmit-hash-policy: layer3+4
        mii-monitor-interval: 100

Parámetros adicionales

  • MTU:
    mtu: 9000
    
  • Dirección MAC:
    macaddress: 00:16:3e:12:34:56
    
  • Métricas de rutas:
    routes:
      - to: 192.168.2.0/24
        via: 192.168.1.1
        metric: 100
    

Aplicación de la configuración

  1. Comprobación de sintaxis:
    sudo netplan generate
    
  2. Prueba de 120 segundos:
    sudo netplan try
    
  3. Aplicar:
    sudo netplan apply
    

Consejos útiles

  • Permisos: los archivos /etc/netplan/*.yaml deben ser 600 o 644, de lo contrario habrá advertencias.
    sudo chmod 600 /etc/netplan/*.yaml
    
  • Comprobación de interfaces:
    ip a, ip r, nmcli (si se usa NetworkManager).
  • Registros:
    journalctl -u systemd-networkd o /var/log/syslog.
  • Copias de seguridad: siempre guarde copias antes de experimentar.

Compatibilidad de las funcionalidades de Netplan por versiones

FuncionalidadSoporte en NetplanVersión mínima de UbuntuComentarios
Ethernet, Wi-Fisiempre17.10+ (por defecto)Escenarios básicos, soportado por todos los renderizadores
VLANsiempre17.10+vlans: funciona tanto con networkd como con NetworkManager
Bridgessiempre17.10+Soporte completo para bridges
Bondingsiempre17.10+Modos: active-backup, balance-rr, 802.3ad y otros
IPIP0.99+20.04+mode: ipip, funciona a través de networkd
GRE0.99+20.04+mode: gre
VXLAN0.99+20.04+Soporte de multidifusión (group), puerto por defecto 4789
WireGuard0.104+20.04 (a través de backports) / 22.04 LTS nativoUsa wireguard-tools, las claves se pueden almacenar en un archivo
MAC/MTU/Routessiempre17.10+Ajuste fino de rutas e interfaces

Consejos prácticos

  • Para Ubuntu 18.04: Netplan ya está presente, pero el soporte de túneles es limitado. Es mejor actualizar o instalar netplan.io desde backports.
  • Para Ubuntu 20.04: IPIP, GRE, VXLAN funcionan; WireGuard — mediante PPA o backports.
  • Para Ubuntu 22.04 y posteriores: soporte completo, incluido WireGuard.
  • Comprobar la versión del paquete:
    apt show netplan.io | grep Version
    

Preguntas frecuentes (FAQ)

❓ ¿Cómo comprobar si la configuración de Netplan funciona?
Use:

sudo netplan try

— tendrá 120 segundos para confirmar. Si todo es correcto, después ejecute:

sudo netplan apply

❓ ¿Cómo configurar VLAN con Netplan?
Ejemplo:

vlans:
  vlan10:
    id: 10
    link: enp0s3
    addresses: [192.168.10.100/24]

❓ ¿Cómo configurar WireGuard en Netplan?
A partir de netplan.io >= 0.104 se puede usar:

tunnels:
  wg0:
    mode: wireguard
    private-key: /etc/wireguard/private.key
    peers:
      - public-key: <remote-pubkey>
        endpoint: 203.0.113.1:51820
        allowed-ips: [0.0.0.0/0]

❓ ¿Por qué Netplan advierte sobre los permisos del archivo?
Los archivos en /etc/netplan/ deben tener permisos 600 o 644.

sudo chmod 600 /etc/netplan/*.yaml

❓ ¿Soporta Netplan bonding?
Sí. Ejemplo para LACP (802.3ad):

bonds:
  bond0:
    interfaces: [enp0s3, enp0s8]
    parameters:
      mode: 802.3ad

Enlaces útiles

¿Necesitas ayuda?

Escríbeme y te ayudaré a resolver el problema

Publicaciones relacionadas