Configuración de red en Linux

Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: https://www.alcancelibre.org

Licencia Creative Commons
© 1999-2026 Joel Barrios Dueñas. Este manual se distribuye bajo la licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0). Usted es libre de compartir y adaptar el material bajo los siguientes términos: debe dar crédito al autor, no puede utilizarlo para fines comerciales y debe compartir las obras derivadas bajo la misma licencia. La licencia completa está disponible en https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.es.

Introducción

Configurar la red en GNU/Linux requiere comprender los fundamentos de IP versión 4 y saber utilizar cualquier editor de texto simple. Este manual proporciona una guía práctica y actualizada para la administración de red en distribuciones modernas como AlmaLinux 9, Rocky Linux 9, Red Hat® Enterprise Linux 9 y ALDOS, la cual, a pesar de utilizar SysVinit, incorpora un stack de red completamente moderno basado en NetworkManager e iproute2.

Conceptos esenciales y nomenclatura

Comprender cómo Linux identifica y nombra los componentes de red constituye el primer paso para cualquier tarea de configuración avanzada. Esta sección explica los diferentes esquemas de nomenclatura y cómo elegir el más adecuado para su entorno.

Nombres de los dispositivos de red

Existen dos esquemas principales para nombrar interfaces de red en las distribuciones modernas:

Para identificar las interfaces en su sistema, utilice:

ip link show

O bien:

ls /sys/class/net/

Nota para los ejercicios: En este manual se utilizará eth0 para ejemplos en sistemas con esquema tradicional (ALDOS) y enp0s3 para sistemas con esquema predictible (AlmaLinux 9). Adapte los nombres según corresponda a su entorno.

Cambio entre esquemas de nomenclatura

En raras ocasiones, una actualización del núcleo (kernel) o del firmware del sistema puede alterar la lógica de detección del hardware, provocando que el esquema predictible asigne nombres distintos a las mismas interfaces físicas. Este escenario, aunque infrecuente, puede presentar un desafío significativo en servidores de misión crítica donde numerosas configuraciones (reglas de muro cortafuegos, supervisión, guiones de instrucciones para respaldo) dependen de un nombre de interfaz específico.

El esquema tradicional (eth0, eth1), al independizarse por completo de la topología física del hardware, garantiza inmunidad ante tales alteraciones y ofrece una capa adicional de estabilidad para entornos donde la predictibilidad absoluta del nombre constituye un requisito fundamental. Por esta razón, numerosos administradores de sistemas y centros de datos lo eligen como la estrategia predeterminada desde el inicio.

Cambio temporal mediante parámetros del núcleo

Para probar cómo se comportaría el sistema con el esquema tradicional sin hacer cambios permanentes, puede pasar los parámetros necesarios directamente en el cargador de arranque durante el inicio.

  1. Durante el arranque, en el menú de GRUB, seleccione la entrada del núcleo que desea iniciar y presione la tecla e para editarla.
  2. Localice la línea que comienza con linux o linux16. Al final de los parámetros existentes, añada:
    net.ifnames=0 biosdevname=0
  3. Presione Ctrl+X o F10 para iniciar el sistema con estos parámetros temporales.

El sistema arrancará utilizando los nombres del esquema tradicional (eth0). Esta modificación es volátil y sólo afecta a la sesión de arranque actual.

Cambio permanente del esquema de nomenclatura

Para hacer el cambio de esquema permanente y evitar futuras alteraciones en los nombres de las interfaces, es necesario modificar la configuración del cargador de arranque y actualizar los archivos de configuración de red.

  1. Modificar los parámetros por defecto del núcleo: La herramienta recomendada para este fin en distribuciones modernas es grubby. El siguiente mandato añade los parámetros necesarios a la configuración por defecto de GRUB2 de manera permanente.

    sudo grubby --update-kernel=ALL --args="net.ifnames=0 biosdevname=0"
    

    Para verificar que los cambios se aplicaron, puede ejecutar:

    sudo grubby --info=ALL | grep args
    
  2. Renombrar y actualizar los archivos de configuración de red: Tras el próximo reinicio, las interfaces utilizarán nombres como eth0. Es necesario reasociar la configuración de red existente a estos nuevos nombres.

    • Identifique el mapeo actual: Antes de reiniciar, anote qué nombre predictible (ej: enp3s0) corresponde a cada dirección MAC, usando ip link show.
    • Renombre los archivos de configuración: Si utiliza archivos en /etc/sysconfig/network-scripts/, renómbrelos para reflejar el nuevo nombre de dispositivo.
      sudo mv /etc/sysconfig/network-scripts/ifcfg-enp3s0 /etc/sysconfig/network-scripts/ifcfg-eth0
      
    • Actualice el contenido del archivo: Edite el archivo renombrado y cambie el valor de la variable DEVICE al nuevo nombre (ej: DEVICE=eth0).
    • Si utiliza NetworkManager con perfiles *.nmconnection: El proceso es similar. Renombre el archivo del perfil y, dentro de él, localice y modifique la línea interface-name= para que coincida con el nuevo nombre (ej: interface-name=eth0).
  3. Reinicie el sistema:

    sudo reboot
    

Revertir al esquema predictible

Si en algún momento necesita revertir al esquema predictible, simplemente elimine los parámetros añadidos al núcleo y restaure los nombres originales de los archivos de configuración.

  1. Elimine los parámetros del núcleo:
    sudo grubby --update-kernel=ALL --remove-args="net.ifnames=0 biosdevname=0"
    
  2. Revise y renombre de vuelta los archivos de configuración de red a sus nombres originales basados en el esquema predictible.
  3. Reinicie el sistema.

Consideración final: Elegir un esquema de nomenclatura es una decisión de diseño del sistema. El esquema tradicional ofrece máxima estabilidad para configuraciones estáticas en hardware conocido, mientras que el predictible facilita la identificación del hardware físico en entornos dinámicos. Evalúe las necesidades de su entorno para tomar la mejor decisión.

NetworkManager: El gestor de conexiones moderno

NetworkManager es el servicio predeterminado para la gestión de red en distribuciones RHEL 9 y derivadas. ALDOS incluye NetworkManager 1.26 como su gestor predeterminado, haciendo que los procedimientos modernos sean totalmente aplicables. Es una herramienta válida y eficiente tanto para estaciones de trabajo como para servidores, gestionable mediante nmcli (línea de mandatos), nmtui (interfaz de texto) o archivos de configuración.

Identificación y renombrado de conexiones en NetworkManager

NetworkManager asigna nombres genéricos a las conexiones nuevas (ej: Conexión cableada 1). Para mayor claridad, es recomendable renombrarlas con un nombre descriptivo como eth0.

1. Identificar la conexión y la interfaz asociada

Liste todas las conexiones gestionadas por NetworkManager y su interfaz (DEVICE) asociada:

nmcli connection show

Identifique la conexión activa (con DEVICE asignado) y su nombre actual (columna NAME).

2. Renombrar la conexión (Método recomendado: nmcli)

Utilice el mandato nmcli connection modify para cambiar el nombre descriptivo (connection.id).

Ejemplo en ALDOS (interfaz eth0):

sudo nmcli connection modify "Conexión cableada 1" connection.id "eth0"

Ejemplo en AlmaLinux (interfaz enp0s3):

sudo nmcli connection modify "Wired connection 1" connection.id "enp0s3"

3. Verificar el cambio

Liste nuevamente las conexiones para confirmar el nuevo nombre. En adelante, usaremos estos nombres consistentes en los ejemplos.

Herramientas de diagnóstico y configuración temporal

Antes de realizar cambios permanentes en la configuración de red, es crucial poder diagnosticar el estado actual y realizar ajustes temporales para probar nuevos parámetros. Esta sección cubre las herramientas esenciales para ambas tareas, comenzando con el moderno conjunto de utilidades iproute2.

Fundamentos de iproute2

El paquete iproute2 (ip, ss) ha reemplazado al conjunto de herramientas obsoleto net-tools (ifconfig, route, netstat, arp). Es imprescindible familiarizarse con sus mandatos.

Consulta del estado de la red

Para ver todas las interfaces, sus direcciones IP y estado:

ip addr list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq state UP group default qlen 1000
    link/ether b4:2e:99:1e:01:7a brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.6/24 brd 192.168.100.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::91f1:cd41:3c33:a04d/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

Para consultar la tabla de enrutamiento. Observe las diferencias en el nombre del dispositivo (eth0 vs enp0s3):

Salida típica en ALDOS:

ip route show
default via 192.168.100.1 dev eth0 proto static metric 100
192.168.100.0/24 dev eth0 proto kernel scope link src 192.168.100.6 metric 100

Salida típica en AlmaLinux 9:

ip route show
default via 192.168.100.1 dev enp0s3 proto static metric 100
192.168.100.0/24 dev enp0s3 proto kernel scope link src 192.168.100.61 metric 100

Gestión temporal de direcciones IP y rutas

Los cambios con ip son temporales (se pierden al reiniciar). Son ideales para pruebas.

Añadir una dirección IP alias:

sudo ip addr add 192.168.100.62/24 dev eth0

Añadir una ruta estática:

sudo ip route add 10.0.0.0/8 via 192.168.100.1

Gestionar el estado de una interfaz:

sudo ip link set eth0 down  # Desactivar interfaz
sudo ip link set eth0 up    # Activar interfaz

Configuración persistente

La configuración persistente garantiza que todos los ajustes de red —como direcciones IP, rutas, servidores DNS y el nombre del sistema— se mantengan intactos tras un reinicio. Esta sección detalla los procedimientos para establecer dicha persistencia, ya sea mediante herramientas de gestión modernas como nmcli o mediante la edición directa de archivos de configuración clave.

Configurar el nombre del anfitrión (Hostname)

El método moderno y universal es utilizar el archivo /etc/hostname. Sin embargo, la herramienta para cambiarlo varía:

En AlmaLinux 9 / Rocky Linux 9 / RHEL 9 (con systemd):

sudo hostnamectl set-hostname servidor1.dominio.local

En ALDOS (con SysVinit):

sudo set-hostname servidor1.dominio.local

También puede editar directamente el archivo /etc/hostname en ambos sistemas y reiniciar.

En ALDOS el archivo /etc/sysconfig/network se mantiene por legado y es actualizado automáticamente por el sistema al reiniciar.

Configurar conexiones de red con NetworkManager

La configuración persistente se logra modificando perfiles de conexión, preferentemente mediante nmcli.

Usando nmcli (Recomendado)

Configurar una IP estática, puerta de enlace y DNS (usando nombres de conexión coherentes):

sudo nmcli connection modify "eth0" \
    ipv4.method manual \
    ipv4.addresses "192.168.100.6/24" \
    ipv4.gateway "192.168.100.1" \
    ipv4.dns "8.8.8.8 8.8.4.4"
sudo nmcli connection up "eth0"

Añadir una dirección IP alias de forma persistente:

sudo nmcli connection modify "eth0" +ipv4.addresses "192.168.100.62/24"
sudo nmcli connection up "eth0"

Rutas estáticas persistentes

El método recomendado es añadirlas al perfil de NetworkManager con nmcli.

Añadir una ruta estática a un perfil:

sudo nmcli connection modify "eth0" +ipv4.routes "10.0.0.0/8 192.168.100.200"
sudo nmcli connection up "eth0"

Configuración de MTU (Unidad de Transmisión Máxima)

El MTU (Maximum Transmission Unit) define el tamaño máximo de la trama de datos que una interfaz de red puede enviar sin fragmentación. Su valor predeterminado suele ser 1500 bytes para Ethernet, lo que es óptimo para la mayoría de redes y conexiones a Internet.

Para qué sirve cambiarlo:

Riesgos de aumentarlo en exceso: Si el MTU es mayor que el soportado por cualquier dispositivo en la ruta de la red, los paquetes se fragmentarán (degradando rendimiento) o se descartarán, causando pérdida de conectividad. Jamás debe exceder la capacidad física del medio.

Cambiar el MTU temporalmente con ip:

sudo ip link set eth0 mtu 9000

Cambiar el MTU de forma persistente con nmcli:

sudo nmcli connection modify "eth0" 802-3-ethernet.mtu 9000
sudo nmcli connection up "eth0"

Ejercicios prácticos integrados

Siga esta secuencia de ejercicios para aplicar todos los conceptos. Adapte el nombre de la interfaz y conexión según su sistema.

1. Diagnóstico inicial

Ejecute estos mandatos para conocer el estado de su red antes de realizar cambios:

ip addr list
ip route show
nmcli connection show
cat /etc/hostname

2. Renombrar la conexión de NetworkManager

Identifique su conexión activa y cámbiele el nombre a un formato predecible (eth0 o enp0s3) usando el procedimiento de la sección correspondiente.

3. Cambio temporal de configuración

Añada una dirección IP temporal y una ruta estática temporal. Verifique que aparecen con los comandos de diagnóstico.

sudo ip addr add 192.168.100.99/24 dev eth0
sudo ip route add 192.168.200.0/24 via 192.168.100.1

4. Configuración persistente con NetworkManager

Haga persistente la dirección IP alias 192.168.100.99/24 usando nmcli con el nuevo nombre de conexión.

sudo nmcli connection modify "eth0" +ipv4.addresses "192.168.100.99/24"
sudo nmcli connection up "eth0"

5. Configuración de DNS

Configure los servidores DNS de Google y un dominio de búsqueda para su conexión.

sudo nmcli connection modify "eth0" ipv4.dns "8.8.8.8 8.8.4.4"
sudo nmcli connection modify "eth0" ipv4.dns-search "red-local.local"
sudo nmcli connection up "eth0"

6. Cambio del nombre del anfitrión

Cambie el nombre de su sistema de manera persistente, usando la herramienta correcta para su distribución.

En AlmaLinux 9:

sudo hostnamectl set-hostname practica-red.red-local.local

En ALDOS:

sudo set-hostname practica-red.red-local.local

7. Verificación de conectividad

Compruebe la conectividad básica y la resolución de nombres.

ping -c 4 192.168.100.1          # Puerta de enlace
ping -c 4 8.8.8.8                # DNS externo
ping -c 4 www.google.com         # Resolución de nombres
arp -n                           # Tabla ARP local

8. Eliminación de cambios temporales

Elimine la dirección IP y la ruta que añadió en el paso 3 para limpiar el estado.

sudo ip addr del 192.168.100.99/24 dev eth0
sudo ip route del 192.168.200.0/24 via 192.168.100.1

9. (Opcional) Ajuste del MTU

Experimente cambiando el MTU de su interfaz a un valor temporal y luego reviértalo.

sudo ip link set eth0 mtu 9000
ip link show eth0 | grep mtu     # Verifique el cambio
sudo ip link set eth0 mtu 1500   # Revierte al valor estándar

Resumen y mejores prácticas

Siguiendo esta guía, estará preparado para gestionar la configuración de red en entornos Linux modernos de manera eficiente y confiable.