Marcio Cunha

Cómo configurar conmutación por error automática en systemd-networkd

Aprenda a configurar redundancia de red y failover automático en servidores Linux usando systemd-networkd, garantizando alta disponibilidad sin herramientas complejas.

Marcio Cunha•4 min
También disponible en:PortuguêsEnglish
Resumen
  • La utilidad systemd-networkd gestiona configuraciones de red de forma nativa y eficiente en distribuciones Linux modernas.
  • El failover de red permite alternar automáticamente a una interfaz secundaria si la principal falla.
  • Las métricas de ruta y prioridades de pasarela determinan qué camino deben seguir los paquetes de datos.
  • Las pruebas físicas y validaciones de hardware ayudan a aislar problemas de cable o switch antes de culpar al software.
  • El monitoreo continuo de conexiones evita caídas prolongadas en entornos de producción exigentes.

Por qué el failover de red es vital en servidores

Mantener un servidor conectado a la red o a internet es el núcleo de cualquier infraestructura corporativa. En la práctica, esto significa que si un cable de red se rompe o la tarjeta principal se quema, el sistema debe seguir funcionando sin intervención humana. Para lograr esta resiliencia en servidores Linux, utilizamos el concepto de failover, que es la capacidad de desviar el tráfico de datos hacia una ruta o tarjeta de respaldo de forma inmediata y transparente. Antes de modificar código complejo, vale la pena entender cómo diagnosticar fallas físicas, como cómo probar el chip de red Realtek con multímetro para descartar defectos de hardware. La herramienta systemd-networkd, integrada de forma nativa en systemd en casi todas las distros modernas, ofrece funciones robustas para gestionar esta redundancia sin requerir instalaciones pesadas.

Entendiendo el rol de systemd-networkd en la redundancia

El demonio systemd-networkd es el administrador de conexiones estándar en muchos entornos empresariales debido a que es rápido, ligero y está integrado en el ecosistema del sistema operativo. Lee archivos de configuración simples basados en texto para definir direcciones IP, pasarelas y rutas estáticas. En la práctica, configurar redundancia con él implica crear prioridades numéricas para diferentes rutas de red, llamadas métricas. Cuanto menor sea el número de la métrica, mayor será la preferencia de la interfaz de red. Si la interfaz principal pierde señal o falla, el sistema operativo consulta la tabla de enrutamiento y desvía automáticamente el flujo de datos hacia la interfaz secundaria configurada con una métrica más alta.

Preparando los archivos de configuración de interfaces

Para poner manos a la obra, el primer paso es crear archivos de configuración específicos para cada tarjeta de red física de su servidor. Estos archivos se ubican en el directorio /etc/systemd/network/. Vamos a estructurar dos conexiones, llamadas aquí eth0 (principal) y eth1 (secundaria). Abra su editor de texto favorito y cree el archivo de la interfaz principal con el siguiente código:

[Match]
Name=eth0

[Network]
Address=192.168.1.10/24
Gateway=192.168.1.1
DNS=8.8.8.8
Metric=10

Note que definimos una métrica baja (Metric=10) para la interfaz eth0, indicando que es la preferida. La métrica funciona como una cola de prioridad donde los paquetes siempre eligen el camino numérico más bajo disponible.

Configurando la tarjeta secundaria de respaldo

Ahora necesitamos configurar la interfaz de contingencia, eth1, que asumirá el tráfico en caso de que la principal falle. Cree un segundo archivo de configuración en el mismo directorio con una métrica numéricamente superior, como el valor 20. Esto garantiza que el sistema solo mire esta interfaz si la primera deja de responder. Así es como debe quedar el archivo de configuración para la tarjeta de respaldo:

[Match]
Name=eth1

[Network]
Address=192.168.1.11/24
Gateway=192.168.1.1
DNS=8.8.8.8
Metric=20

Con esta estructura de métricas diferenciadas (10 para la principal y 20 para la de respaldo), systemd-networkd construye automáticamente la tabla de rutas del núcleo de Linux. Para auditar si el sistema aplicó las reglas correctamente y verificar cómo se distribuyen las conexiones, usted puede cómo usar el comando ss en Linux para auditar conexiones de red en tiempo real y confirmar el comportamiento de las interfaces.

Aplicando cambios y probando el failover

Después de guardar los archivos de configuración, es necesario reiniciar el servicio de red para que systemd-networkd procese las nuevas reglas. Para evitar interrumpir sesiones SSH activas de manera drástica, ejecute los comandos de reinicio con precaución y valide el estado inmediatamente después. Utilice la siguiente secuencia de comandos para aplicar y verificar el estado de la red:

  1. Reiniciar el servicio systemd-networkd para aplicar los nuevos archivos de configuración.
    sudo systemctl restart systemd-networkd
  2. Verificar el estado actual de las interfaces y conexiones de red activas.
    networkctl status
  3. Probar la ruta activa enviando pings continuos hacia la pasarela.
    ping -c 4 192.168.1.1

Para comprobar si el failover realmente funciona en la práctica, puede simular una falla desconectando el cable de la interfaz eth0 o desactivándola por software mediante el comando 'sudo ip link set eth0 down'. Observe el comportamiento de la terminal para ver si el tráfico migra de forma fluida hacia la tarjeta eth1 sin caídas abruptas en los servicios críticos.

Consideraciones finales sobre redundancia en producción

Configurar el failover automático utilizando herramientas nativas como systemd-networkd elimina la necesidad de software externo complejo, volviendo la infraestructura más ligera y fácil de auditar. La clave del éxito en este enfoque radica en una correcta planificación de las métricas de ruta y en la realización de pruebas periódicas de fallas simuladas en un entorno controlado. Mantener la simplicidad en la capa de red reduce los puntos de falla ocultos y garantiza que su servidor permanezca resiliente incluso ante imprevistos físicos de hardware.