Categorías: Como se haceRedes

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?

Leslie León Sinclair

Ver comentarios

Compartir
Publicado por
Leslie León Sinclair

Entradas recientes

Alta disponibilidad de sus base de datos con Percona XtraDB Cluster en Kubernetes

Uno de los grandes retos al que nos podemos enfrentar cuando una aplicación crece, es…

9 meses hace

Home automation (Parte 3) – ESPHome

Qué es lo que deseo hacer en este capítulo? Básicamente un sonoff, quiero encender/apagar las…

1 año hace

Home automation (Parte 2) – Home Assistant

Hace algunos meses estoy escuchando hablar del proyecto Home Assistant (HA). En palabras literales del…

1 año hace

Home automation (Parte 1)

Desde hace varios meses vengo con la idea de automatizar la casa donde vivo. Poco…

1 año hace

Cocinando una imagen personalizada de OpenWRT

El artículo describe el uso para un caso particular de OpenWRT y la creación de…

1 año hace