Antes de empezar a hablar de Netplan haremos un paréntesis. Debemos entender a YAML que es el lenguaje que da vida a la config de Netplan.
Para entender su sintáxis, espero hayan leído la página de Wikipedia, e intentado entender las bases del lenguaje, las cuales no son muy difíciles. Seguimos.
Nota: Si es usted de los que usa Ubuntu en sus CT dentro de un Proxmox, esta solución no servirá y en este hilo explican por qué. Sólo funciona para VMs.
Entonces... ¿Qué es Netplan?
Netplan es procesador de abstracción de configuración de red. Una utilidad o programa para configurar fácilmente las redes en un sistema Linux. Simplemente creando un archivo YAML etiquetando las interfaces de red requeridas y lo que cada una debe hacer o que pueda necesitar para funcionar. A partir de esta descripción, Netplan generará toda la configuración necesaria para su herramienta de renderización elegida.
Ampliando un poco más y potabilizando el concepto:
Netplan es una nueva utilidad de configuración de red de línea de comandos introducida en Ubuntu 17.10 para administrar y configurar fácilmente la red en Ubuntu. Le permite configurar una interfaz de red utilizando la abstracción YAML. Funciona junto con NetworkManager y/o systemd-networkd (denominados renderizadores de ahora en lo adelante) como interfaces para el kernel.
Veamos una imágen que los ayudará a entender lo antes mencionado:

Puntos clave importantes acá:
- Generar y/o cargar un yaml de configuración y procesarlo
- Pasarle la configuración procesada a la herramienta de la red, ya sea SystemD-NetworkD o NetworkManager y aplicar.
Nota:- Ubuntu Server usa systemd-networkd
- Ubuntu Desktop usa networkmanager
¿Cómo se instala?
$ sudo apt install -y netplan.ioEn Ubuntu viene por default, así que no se preocupe.
Manual de programa
$ man netplanY, ¿para usarlo?
Primero listaremos las interfaces de red:
ifconfig -aLas interfaces de red tienen nombres tales como:
eth0, wlan0[Traditional/Classic Interface Naming scheme]
o:
enp3s0, wl7ps0[Predictable Network Interface Names]
Entonces, por ejemplo, configuremos la tarjeta de red de nuestra PC, para lo cual se puede autogenerar la configuracion inicial, es decir una configuración genérica, que podemos posteriormente adaptar a nuestras necesidades. Sabiendo lo anterior, ejecutamos:
$ sudo netplan generateEl archivo de configuración autogenerado puede tener distintos nombres en dependencia de para que sistema sea generado por ejemplo:
01-network-manager-all.yaml
o:
01-netcfg.yaml
Nota: Todos los archivos en la carpeta /etc/netplan/ que terminen con la extensión de archivo .yaml mientras tengan una sintáxis válida serán leídos por Netplan.
Un ejemplo pudiera ser:

Antes de seguir, quisiera explicar una particularidad. Netplan aplica la configuración indentando con tres espacios.
¿Qué significa esto?
Cada par etiqueta/valor debe estar indentado por tres espacios a partir del comienzo de la línea, siguiendo el ejemplo anterior quedaría algo así:

Y este principio se aplica a toda la configuración. Así que, si indenta con Tab o con 4 espacios, puede que tenga errores.
Nota: Quedan advertidos.
Ahora probemos como se vería con una dirección WAN:

Ahora un ejemplo para una LAN:

Nota: Para añadir rutas debemos añadir al final del archivo.
routes:
- to: 192.168.44.0/24
via: 192.168.0.1
Ahora, un ejemplo completo con múltiples rutas:
network:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: yes
eno2:
dhcp4: no
dhcp6: no
addresses: [10.10.0.11/24]
gateway4: 10.10.0.1
routes:
- to: 192.168.1.0/24
via: 10.10.0.1
- to: 192.168.10.0/24
via: 10.10.0.1
Probando la configuración
Antes de aplicar cualquier cambio, probaremos el archivo de configuración. Ejecute el siguiente comando:
$ sudo netplan trySi usted ve el mensaje:Configuration acceptedEntonces puede proseguir a aplicar la configuración. Lo cual se lleva a cabo con:
$ sudo netplan applyEn caso de error, podemos debuguear los posibles errores con:
$ sudo netplan --d applyReiniciando los servicios de red
Una vez que todas las configuraciones se hayan aplicado correctamente, reinicie el servicio Network-Manager[Ubuntu Desktop] ejecutando el siguiente comando:
$ sudo systemctl restart network-managerSi está utilizando Ubuntu Server, utilice el siguiente comando:
$sudo systemctl restart system-networkdO puede reiniciar de la manera tradicional:
$ sudo /etc/init.d/networking restartVerificar la dirección IP
Ahora, para verificar si las nuevas configuraciones se aplican correctamente, ejecute el siguiente comando para verificar la dirección IP:
$ ip aCon esto creo que es suficiente. Si este post no ha sido lo suficiente explicativo[y me disculpo por ello, a veces yo mismo me enredo intentando explicar cosas T.T], acá en la página de Netplan hay bastantes ejemplos que harán más ameno su entendimiento.
Referencias:
- https://www.oueta.com/linux/restore-classic-network-interface-naming-scheme-eth0-eth1-ethx-in-linux/
- https://wiki.ubuntu.com/Netplan
- https://www.linuxjournal.com/content/have-plan-netplan







No comments yet