Ethernet Bonding

Ethernet Bonding
Información sobre la plantilla
GéneroNeteworking
LicenciaLicencia GPL


Ethernet Bonding El ‘bonding’ de tarjetas de red nos permite utilizar múltiples tarjetas como si tuviéramos una sola. Se puede utilizar para hacer balanceo de carga, agregación de enlaces y ancho de banda, tolerancia a fallos.

Historia

El controlador bonding, originalmente creado por Donald Becker, está incluido en prácticamente todas las distribuciones de GNU/Linux y permite sumar las capacidades de varias interfaces físicas de red con objeto de crear una interfaz lógica. Esto se lleva a cabo con el objeto de contar con redundancia o bien balanceo de carga.

Modos de Bonding

       *modo 0 o balance-rr :  Utiliza el método Round-Robin entre las tarjetas de red que forman el
       enlace.Es decir, transmite los paquetes en orden secuencial desde la primera tarjeta esclava
       hasta la última,y entonces vuelve a empezar por la primera de nuevo. Esta opción ofrece balanceo 
       de carga y tolerancia a fallos.
       *modo 1 o active-backup :  Sólo una de las tarjetas esclavas está activa. Si la tarjeta activa falla,
       otra
       tarjeta se vuelve activa y recibe el tráfico. Esta opción ofrece tolerancia a fallos.
       *modo 2 o balance-xor :  Se aplica una política XOR basada en  dirección MAC origen  XOR  dirección MAC
       destino. De esta forma se selecciona la misma tarjeta esclava para cada MAC destino. Esta opción ofrece
       balanceo de carga y tolerancia a fallos.
       *modo 3 o broadcast  : Se retransmiten todos los paquetes a todas las tarjetas esclavas. Esta opción
       ofrece tolerancia a fallos.
       *modo 4 o 802.3ad :  802.3ad nos permite agregar varios enlaces para conseguir un mayor ancho de banda.
       Todos los enlaces deben tener la misma velocidad y ancho de banda.  Es necesario equipamiento de red que
       soporte 802.3ad. En redes esto se conoce como Port Trunking y en Cisco como LACP.
       *modo 5 o balance-tlb :  El tráfico saliente se distribuye según la carga de trabajo en
       cada tarjeta esclava
       *modo 6 o balance-alb :  Incluye el balanceo del tráfico saliente ( modo 5 ) más el balanceo 
       del tráfico entrante

Ejemplo de Configuración Básica

Si tenemos un sistema con cuatro tarjetas de red ( eth0 a eth3 ) la configuración necesaria para configurar el bonding es la siguiente : Creamos el archivo /etc/modproble.d/bonding.confcon el siguiente contenido : alias bond0 bonding

La configuración de las tarjetas esclavas estará en /etc/sysconfig/network-scripts/ifcfg-ethX y será como la siguiente

DEVICE=ethX
MACADDR=xx:xx:xx:xx:xx:xx <-- la que sea en cada caso
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes

Y para la tarjeta bond0 en /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0
ONBOOT=yes
BOOTPROTO=none
IPADDR=10.0.0.3
NETMASK=255.255.255.0
NETWORK=10.0.0.0
GATEWAY=10.0.0.1
BONDING_OPTS="mode=0 miimon=100"

El parámetro miimon indica cada cuantos milisegundos se comprueba el estado de las tarjetas activas. Para comprobar que el bonding funciona hago lo siguiente. En una máquina lanzo un ping a la ip de la tarjeta bond0 y en el equipo con el bonding ejecuto el comando :

watch -d -n1 netstat -i

Para que nos arroje una aplicacion llamada Kernel Interface Table y luego con :

Con el parámetro -d veremos resaltado con gris los cambios que ocurran, en este caso el número de paquetes que se envían y reciben. Y veremos como se van alternando las siguientes tarjetas de red en la recepción y envío de paquetes según el algoritmo indicado en el archivo ifcfg-bond0 Si queremos quitar una de las tarjetas de red del enlace bond0 tenemos que ejecutar el comando

ifenslave -d bond0 ethX

Y veremos como los nuevos paquetes se distribuyen entre el resto de tarjetas de red disponibles.

Véase también

Fuentes