Configuración de IP Estática en Linux: Guía Completa para Netplan, NetworkManager e ifupdown
Introducción
Configurar una dirección IP estática en servidores Linux es una habilidad fundamental para administradores de sistemas e ingenieros DevOps. A diferencia de las direcciones IP dinámicas asignadas por servidores DHCP, las direcciones IP estáticas permanecen constantes, lo que las hace esenciales para servidores, infraestructura de red y servicios que requieren direccionamiento de red predecible. Ya sea que estés configurando un servidor web, un clúster de bases de datos o un dispositivo de red, comprender cómo configurar direcciones IP estáticas en diferentes distribuciones de Linux es crucial para mantener una conectividad de red confiable y segura.
Esta guía completa cubre la configuración de IP estática en tres sistemas principales de gestión de red utilizados en distribuciones Linux modernas: Netplan (Ubuntu 18.04+), NetworkManager (RHEL, CentOS, Fedora) y el sistema tradicional ifupdown (Debian). Al dominar estos métodos de configuración, estarás equipado para manejar la configuración de red en prácticamente cualquier distribución de Linux.
¿Por Qué Usar Direcciones IP Estáticas?
Las direcciones IP estáticas ofrecen varias ventajas para entornos de servidor:
- Predictibilidad: Los servicios siempre se vinculan a la misma dirección IP, simplificando la configuración de DNS y las reglas de firewall
- Acceso Remoto: Las direcciones IP consistentes hacen que el acceso SSH y la administración remota sean confiables
- Servicios de Red: Esenciales para servidores que alojan DNS, correo electrónico, servicios web y bases de datos
- Dependencias de Servicios: Las aplicaciones que esperan direcciones IP específicas funcionan correctamente
- Monitoreo y Registro: Seguimiento y correlación simplificados de la actividad de red
- Dependencias DHCP Reducidas: Elimina la dependencia de la disponibilidad del servidor DHCP
Requisitos Previos
Antes de configurar direcciones IP estáticas en tu sistema Linux, asegúrate de tener:
- Acceso root o sudo al servidor Linux de destino
- Comprensión básica de conceptos de redes (direcciones IP, máscaras de subred, gateways)
- Acceso SSH al servidor (si se configura remotamente)
- Copia de seguridad de los archivos de configuración de red actuales
- Información válida de dirección IP, máscara de subred, gateway y servidor DNS
- Conocimiento del nombre de tu interfaz de red (eth0, ens33, enp0s3, etc.)
Verificación de tu Configuración de Red Actual
Antes de realizar cambios, documenta tu configuración de red actual:
# Ver todas las interfaces de red
ip addr show
# Mostrar tabla de enrutamiento actual
ip route show
# Verificar configuración de DNS
cat /etc/resolv.conf
# Ver conexiones de red actuales
ss -tuln
Configuración de IP Estática con Netplan (Ubuntu 18.04+ y Derivados)
Netplan es la herramienta predeterminada de configuración de red para Ubuntu 18.04 y versiones posteriores. Utiliza archivos de configuración YAML para definir ajustes de red, que luego se aplican a través de renderizadores subyacentes como systemd-networkd o NetworkManager.
Comprendiendo la Arquitectura de Netplan
Netplan actúa como una capa de abstracción de configuración de red, traduciendo archivos YAML en configuración para renderizadores de backend. Este enfoque proporciona una experiencia de configuración consistente en diferentes versiones de Ubuntu y derivados.
Configuración Paso a Paso de Netplan
Paso 1: Identificar la Interfaz de Red
Primero, identifica el nombre de tu interfaz de red:
ip link show
Los nombres de interfaz comunes incluyen:
ens33,ens18- VMware y VirtualBoxenp0s3,enp0s8- Servidores físicoseth0,eth1- Convención de nomenclatura antigua
Paso 2: Respaldar la Configuración Existente
Siempre crea una copia de seguridad antes de modificar la configuración de red:
sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml.backup
Paso 3: Editar la Configuración de Netplan
Los archivos de configuración de Netplan están ubicados en /etc/netplan/. Edita el archivo de configuración principal:
sudo nano /etc/netplan/00-installer-config.yaml
Reemplaza el contenido con tu configuración de IP estática:
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: no
addresses:
- 192.168.1.100/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
Desglose de la configuración:
network.version: 2- Especifica la sintaxis de Netplan versión 2renderer: networkd- Usa systemd-networkd como backend (alternativa: NetworkManager)dhcp4: no- Deshabilita DHCP para IPv4addresses- Dirección IP estática con notación CIDR (/24 = 255.255.255.0)routes- Configuración de gateway predeterminadonameservers- Direcciones de servidores DNS
Paso 4: Validar la Sintaxis de Configuración
Antes de aplicar los cambios, valida la sintaxis YAML:
sudo netplan --debug generate
Si no aparecen errores, la sintaxis es correcta.
Paso 5: Aplicar la Configuración
Aplica la nueva configuración de red:
sudo netplan apply
Para propósitos de prueba, puedes probar la configuración con reversión automática:
sudo netplan try
Este comando espera confirmación antes de aplicar permanentemente los cambios, revirtiendo automáticamente después de 120 segundos si no se confirma.
Configuraciones Avanzadas de Netplan
Múltiples Direcciones IP
Configura múltiples direcciones IP en una sola interfaz:
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: no
addresses:
- 192.168.1.100/24
- 192.168.1.101/24
- 192.168.1.102/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
Rutas Estáticas
Agrega rutas estáticas personalizadas:
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: no
addresses:
- 192.168.1.100/24
routes:
- to: default
via: 192.168.1.1
- to: 10.10.0.0/16
via: 192.168.1.254
nameservers:
addresses: [8.8.8.8, 1.1.1.1]
Configuración de Interfaz Bond
Configura bonding de red para redundancia:
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: no
ens34:
dhcp4: no
bonds:
bond0:
dhcp4: no
interfaces:
- ens33
- ens34
addresses:
- 192.168.1.100/24
routes:
- to: default
via: 192.168.1.1
parameters:
mode: active-backup
primary: ens33
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
Configuración de IP Estática con NetworkManager (RHEL, CentOS, Rocky Linux, Fedora)
NetworkManager es el sistema predeterminado de configuración de red para distribuciones basadas en Red Hat. Proporciona herramientas tanto de línea de comandos (nmcli) como de interfaz de usuario basada en texto (nmtui) para la configuración de red.
Usando nmcli (Interfaz de Línea de Comandos)
La herramienta nmcli ofrece potentes capacidades de configuración de red desde la línea de comandos.
Paso 1: Listar Conexiones de Red
Ver las conexiones de red existentes:
nmcli connection show
Identifica el nombre de tu conexión (por ejemplo, "System eth0" o "Wired connection 1").
Paso 2: Configurar IP Estática con nmcli
Configurar direccionamiento IP estático:
# Establecer dirección IPv4 estática
sudo nmcli connection modify "System eth0" ipv4.addresses 192.168.1.100/24
# Establecer gateway
sudo nmcli connection modify "System eth0" ipv4.gateway 192.168.1.1
# Establecer servidores DNS
sudo nmcli connection modify "System eth0" ipv4.dns "8.8.8.8 8.8.4.4"
# Cambiar de auto (DHCP) a manual
sudo nmcli connection modify "System eth0" ipv4.method manual
# Bajar y subir la conexión para aplicar cambios
sudo nmcli connection down "System eth0"
sudo nmcli connection up "System eth0"
Paso 3: Verificar la Configuración
Confirmar la configuración:
nmcli connection show "System eth0"
ip addr show
Usando nmtui (Interfaz de Usuario de Texto)
Para aquellos que prefieren una interfaz gráfica basada en texto:
sudo nmtui
Navega a través de la interfaz:
- Selecciona "Edit a connection"
- Elige tu interfaz de red
- Selecciona "IPv4 CONFIGURATION" y cambia a "Manual"
- Agrega tu dirección IP, gateway y servidores DNS
- Selecciona "OK" y luego "Activate a connection" para aplicar
Usando Archivos de Configuración Directamente
NetworkManager almacena perfiles de conexión en /etc/NetworkManager/system-connections/ (RHEL 8+) o usa archivos ifcfg en /etc/sysconfig/network-scripts/ (RHEL 7).
Para RHEL 7 y CentOS 7 (archivos ifcfg):
Edita el archivo de configuración de la interfaz:
sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
Configurar IP estática:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=eth0
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.1.100
PREFIX=24
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4
Reiniciar la red:
sudo systemctl restart network
# O para sistemas más nuevos:
sudo nmcli connection reload
sudo nmcli connection up eth0
Configuración de IP Estática con ifupdown (Método Tradicional de Debian)
El sistema de redes tradicional de Debian utiliza /etc/network/interfaces para la configuración. Aunque Debian 10+ a menudo usa NetworkManager por defecto, muchas instalaciones de servidor aún utilizan ifupdown.
Paso 1: Editar la Configuración de Interfaces
Edita el archivo principal de configuración de red:
sudo nano /etc/network/interfaces
Paso 2: Configurar IP Estática
Reemplaza la configuración DHCP con configuración estática:
# La interfaz de red de loopback
auto lo
iface lo inet loopback
# La interfaz de red primaria
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
dns-search example.com
Notación CIDR alternativa (Debian 10+):
auto eth0
iface eth0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
Paso 3: Configurar la Resolución DNS
Editar la configuración DNS:
sudo nano /etc/resolv.conf
Agregar servidores DNS:
nameserver 8.8.8.8
nameserver 8.8.4.4
search example.com
Para evitar que DHCP sobrescriba /etc/resolv.conf:
sudo chattr +i /etc/resolv.conf
Paso 4: Reiniciar la Red
Aplicar la configuración:
sudo systemctl restart networking
# O
sudo ifdown eth0 && sudo ifup eth0
Configuraciones Avanzadas de ifupdown
Múltiples Direcciones IP (Aliasing de IP)
Configurar direcciones IP adicionales:
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
auto eth0:0
iface eth0:0 inet static
address 192.168.1.101
netmask 255.255.255.0
auto eth0:1
iface eth0:1 inet static
address 192.168.1.102
netmask 255.255.255.0
Rutas Estáticas
Agregar enrutamiento personalizado:
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
# Ruta estática a red 10.0.0.0/8
up ip route add 10.0.0.0/8 via 192.168.1.254
down ip route del 10.0.0.0/8 via 192.168.1.254
Verificación y Pruebas
Después de configurar direcciones IP estáticas, prueba exhaustivamente tu configuración de red.
Pruebas Básicas de Conectividad
Verificar la Asignación de Dirección IP
ip addr show
# O comando antiguo
ifconfig
Busca tu dirección IP configurada en la interfaz correcta.
Verificar la Tabla de Enrutamiento
ip route show
# Verificar gateway predeterminado
ip route | grep default
Probar la Conectividad del Gateway
ping -c 4 192.168.1.1
Probar la Resolución DNS
# Verificar servidores DNS
cat /etc/resolv.conf
# Probar resolución DNS
nslookup google.com
dig google.com
# Probar con servidor DNS específico
nslookup google.com 8.8.8.8
Probar la Conectividad a Internet
ping -c 4 8.8.8.8
ping -c 4 google.com
Pruebas de Red Avanzadas
Verificar el Estado de la Interfaz de Red
ip link show eth0
# Busca "state UP"
Probar el Rendimiento de Red
# Prueba de velocidad de descarga
wget -O /dev/null http://speedtest.tele2.net/100MB.zip
# Descubrimiento de ruta MTU
ping -M do -s 1472 192.168.1.1
Verificar la Vinculación de Servicios
# Verificar qué servicios están escuchando
ss -tuln
netstat -tuln
# Verificar puerto específico
ss -tuln | grep :80
Solución de Problemas Comunes
Problema 1: La Interfaz de Red No Se Levanta
Síntomas: La interfaz muestra estado "DOWN"
Soluciones:
# Verificar estado de la interfaz
ip link show
# Levantar la interfaz manualmente
sudo ip link set eth0 up
# Para Netplan
sudo netplan apply
# Para NetworkManager
sudo nmcli connection up "System eth0"
# Para ifupdown
sudo ifup eth0
Problema 2: Sin Ruta al Gateway
Síntomas: No se puede hacer ping al gateway
Diagnóstico:
ip route show
Soluciones:
# Agregar gateway predeterminado manualmente
sudo ip route add default via 192.168.1.1
# Hacer permanente actualizando archivos de configuración
Problema 3: Fallo en la Resolución DNS
Síntomas: Se puede hacer ping a direcciones IP pero no a nombres de dominio
Diagnóstico:
cat /etc/resolv.conf
nslookup google.com
Soluciones:
# Actualizar servidores DNS en /etc/resolv.conf
sudo nano /etc/resolv.conf
# Agregar nameservers
nameserver 8.8.8.8
nameserver 1.1.1.1
# Para sistemas systemd-resolved
sudo systemctl restart systemd-resolved
Problema 4: La Configuración No Persiste Después del Reinicio
Síntomas: La IP estática funciona hasta el reinicio
Soluciones:
Para Netplan:
# Verificar archivo de configuración
ls -la /etc/netplan/
sudo netplan apply
Para NetworkManager:
# Asegurar que la conexión inicie en el arranque
sudo nmcli connection modify "System eth0" connection.autoconnect yes
Para ifupdown:
# Verificar directiva "auto" en /etc/network/interfaces
auto eth0
Problema 5: Conflicto de Dirección IP
Síntomas: La red se desconecta intermitentemente o muestra advertencias de IP duplicada
Diagnóstico:
# Verificar conflictos de IP
sudo arping -D -I eth0 192.168.1.100
Soluciones:
- Verificar que ningún otro dispositivo use la misma dirección IP
- Usar una dirección IP diferente del pool disponible
- Configurar el servidor DHCP para excluir el rango de IP estática
Problema 6: Errores de Sintaxis YAML en Netplan
Síntomas: "netplan apply" falla con errores de sintaxis
Soluciones:
# Validar sintaxis YAML
sudo netplan --debug generate
# Problemas comunes:
# - Indentación incorrecta (usar espacios, no tabulaciones)
# - Dos puntos faltantes después de claves
# - Sintaxis de array incorrecta
Ejemplo de indentación correcta:
network:
version: 2
ethernets:
ens33:
addresses:
- 192.168.1.100/24 # Nota: indentación de 2 espacios para elementos de array
Mejores Prácticas para la Configuración de IP Estática
1. Planificación y Documentación de Direcciones IP
- Mantener una hoja de cálculo o base de datos de gestión de direcciones IP (IPAM)
- Reservar rangos de IP para asignaciones estáticas (por ejemplo, .100-.200)
- Usar DHCP para asignaciones dinámicas fuera del rango estático
- Documentar todas las asignaciones de IP estáticas con nombre de host, propósito y fecha de asignación
2. Copias de Seguridad de Configuración de Red
Siempre respalda la configuración antes de los cambios:
# Copia de seguridad de Netplan
sudo cp /etc/netplan/*.yaml /root/netplan-backup/
# Copia de seguridad de NetworkManager
sudo cp /etc/NetworkManager/system-connections/* /root/nm-backup/
sudo cp /etc/sysconfig/network-scripts/ifcfg-* /root/ifcfg-backup/
# Copia de seguridad de ifupdown
sudo cp /etc/network/interfaces /etc/network/interfaces.backup
3. Usar Gestión de Configuración
Para gestionar múltiples servidores, utiliza herramientas de gestión de configuración:
- Playbooks de Ansible para configuración de red
- Recetas de Puppet o Chef
- Estados de Salt
- Control de versiones para archivos de configuración (Git)
4. Mejores Prácticas de DNS
- Configurar al menos dos servidores DNS para redundancia
- Usar proveedores DNS confiables (Google: 8.8.8.8, Cloudflare: 1.1.1.1)
- Considerar servidores DNS internos para entornos corporativos
- Establecer dominios de búsqueda DNS apropiados
5. Consideraciones de Seguridad
# Deshabilitar interfaces de red no utilizadas
sudo ip link set eth1 down
# Configurar reglas de firewall para IP estática
sudo ufw allow from 192.168.1.0/24 to any port 22
# Restringir SSH a IPs específicas en /etc/ssh/sshd_config
ListenAddress 192.168.1.100
6. Procedimientos de Prueba
Establecer una lista de verificación de pruebas:
- Verificar asignación de dirección IP
- Probar conectividad de gateway
- Confirmar resolución DNS
- Verificar conectividad a Internet
- Verificar accesibilidad de servicio
- Probar después del reinicio del servidor
- Monitorear conflictos de IP
7. Seguridad en Configuración Remota
Cuando configures remotamente vía SSH:
# Usar screen o tmux para prevenir desconexión
screen
# Para Netplan, usar "netplan try" para reversión automática
sudo netplan try
# Configurar acceso a consola/IPMI antes de hacer cambios
# Mantener la sesión SSH actual abierta hasta la verificación
8. Monitoreo y Alertas
Configurar monitoreo para el estado de la interfaz de red:
# Crear script de monitoreo
cat << 'EOF' | sudo tee /usr/local/bin/check_network.sh
#!/bin/bash
INTERFACE="eth0"
if ! ip link show $INTERFACE | grep -q "state UP"; then
echo "Network interface $INTERFACE is down!" | mail -s "Network Alert" [email protected]
fi
EOF
sudo chmod +x /usr/local/bin/check_network.sh
# Agregar a crontab
echo "*/5 * * * * /usr/local/bin/check_network.sh" | sudo crontab -
Optimización de Rendimiento
Configuración de MTU
Optimizar la Unidad Máxima de Transmisión para tu red:
Netplan:
network:
version: 2
ethernets:
ens33:
mtu: 9000
addresses: [192.168.1.100/24]
NetworkManager:
sudo nmcli connection modify "System eth0" 802-3-ethernet.mtu 9000
ifupdown:
iface eth0 inet static
mtu 9000
Longitud de Cola de Interfaz de Red
Aumentar la longitud de la cola de transmisión para servidores de alto tráfico:
sudo ip link set eth0 txqueuelen 10000
Hacer permanente agregando a la configuración de red o rc.local.
Consideraciones de Seguridad
1. Configuración de Firewall
Después de establecer la IP estática, configura las reglas del firewall:
# UFW (Ubuntu)
sudo ufw allow from 192.168.1.0/24 to 192.168.1.100 port 22
sudo ufw enable
# firewalld (RHEL/CentOS)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="22" protocol="tcp" accept'
sudo firewall-cmd --reload
2. Segmentación de Red
Colocar servidores en segmentos de red apropiados:
- DMZ para servidores públicos
- Red interna para bases de datos y servidores de aplicaciones
- Red de gestión para acceso administrativo
3. Deshabilitar IPv6 si No se Usa
Si IPv6 no es requerido:
Netplan:
network:
version: 2
ethernets:
ens33:
dhcp6: no
accept-ra: no
Sysctl:
sudo nano /etc/sysctl.conf
# Agregar:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
sudo sysctl -p
4. Filtrado de Direcciones MAC
Para entornos sensibles, considera el filtrado de direcciones MAC a nivel de switch y documentación:
# Ver dirección MAC
ip link show eth0 | grep link/ether
Conclusión
Configurar direcciones IP estáticas en Linux es una habilidad fundamental de redes que todo administrador de sistemas debe dominar. Ya sea que trabajes con sistemas Ubuntu modernos usando Netplan, distribuciones basadas en Red Hat con NetworkManager o sistemas Debian tradicionales con ifupdown, comprender los matices de cada enfoque asegura una configuración de red confiable en entornos diversos.
Puntos clave de esta guía:
- Netplan proporciona un enfoque moderno basado en YAML para Ubuntu y derivados
- NetworkManager ofrece potentes herramientas CLI y TUI para sistemas basados en Red Hat
- ifupdown permanece relevante para implementaciones tradicionales de servidor Debian
- Siempre respalda las configuraciones antes de hacer cambios
- Prueba exhaustivamente después de los cambios de configuración, especialmente antes de reiniciar
- Implementa prácticas de monitoreo y documentación
- Considera las implicaciones de seguridad de las asignaciones de IP estática
Al seguir las mejores prácticas descritas en esta guía, mantendrás configuraciones de red estables, seguras y bien documentadas que forman la base de una infraestructura de servidor confiable. Recuerda adaptar estas configuraciones a tu entorno de red específico y siempre probar los cambios en un entorno no productivo cuando sea posible.
Para el aprendizaje continuo, explora temas avanzados como bonding de red, VLANs y redes definidas por software para mejorar aún más tu experiencia en redes Linux.


