2 minute read

redes

Ya hemos visto que Linux nos ofrece diferentes métodos para configurar los parámetros de red. Actualmente según la distribución que utilicemos y la configuración del sistema que estemos utilizando, tendremos a nuestra disposición algunos de estos métodos:

  1. ifupdown: Es una herramienta tradicional para configurar redes en Linux basada en los archivos que encontramos en el directorio /etc/network.
  2. NetworkManager: Es una solución moderna y flexible diseñada para entornos de escritorio y servidores. Ofrece una interfaz gráfica (como nm-applet) y herramientas de línea de comandos (nmcli y nmtui).
  3. systemd-networkd: Es una alternativa más reciente que forma parte de systemd. Se utiliza principalmente en servidores y entornos que buscan configuraciones administradas de manera declarativa a través de archivos de configuración en /etc/systemd/network/.

En este tercer artículo voy a introducir el servicio systemd-networkd para realizar la configuración de nuestra red.

Configuración de red con ssytemd-networkd

systemd-networkd es un componente de systemd diseñado para gestionar la configuración de red en sistemas Linux. Proporciona un enfoque declarativo y centralizado para configurar interfaces de red, redes virtuales, enlaces y rutas.

Hemos deshabilitado NetworkManager y si es necesario instalamos el servicio

sudo apt install systemd-networkd

systemd-networkd utiliza archivos de configuración ubicados en /etc/systemd/network/ para definir la configuración de las interfaces de red. Cada archivo debe tener la extensión .network, .netdev o .link dependiendo de su propósito.

  • .network: Nos permiten declarar la configuración básica d las interfaces de red.
  • .netdev: Se utilizan para definir interfaces virtuales como túneles, bridges y VLANs.
  • .link: Nos permiten configurar atributos específicos de las interfaces como el nombre, el MTU o las opciones de Wake-on-LAN.

Veamos un ejemplo de una configuración de red dinámica. Creamos el fichero /etc/systemd/network/10-enp1s0.network:

[Match]
Name=enp1s0

[Network]
DHCP=yes

El fichero puede llamarse como queramos, pero suele empezar con un número para indicar la prioridad de activación. Para realizar una configuración estática, cambiaríamos el fichero de la siguiente manera:

[Match]
Name=enp1s0

[Network]
Address=192.168.1.2/24
Gateway=192.168.1.1
DNS=1.1.1.1 9.9.9.9

La sección [Match] permite especificar a qué interfaces se aplicará la configuración (por nombre, dirección MAC, o características específicas).

Si necesitamos especificar alguna ruta estática, lo podemos hacer de la siguiente manera:

[Match]
Name=enp1s0

[Network]
Address=192.168.1.2/24
Gateway=192.168.1.1
DNS=1.1.1.1 9.9.9.9

[Route]
Destination=10.0.0.0/8
Gateway=192.168.1.1

Comandos útiles

Si queremos ver la lista de interfaces:

networkctl list IDX LINK TYPE OPERATIONAL SETUP
1 lo loopback carrier unmanaged 2 enp1s0 ether routable configured

Si queremos ver el estado de la red:

networkctl status

●        State: routable                         
  Online state: online                           
       Address: 192.16.1.2 on enp1s0
                fe80::f816:3eff:fe0d:5da6 on enp1s0
       Gateway: 192.168.1.1 on enp1s0
           DNS: 1.1.1.1 9.9.9.9

Si queremos ver el estado de una interfaz concreta: networkctl status enp1s0. Si cambiamos alguna configuración y queremos recargarla sin detener los servicios de red:

networkctl reload

Si queremos aplicar de nuevo la configuración de una interfaz:

networkctl reconfigure enp1s0

Podemos desactivar una interfaz ejecutando:

networkctl down enp1s0

Y volver a iniciarla:

networkctl up enp1s0

Si necesitamos reiniciar el servicio de red:

systemctl restart systemd-networkd

Para revisar los logs para diagnosticar problemas:

journalctl -u systemd-networkd

Conclusión

systemd-networkd es una herramienta poderosa y flexible para gestionar configuraciones de red en sistemas Linux. Con este manual, puedes configurar desde interfaces simples hasta configuraciones avanzadas como bridges, bonding o rutas estáticas. Explora las capacidades adicionales consultando la documentación oficial: systemd.network.

Leave a Comment

Your email address will not be published. Required fields are marked *

Loading...