Linux bonding combina varias interfaces de red físicas en una interfaz lógica, por ejemplo bond0. Según el modo elegido, puede proporcionar tolerancia a fallos, distribuir tráfico o ambas cosas. El modo balance-alb intenta equilibrar tráfico de entrada y salida sin exigir una configuración especial en el switch, pero tiene condiciones y no equivale a sumar el ancho de banda de cada enlace para cualquier conexión [1].
Advertencia: cambiar una interfaz de red desde una sesión remota puede desconectar el servidor. Ten preparada una consola local o el acceso fuera de banda del proveedor y conserva la configuración anterior para poder recuperarla.
Qué hace balance-alb
balance-alb (modo 6) combina dos mecanismos: transmit load balancing distribuye el tráfico saliente entre las interfaces, y receive load balancing intenta distribuir el tráfico IPv4 entrante mediante negociación ARP. El controlador de bonding adapta las respuestas ARP para que diferentes pares puedan enviar tráfico a las direcciones MAC de los miembros. El kernel indica que este modo no requiere soporte especial del switch [1].
La distribución y el resultado dependen del patrón de tráfico, los controladores y el comportamiento de la red. No asumas que una transferencia única utilizará simultáneamente la capacidad de todos los enlaces. Además, la parte de balanceo de recepción descrita por el kernel se basa en ARP para IPv4; no debe interpretarse como un mecanismo equivalente para cualquier tráfico IPv6 [1].
| Modo | Comportamiento general | Requisito de configuración del switch |
|---|---|---|
active-backup | Una interfaz transmite y otra toma el relevo si falla. | Normalmente no requiere configuración especial. |
802.3ad | Agregación dinámica mediante LACP. | El switch debe tener configurado el grupo LACP correspondiente. |
balance-alb | Equilibrio adaptativo de salida y de parte del tráfico IPv4 de entrada. | El kernel indica que no requiere configuración especial. |
El modo 802.3ad necesita soporte y configuración coordinada en el switch; balance-alb ofrece un modelo distinto, gestionado por el host [1].
Ejemplo para ifupdown en Debian
Las opciones y el formato del archivo de red dependen del gestor de red instalado. El siguiente ejemplo es solo para sistemas Debian que administran las interfaces mediante ifupdown y /etc/network/interfaces; no lo pegues en una máquina que use otro gestor, como NetworkManager o systemd-networkd [2][3].
Comprueba primero los nombres reales y el estado de las interfaces:
ip -br link
ip -br address
Haz una copia de /etc/network/interfaces y confirma cuáles interfaces físicas formarán el bond. Después, un ejemplo de configuración estática para dos miembros podría ser:
auto bond0
iface bond0 inet static
address 192.0.2.10/24
gateway 192.0.2.1
bond-slaves enp1s0 enp2s0
bond-mode balance-alb
bond-miimon 100
192.0.2.10/24 y 192.0.2.1 pertenecen a rangos reservados para documentación: sustitúyelos por los valores reales de tu red. Cambia enp1s0 y enp2s0 por los nombres comprobados en el propio servidor. La sintaxis de bond-slaves, bond-mode y las opciones de monitorización está documentada para las extensiones de bonding de ifupdown [3].
El intervalo bond-miimon 100 es un ejemplo de monitorización de enlace en milisegundos, no una recomendación universal. Antes de aplicar la configuración, confirma los requisitos de los controladores, la versión de ifupdown y las reglas de red del sistema [1][3].
Aplicar y verificar con cuidado
Si el servidor es remoto, no cambies la configuración hasta confirmar que puedes acceder a una consola independiente. A continuación, aplica el cambio utilizando las herramientas correspondientes al gestor de red instalado; la forma de activar una nueva configuración no es igual en todas las distribuciones.
En un sistema con el controlador de bonding activo, revisa el estado con:
cat /proc/net/bonding/bond0
ip -d link show bond0
Comprueba que el modo indicado es balance-alb, que aparecen ambos miembros y que la dirección IP y la ruta predeterminada están en la interfaz lógica esperada. Después prueba conectividad desde el servidor y desde otro equipo de la red. La documentación del kernel describe /proc/net/bonding/ como una de las formas de consultar los parámetros y el estado del driver [1].
En resumen
- Bonding crea una interfaz lógica a partir de varios enlaces físicos.
balance-albreparte tráfico saliente y trata de distribuir tráfico IPv4 entrante mediante ARP.- No precisa configuración especial del switch según el kernel, a diferencia de
802.3ad, que requiere LACP. - La configuración de ejemplo es específica de
ifupdown; otros gestores requieren su propio método. - Comprueba interfaces, rutas y acceso de recuperación antes de cambiar una configuración remota.
📚 Fuentes consultadas
- Linux Ethernet Bonding Driver HOWTO — The Linux Kernel documentation
- Bonding — Debian Wiki
- interfaces-bond(5) — ifupdown-ng — Debian Manpages