Ubuntu es un sistema operativo increíble; hacía tiempo que no trabajaba con Ubuntu Server y no tenía sentido actualizar mi escritorio desde una versión estable. Recientemente, tuve que enfrentarme a la nueva versión de Ubuntu Server 18.04, y mi sorpresa no tuvo límites cuando comprendí que había quedado completamente desactualizado y no podía configurar la red, ya que el viejo y bueno sistema de configuración de interfaces de red mediante la edición del archivo /etc/network/interfaces había quedado en el pasado. ¿Y qué lo ha sustituido? Algo horrible y, a primera vista, completamente incomprensible: bienvenidos a «Netplan».
Para ser honesto, al principio no podía entender qué pasaba ni «para qué era necesario», ya que todo era tan cómodo; pero tras tener un poco de práctica, comprendí que tiene su encanto. Así que basta de lirismo, continuemos: ¿qué es Netplan? Es una nueva herramienta para configurar redes en Ubuntu, al menos «no he visto algo similar en otras distribuciones». La diferencia fundamental de Netplan es que la configuración se escribe en un lenguaje , sí, sí, no has oído mal, YAML. Los desarrolladores decidieron mantenerse al día con los tiempos (y, aunque muchos lo alaben, considero que es un lenguaje horrible). La principal desventaja de este lenguaje es que es muy sensible a los espacios. Veamos el archivo de configuración con un ejemplo.
Los archivos de configuración se encuentran en la ruta /etc/netplan/nombrearchivo.yaml, entre cada bloque deben haber + 2 espacios.
1) La cabecera estándar se ve así:
network:
version: 2
renderer: networkd
ethernets:
enp3s0f0:
dhcp4:noVeamos qué hemos hecho hasta ahora:
- network: — este es el bloque que inicia la configuración.
- renderer: networkd — aquí indicamos el gestor de red que vamos a utilizar, que puede ser networkd o NetworkManager.
- version: 2 — aquí entiendo que es la versión de YAML.
- ethernets: — este bloque indica que configuraremos el protocolo ethernet.
- enp3s0f0: — especificamos qué adaptador de red vamos a configurar.
- dhcp4:no — desactivamos DHCP v4, para DHCP v6 sería dhcp6, respectivamente.
2) Intentamos asignar direcciones IP:
enp3s0f0:
dhcp4:no
macaddress: bb:11:13:ab:ff:32
addresses: [10.10.10.2/24, 10.10.10.3/24]
gateway4: 10.10.10.1
nameservers:
addresses: 8.8.8.8Aquí hemos establecido la MAC, IPV4, la puerta de enlace y el servidor DNS. Noten que si necesitamos más de una dirección IP, las escribimos separadas por comas con un espacio obligatorio después.
3) ¿Y si necesitamos ?
bonds:
bond0:
dhcp4: no
interfaces: [enp3s0f0, enp3s0f1]
parameters:
mode: 802.3ad
mii-monitor-interval: 1- bonds: — bloque que explica que vamos a configurar el bonding.
- bond0: — nombre arbitrario de la interfaz.
- interfaces: — conjunto de interfaces que se agrupan en bonding, »como se mencionó anteriormente si hay múltiples parámetros los describimos entre corchetes".
- parameters: — describimos el bloque de configuración de parámetros.
- mode: — especificamos el modo en el que funcionará el bonding.
- mii-monitor-interval: — establecemos el intervalo de monitoreo a 1 segundo.
Dentro del bloque con el nombre del bonding también se pueden configurar parámetros como addresses, gateway4, routes, etc.
Hemos añadido redundancia a nuestra red, ahora solo queda colgar y la configuración se puede considerar finalizada.
vlans:
vlan10:
id: 10
link: bond0
dhcp4: no
addresses: [10.10.10.2/24]
gateway: 10.10.10.1
routes:
- to: 10.10.10.2/24
via: 10.10.10.1
on-link: true
- vlans: — declaramos el bloque de configuración vlan.
- vlan10: — nombre arbitrario de la interfaz vlan.
- id: — etiqueta de nuestro vlan.
- link: — interfaz a través de la cual el vlan será accesible.
- routes: — declaramos el bloque de descripción de rutas.
- — to: — especificamos la dirección/subred para la que se necesita la ruta.
- via: — especificamos el gateway a través del cual será accesible nuestra subred.
- on-link: — especificamos que se deben agregar rutas siempre al levantar el enlace.
Preste atención a cómo coloco los espacios, en el lenguaje YAML esto es muy importante.
Aquí hemos descrito las interfaces de red, creado bonding, e incluso añadido vlans. Apliquemos nuestra configuración, el comando netplan apply verificará nuestra configuración en busca de errores y la aplicará si tiene éxito. A partir de ahora, la configuración se levantará de forma automática al reiniciar el sistema.
Reuniendo todos los bloques de código anteriores, esto es lo que hemos logrado:
network:
version: 2
renderer: networkd
ethernets:
enp3s0f0:
dhcp4: no
ensp3s0f1:
dhcp4: no
bonds:
bond0:
dhcp4: no
interfaces: [enp3s0f0, enp3s0f1]
parameters:
mode: 802.3ad
mii-monitor-interval: 1
vlan10:
id: 10
link: bond0
dhcp4: no
addresses: [10.10.10.2/24]
routes:
- to: 10.10.10.2/24
via: 10.10.10.1
on-link: true
vlan20:
id: 20
link: bond0
dhcp4: no
addresses: [10.10.11.2/24]
gateway: 10.10.11.1
nameserver:
addresses: [8.8.8.8]
Nuestra red ya está lista para su uso, todo resultó ser menos aterrador de lo que parecía al principio y el código es muy bonito y legible. P.C. gracias a que hay un excelente manual sobre netplan en el enlace. .
Fuente: habr.com
