Skip to content

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.