Búsqueda de sitios web

Cómo administrar redes con NetworkManager en RHEL/CentOS 8


En RHEL y CentOS 8 el servicio de red es administrado por el demonio NetworkManager y se utiliza para configurar y controlar dinámicamente los dispositivos de red y mantener las conexiones activas. y activos cuando estén disponibles.

NetworkManager viene con numerosos beneficios, como soporte para una fácil configuración y administración de la red utilizando herramientas de interfaz de línea de comandos y de interfaz gráfica de usuario, proporciona una API a través de D-Bus que permite consultar y controlar la configuración de la red, soporte para flexibilidad de configuración y mucho más.

Además, el NetworkManager también se puede configurar mediante archivos y la consola web Cockpit y admite el uso de scripts personalizados para iniciar o detener otros servicios según el estado de la conexión.

Lea también: Cómo configurar y administrar conexiones de red utilizando la herramienta 'nmcli'

Antes de continuar, los siguientes son algunos otros puntos importantes a tener en cuenta sobre las redes en CentOS/RHEL 8:

  • Los archivos de configuración de tipo tradicional ifcfg (por ejemplo, ifcfg-eth0, ifcfg-enp0s3) todavía son compatibles.
  • Los scripts de red están en desuso y ya no se proporcionan de forma predeterminada.
  • Una instalación mínima proporciona una nueva versión de los scripts ifup y ifdown que llaman a NetworkManager a través de la herramienta nmcli.
  • Para ejecutar los scripts ifup y ifdown, debe estar ejecutándose NetworkManager.

Instalación de NetworkManager en CentOS/RHEL 8

El NetworkManager debe venir preinstalado en una instalación básica de CentOS/RHEL 8; de lo contrario, puede instalarlo utilizando el administrador de paquetes DNF como se muestra.

dnf install NetworkManager

El archivo de configuración global para NetworkManager se encuentra en /etc/NetworkManager/NetworkManager.conf y los archivos de configuración adicionales se pueden encontrar en /etc/NetworkManager/ .

Administrar NetworkManager usando Systemctl en CentOS/RHEL 8

En CentOS/RHEL 8 y otros sistemas Linux modernos que han adoptado systemd (administrador de sistemas y servicios), los servicios se administran mediante la herramienta systemctl.

Los siguientes son comandos systemctl útiles para administrar el servicio NetworkManager.

Comprobando el estado de NetworkManager

Una instalación mínima de CentOS/RHEL 8 debe tener NetworkManager iniciado y habilitado para iniciarse automáticamente en el momento del arranque, de forma predeterminada. Puede utilizar los siguientes comandos para comprobar si NetworkManager está activo, habilitado e imprimir información de estado de tiempo de ejecución de NetworkManager.

systemctl is-active NetworkManager
systemctl is-enabled NetworkManager
systemctl status NetworkManager 

Iniciando NetworkManager

Si el NetworkManager no se está ejecutando, puede iniciarlo simplemente ejecutándolo.

systemctl start NetworkManager

Detener NetworkManager

Para detener o desactivar NetworkManager por un motivo u otro, emita el siguiente comando.

systemctl stop NetworkManager

Reiniciar NetworkManager

Si ha realizado algún cambio en los archivos de configuración de la interfaz o en la configuración del demonio NetworkManager (normalmente ubicado en el directorio /etc/NetworkManager/), puede reiniciar (detener y luego iniciar) NetworkManager para aplicar los cambios como mostrado.

systemctl restart NetworkManager

Recargando NetworkManager

Para recargar la configuración del demonio NetworkManager (pero no el archivo de configuración de la unidad de systemd) sin reiniciar el servicio, ejecute el siguiente comando.

systemctl reload NetworkManager

Uso de herramientas de NetworkManager y trabajo con archivos ifcfg

El NetworkManager admite algunas herramientas para que los usuarios interactúen con él, que son:

  1. nmcli: una herramienta de línea de comandos utilizada para configurar redes.
  2. nmtui: una sencilla interfaz de usuario de texto basada en curses, que también se utiliza para configurar y gestionar conexiones de interfaz de red.
  3. Otras herramientas incluyen el nm-connection-editor, el centro de control y el icono de conexión de red (todos bajo GUI).

Para enumerar los dispositivos detectados por NetworkManager, ejecute el comando nmcli.

 
nmcli device 
OR
nmcli device status

Para ver todas las conexiones activas, ejecute el siguiente comando (tenga en cuenta que sin -a, enumera los perfiles de conexión disponibles).

nmcli connection show -a

Establecer dirección IP estática en CentOS/RHEL 8

Los archivos de configuración específicos de la interfaz de red se encuentran en el directorio /etc/sysconfig/network-scripts/. Puede editar cualquiera de estos archivos, por ejemplo, para configurar una dirección IP estática para su servidor CentOS/RHEL 8.

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

A continuación se muestra una configuración de ejemplo para establecer una dirección IP estática.

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=e81c46b7-441a-4a63-b695-75d8fe633511
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.0.110
PREFIX=24
GATEWAY=192.168.0.1
DNS1=8.8.8.8
PEERDNS=no

Después de guardar los cambios, debe volver a cargar todos los perfiles de conexión o reiniciar el NetworkManager para que se apliquen los nuevos cambios.

nmcli connection reload
OR
systemctl restart NetworkManager

Iniciar o detener servicios/scripts de red según la conectividad de red

NetworkManager tiene una opción útil que permite a los usuarios ejecutar servicios (como NFS, SMB, etc.) o scripts simples basados en la conectividad de red.

Por ejemplo, si desea montar automáticamente un directorio remoto localmente con sshfs, monte recursos compartidos SMB o monte recursos compartidos NFS después de cambiar entre redes. Es posible que desee que dichos servicios de red no se ejecuten hasta que NetworkManager esté en funcionamiento (todas las conexiones estén activas).

Esta característica la proporciona el servicio NetworkManager-dispatcher (que debe iniciarse y habilitarse para que se inicie automáticamente al iniciar el sistema). Una vez que el servicio se esté ejecutando, puede agregar sus scripts al directorio /etc/NetworkManager/dispatcher.d.

Todos los scripts deben ser ejecutables y escribibles, y propiedad del root, por ejemplo:

chown root:root /etc/NetworkManager/dispatcher.d/10-nfs-mount.sh
chmod 755 /etc/NetworkManager/dispatcher.d/10-nfs-mount.sh

Importante: Los scripts del despachador se ejecutarán en orden alfabético en el momento de la conexión y en orden alfabético inverso en el momento de la desconexión.

Uso de scripts de red heredados

Como mencionamos anteriormente, los scripts de red están obsoletos en CentOS/RHEL 8 y no vienen instalados de forma predeterminada. Si aún desea utilizar los scripts de red, debe instalar el paquete network-scripts.

yum install network-scripts

Una vez instalado, este paquete proporciona una nueva versión de los scripts ifup y ifdown que llaman a NetworkManager a través de la herramienta nmcli. hemos visto arriba. Tenga en cuenta que NetworkManager debería estar ejecutándose para que pueda ejecutar estos scripts.

Para obtener más información, consulte las páginas de manual systemctl y NetworkManager.

man systemctl
man NetworkManager

Eso es todo lo que preparamos en este artículo. Puede solicitar aclaraciones sobre cualquiera de los puntos, hacer preguntas o realizar adiciones a esta guía a través del formulario de comentarios a continuación.