Netplan para principiantes

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

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en una estrella para puntuar!

Promedio de puntuación 4.8 / 5. Recuento de votos: 6

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

2 comentarios

  1. Waterfox 56.3 Waterfox 56.3 GNU/Linux x64 GNU/Linux x64
    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.

  2. Firefox 72.0 Firefox 72.0 Windows 10 x64 Edition Windows 10 x64 Edition
    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?

Responder a Leslie León Sinclair Cancelar la respuesta

Tu dirección de correo electrónico no será publicada.


*