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.io
En Ubuntu viene por default, así que no se preocupe.
Manual de programa
$ man netplan
Y, ¿para usarlo?
Primero listaremos las interfaces de red:
ifconfig -a
Las 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 generate
El 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 try
Si usted ve el mensaje:
Configuration accepted
Entonces puede proseguir a aplicar la configuración. Lo cual se lleva a cabo con:
$ sudo netplan apply
En caso de error, podemos debuguear los posibles errores con:
$ sudo netplan --d apply
Reiniciando 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-manager
Si está utilizando Ubuntu Server, utilice el siguiente comando:
$sudo systemctl restart system-networkd
O puede reiniciar de la manera tradicional:
$ sudo /etc/init.d/networking restart
Verificar 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 a
Con 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
Mozilla/5.0 (X11; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0 Waterfox/56.3
Para Debian si está, pero no lo he probado.
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0
Gracias Leslie, buen tuto. Sabes si el paquete sta disponible tambien para Debian?