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
Me complace anunciar la creación de esta útil herramienta (SquidStats), para el análisis y monitoreo…
La inteligencia artificial está revolucionando las industrias al automatizar tareas, predecir patrones y permitiendo tomar…
Uno de los grandes retos al que nos podemos enfrentar cuando una aplicación crece, es…
Percona Monitoring and Management (PMM) es una herramienta de código abierto para la supervisión y…
Qué es lo que deseo hacer en este capítulo? Básicamente un sonoff, quiero encender/apagar las…
Hace algunos meses estoy escuchando hablar del proyecto Home Assistant (HA). En palabras literales del…
View Comments
Para Debian si está, pero no lo he probado.
Gracias Leslie, buen tuto. Sabes si el paquete sta disponible tambien para Debian?