3 minute read

redes

Como indicamos en el anterior artículo, Linux nos proporciona 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 segundo artículo voy a introducir la herramienta NetworkManager para realizar la configuración de nuestra red.

Configuración de red con NetworkManager

NetworkManager es una herramienta que gestiona la configuración de red en sistemas Linux. Proporciona interfaces gráficas y de línea de comandos para gestionar conexiones dinámicas y estáticas, incluyendo Wi-Fi, Ethernet, VPN, y más. Integra herramientas de línea de comandos y gráficas:

  • nmcli: Línea de comandos.
  • nmtui: Interfaz de texto interactiva.
  • nm-applet: Applet gráfico para entornos de escritorio.

Nos aseguramos que el servicio esta habilitado e iniciado:

sudo systemctl enable NetworkManager
sudo systemctl start NetworkManager

Si usas DHCP (configuración dinámica), NetworkManager detectará automáticamente las redes disponibles y configurará la conexión. Para Ethernet o Wi-Fi, las configuraciones se gestionan automáticamente si no se especifican ajustes manuales.

NetworkManager también permite configuraciones manuales como direcciones IP estáticas o ajustes personalizados. Por ejemplo, podemos realizar una configuración estática usando el comando nmcli de la siguiente manera:

nmcli connection add type ethernet ifname enp0s3 con-name "ManualEthernet" ip4 192.168.1.100/24 gw4 192.168.1.1

Creamos una nueva conexión que hemos llamado ManualEthernet con las siguientes características:

  • type ethernet: Tipo de conexión.
  • ifname enp0s3: Interfaz que utilizará esta configuración.
  • ip4 192.168.1.100/24: Dirección IP y máscara de red.
  • gw4 192.168.1.1: Puerta de enlace.

Ahora podemos activar la conexión, ejecutando:

nmcli connection up ManualEthernet

Y podemos verificar las conexiones que tenemos configuradas:

nmcli connection show

Otros comandos interesantes son:

  • Listar dispositivos disponibles: nmcli device
  • Listar conexiones activas: nmcli connection show --active
  • Conectar automáticamente (por ejemplo, Ethernet): nmcli connection up "nombre-conexion"
  • Eliminar una conexión: nmcli connection delete "nombre-conexion"
  • Desconectar una conexión: nmcli device disconnect ifname enp0s3

También podemos gestionar nuestras conexiones, usando la herramienta nmtui que nos ofrece una interfaz interactiva:

nmrui

Y por último, indicar que si estamos trabajando en un entorno gráfico con Gnome,KDE,… es probable que tengamos instalado nm-applet que nos proporciona una interfaz gráfica para NetworkManager.

Relación entre el archivo /etc/network/interfaces y NetworkManager

Aunque los dos sistemas de configuración de red puede coexistir, hay que tener en cuentas algunos aspectos:

  • De forma predeterminada, NetworkManager ignora las interfaces configuradas en /etc/network/interfaces. Esto se debe a que las interfaces definidas en este archivo se consideran “administradas manualmente” por ifupdown.
  • Por lo tanto, NetworkManager evita gestionar las interfaces definidas en /etc/network/interfaces.
  • Para que NetworkManager ignore las interfaces gestionadas por ifupdown, revisa el archivo /etc/NetworkManager/NetworkManager.conf. Debe contener algo como esto:

    [main]
    plugins=ifupdown,keyfile
    
    [ifupdown]
    managed=false
    
    • El parámetro plugins especifica los métodos o fuentes que NetworkManager utilizará para:
      • ifupdown: Este plugin permite a NetworkManager interactuar con configuraciones tradicionales definidas en /etc/network/interfaces, que son gestionadas por el paquete ifupdown. Si este plugin está habilitado NetworkManager respeta las configuraciones en /etc/network/interfaces y no gestiona esas interfaces por defecto (a menos que se configure explícitamente).
      • El plugin keyfile permite a NetworkManager usar sus propios archivos de configuración en el directorio /etc/NetworkManager/system-connections/. Cada conexión se almacena en un archivo independiente.
    • managed=false: Indica que las interfaces configuradas en /etc/network/interfaces no serán gestionadas por NetworkManager.
    • Si cambias managed=true, NetworkManager podrá gestionar esas interfaces, pero esto puede causar conflictos si también se usan ifup y ifdown.
  • Para evitar conflictos entre NetworkManager y el archivo /etc/network/interfaces:
    • Usa solo uno para configurar las interfaces.
    • Si prefieres NetworkManager, elimina o comenta las configuraciones en /etc/network/interfaces, excepto la interfaz lo (loopback).

Conclusiones

En este segundo artículo hemos introducido el uso de la aplicación NetworkManager para gestionar la configuración de red en sistemas Linux. En el siguiente artículo introduciremos otro método de configuración de red: systemd-networkd.

Leave a Comment

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

Loading...