Introducción
NetworkManager simplifica la gestión de redes mediante perfiles de conexión, facilitando la administración dinámica de interfaces físicas y virtuales. Dominar estas técnicas permite optimizar el acceso a recursos en entornos locales y remotos, asegurando una infraestructura de red eficiente y estable.
Objetivos
Este apartado tiene como finalidad:
- Comprender el uso de nmcli para listar y administrar conexiones de red en sistemas Linux modernos.
- Editar manualmente archivos de configuración de red para ajustes personalizados en /etc/NetworkManager/system-connections/.
- Configurar nombres de host y servidores DNS, garantizando una resolución de nombres efectiva en entornos de red.
Configuración de Red
Gestión de Redes con NetworkManager
NetworkManager es el servicio encargado de gestionar dinámicamente dispositivos y conexiones de red en Linux. Permite administrar interfaces físicas y virtuales, asegurando una configuración flexible y adaptable.
-
Dispositivo: Representa una interfaz de red física o virtual.
-
Conexión: Es un perfil de configuración asociado a un dispositivo.
-
Configuración dinámica: Se obtiene de un servidor DHCP.
-
Configuración estática: Se almacena en archivos de configuración persistentes.
Visualización de Información de Red
Para listar los dispositivos de red y su estado:
nmcli device status
Ejemplo de salida:
DEVICE TYPE STATE CONNECTION
eno1 ethernet connected eno1
ens3 ethernet connected static-ens3
eno2 ethernet disconnected --
lo loopback unmanaged --
Para listar todas las conexiones disponibles:
nmcli connection show
Para ver solo las conexiones activas:
nmcli connection show --active
Gestión de Conexiones de Red
Para agregar una nueva conexión de red:
nmcli connection add con-name eno2 type ethernet ifname eno2
Para configurar una conexión con dirección IPv4 estática:
nmcli connection add con-name eno3 type ethernet ifname eno3 \
ipv4.method manual ipv4.addresses 192.168.0.5/24 ipv4.gateway 192.168.0.254
Para activar una conexión:
nmcli connection up static-ens3
Para desconectar un dispositivo de red:
nmcli device disconnect ens3
Modificación de Configuración de Red
Para actualizar la dirección IP y puerta de enlace de una conexión:
nmcli connection modify static-ens3 ipv4.addresses 192.0.2.2/24 \
ipv4.gateway 192.0.2.254 connection.autoconnect yes
Para agregar un servidor DNS a una conexión:
nmcli connection modify static-ens3 +ipv4.dns 2.2.2.2
Para recargar los perfiles de conexión después de una edición manual:
nmcli connection reload
Eliminación de Conexiones de Red
Para eliminar una conexión del sistema:
nmcli connection delete static-ens3
Esto desconecta el dispositivo y elimina el archivo de configuración.
Comandos útiles de NetworkManager
| Comando | Propósito |
|---|---|
nmcli dev status |
Muestra el estado de todas las interfaces de red arrojado por NetworkManager. |
nmcli con show |
Enumerar todas las conexiones. |
nmcli con show name |
Enumera la configuración actual del nombre de la conexión. |
nmcli con add con-name name |
Agrega y asigna un nombre a un nuevo perfil de conexión. |
nmcli con mod name |
Modifica el nombre de la conexión. |
nmcli con reload |
Vuelva a cargar los archivos de configuración, después de la edición manual de archivos. |
nmcli con up name |
Active el nombre de la conexión. |
nmcli dev dis dev |
Desconecte la interfaz, que también desactiva la conexión actual. |
nmcli con del name |
Elimine la conexión especificada y su archivo de configuración. |
Edición Manual de Archivos de Configuración de Red
Ubicación de Archivos de Configuración
A partir de Red Hat Enterprise Linux 8, las configuraciones de red se almacenan en /etc/NetworkManager/system-connections/, utilizando el formato de archivo de claves en lugar del antiguo formato ifcfg. Sin embargo, las configuraciones previas en /etc/sysconfig/network-scripts/ siguen funcionando.
Los archivos de configuración de conexión controlan las interfaces de red y pueden editarse manualmente. Dependiendo de su propósito, NetworkManager los almacena en distintos directorios:
-
Persistentes:
/etc/NetworkManager/system-connections/(creados y editados por el usuario). -
Temporales:
/run/NetworkManager/system-connections/(eliminados al reiniciar el sistema). -
Inmutables:
/usr/lib/NetworkManager/system-connections/(perfiles preconfigurados).
Formato de Archivo de Claves en NetworkManager
NetworkManager usa un formato de clave estilo INI para almacenar perfiles de conexión. Cada archivo contiene secciones con pares clave-valor que definen la configuración de red.
Ejemplo de archivo de configuración para una conexión IPv4 estática:
[connection]
id=Main eth0
uuid=27afa607-ee36-43f0-b8c3-9d245cdc4bb3
type=802-3-ethernet
autoconnect=true
[ipv4]
method=manual
address1=192.168.0.10/24
gateway=192.168.0.254
dns=8.8.8.8
Aquí se define una conexión Ethernet con dirección IP estática, puerta de enlace y servidor DNS.
Modificación Manual de Configuración de Red Si necesitas modificar la configuración de una conexión, puedes editar su archivo en /etc/NetworkManager/system-connections/.
Abrir el archivo de configuración
sudo vim /etc/NetworkManager/system-connections/Main-eth0.nmconnection
Modificar parámetros
Cambiar la dirección IP:
address1=192.168.1.100/24
Actualizar la puerta de enlace:
gateway=192.168.1.1
Agregar un servidor DNS:
dns=1.1.1.1
Guardar cambios y recargar NetworkManager
sudo nmcli connection reload
Activar la conexión manualmente si autoconnect=false
sudo nmcli connection up "Main eth0"
Configuración de Nombres de Host y Resolución de Nombres en Linux
Configuración del Nombre de Host
El nombre de host identifica un sistema dentro de una red. En Red Hat Enterprise Linux 7 y versiones posteriores, el nombre de host estático se almacena en /etc/hostname, mientras que en versiones anteriores se configuraba en /etc/sysconfig/network.
Para modificar el nombre de host temporalmente:
hostname host.example.com
Para establecerlo de manera permanente:
hostnamectl set-hostname host.example.com
Para verificar el nombre de host actual:
hostnamectl status
Ejemplo de salida:
Static hostname: host.example.com
Operating System: Red Hat Enterprise Linux 9.0
Kernel: Linux 5.14.0-70.13.1.el9_0.x86_64
Architecture: x86-64
Configuración de la Resolución de Nombres
El sistema de resolución de nombres convierte nombres de host en direcciones IP y viceversa. Su comportamiento está definido en /etc/nsswitch.conf, donde se especifica el orden de búsqueda.
Verificar el archivo /etc/hosts
cat /etc/hosts
Ejemplo de contenido:
127.0.0.1 localhost
172.25.254.254 classroom.example.com
Consultar la resolución de nombres con getent
getent hosts classroom.example.com
Esto verifica si el nombre de host está registrado en /etc/hosts antes de consultar un servidor DNS.
Configurar servidores DNS en /etc/resolv.conf
cat /etc/resolv.conf
Ejemplo de configuración:
domain example.com
search example.com
nameserver 172.25.254.254
Para agregar un servidor DNS con nmcli:
nmcli con mod static-ens3 +ipv4.dns 8.8.8.8
Pruebas de Resolución de Nombres
Para verificar la conectividad con un servidor DNS:
host servera.lab.example.com
Ejemplo de salida:
servera.lab.example.com has address 172.25.250.10
Para realizar una consulta más detallada:
dig servera.lab.example.com
Si el sistema usa DHCP, el archivo /etc/resolv.conf puede ser sobrescrito automáticamente. Para evitarlo, se puede configurar:
nmcli con mod static-ens3 ipv4.ignore-auto-dns yes
Conclusión
En este capítulo, exploramos las herramientas clave para la gestión de redes en Linux, destacando el uso de NetworkManager y nmcli para configurar conexiones, direcciones IP, DNS y nombres de host. También abordamos la edición manual de archivos de configuración y la resolución de nombres, proporcionando un control detallado sobre la infraestructura de red. Este conocimiento es esencial para garantizar conectividad estable y enfrentar desafíos avanzados en entornos modernos.