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
- Comprobación de sintaxis:
sudo netplan generate - Prueba de 120 segundos:
sudo netplan try - Aplicar:
sudo netplan apply
Consejos útiles
- Permisos: los archivos
/etc/netplan/*.yamldeben ser600o644, 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-networkdo/var/log/syslog. - Copias de seguridad: siempre guarde copias antes de experimentar.
Compatibilidad de las funcionalidades de Netplan por versiones
| Funcionalidad | Soporte en Netplan | Versión mínima de Ubuntu | Comentarios |
|---|---|---|---|
| Ethernet, Wi-Fi | siempre | 17.10+ (por defecto) | Escenarios básicos, soportado por todos los renderizadores |
| VLAN | siempre | 17.10+ | vlans: funciona tanto con networkd como con NetworkManager |
| Bridges | siempre | 17.10+ | Soporte completo para bridges |
| Bonding | siempre | 17.10+ | Modos: active-backup, balance-rr, 802.3ad y otros |
| IPIP | 0.99+ | 20.04+ | mode: ipip, funciona a través de networkd |
| GRE | 0.99+ | 20.04+ | mode: gre |
| VXLAN | 0.99+ | 20.04+ | Soporte de multidifusión (group), puerto por defecto 4789 |
| WireGuard | 0.104+ | 20.04 (a través de backports) / 22.04 LTS nativo | Usa wireguard-tools, las claves se pueden almacenar en un archivo |
| MAC/MTU/Routes | siempre | 17.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.iodesde 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