Cómo Hacer Bonding en RHEL4 y Clones

Imagen de Manu

Tema: 

Cómo Hacer Bonding con 2 Tarjetas de Red y Proveer Tolerancia a Fallos en RHEL4 y Clones

El siguiente procedimiento ilustra cómo se pude hacer un “link” con 2 tarjetas de red, aunque el término más apropiado es bonding o trunking, de forma que se pueda proveer tolerancia a fallos y balance de carga en su red. El procedimiento lo he aplicado en RedHat Enterprise Linux AS 4 y Centos 4.

1. En /etc/sysconfig/network-scripts, creamos el archivo de configuración para la interfaz que hará bonding:

DEVICE=bond0
BOOTPROTO=static
IPADDR=192-168.1..X
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes

2. En /etc/sysconfig/network-scripts modificamos los archivos de las tarjetas que queremos hacer bonding, en mi caso usaremos eth0 y eth1, y agregamos las entradas MASTER y SLAVE al final de ifcfg-eth0, ifcfg-eth1:

MASTER=bond0
SLAVE=yes

3. Agregar una entrada alias en /etc/modprobe.conf:

alias bond0 bonding
options bond0 mode=0

mode Especifica la política que aplicará el módulo bonding(0= round robin. Provee tolerancia a fallos y balance de carga, 1=Active Backup, el tráfico se recibe y se envía a travéz de la primera interfáz esclava, sólo en caso de que falle se escogerá otra, hay 3 más pero para lo que queremos basta la primera opción)

4. Hacemos un:

service network restart

5. Finalmente comprobamos que nuestros links están funcionando mediante el comando:

ethtool eth0 | grep "Link detected:"
ethtool eth1 | grep "Link detected:"

Aparecerá la línea:

Link detected: yes

Listo, ahora si les asalta la duda sobre el funcionamiento, sólo tienen que hacer un ping hacia algún lugar en el universo, y desconectan el un cable de red(uno a la vez), y sorpresa!!, la señal no se perderá. Con esto confirmamos que ha funcionado.

Este procedimiento es sumamente sencillo, pero vaya que es útil cuando los dichosos dispositivos de red fallan.

Referencia:
http://www.redhat.com/docs/manuals/enterprise/RHEL-3-Manual/ref-guide/s1-modules-ethernet.html

Comentarios

Confirmado ahora, en el otro

Imagen de Epe

Confirmado

ahora, en el otro lado, en la otra máquina hacia donde van los cables también hay que activar el bonding o trunking como le llaman los switches, porque sino no funcionará.

Lo mejor para probar es quitar un cable, y sigue conectado, ponerlo y quitar el otro y debe seguir conectado.

A propósito, el bonding permite tarjetas de varios proveedores y diversas velocidades, él se ocupa del resto. Lo he probado con 4 tarjetas de 100mbits logrando por supuesto un alcance técnico de 400mbits y una redundancia en mi conexión.

Aunque lo normal es 2 tarjetas del mismo tipo.

El bonding tiene técnicas de balanceo de carga que te permiten mandar paquetes según ciertos algoritmos por las diversas tarjetas, a veces es bueno probarlo.

Los fuentes del kernel en el directori ode Documentation explican más detalladamente esto también.

saludos
epe
--
EcuaLinux.com
Ecuador: (02)3412402 - (09)9246504
USA: + 1 404 795 0321

Saludos
epe

EcuaLinux.com

+(593) 9 9924 6504

Servicios en Software Libre

No prob... a veces nos pasa

Imagen de Epe

No prob... a veces nos pasa que se nos olvidan detalles que parecen obvios (a quien se le ocurriría poner bonding sin activar el trunking del otro lado)... pero a mi al inicio me pasó.. jeje.

Bueno el art... yo quería publicar uno así hace tiempo pero el tiempo es el que falta... así que ya está resuelta esa parte.

Deberíamos hacer una lista de TODOs para que el que tenga tiempo los vaya publicando
saludos!
epe
--
EcuaLinux.com
Ecuador: (02)3412402 - (09)9246504
USA: + 1 404 795 0321

Saludos
epe

EcuaLinux.com

+(593) 9 9924 6504

Servicios en Software Libre

Error al utilizar 2 ISP

Yo hice toda la configuracion con 2 ISP diferentes y funciono bien,veo la interfaz bond0 con la IP asignada. Pero perdi la salida a internet de la maquina. Al hacer un route -n no hay degault gateway. Sera porque el Bond0 no lleva puerta de enlace que se puede hacer en ese caso.

Gracias por la ayuda

Hummm

Imagen de Monkito

No estoy muy seguro de lo que voy a decir pero igual lo digo para que me corrijan...

El bonding es un sistema por decirlo así, de "redundancia de capa 2", si tienes 2 ISP necesitas "redundancia de capa 3" para eso son los protocolos de enrutamiento, rip eigr, ospf, bgp etc etc...

para que uses bonding con por lo menos un ISP mira si puedes agregar la ruta correspondiente a bond0 con :


route add default gw TUPUERTADEENLACE dev bond0

PD: No creo que se pueda, y si se puede, no creo que sea tan saludable usar 2 conexiones a Internet al mismo tiempo para navegar en una página, muchas de ellas utilizan validaciones de direcciones IP, sesiones, etc etc, y al salir por 2 isp, siempre vas a tener al menos 2 direcciones públicas.

------------
counter.li.org

Cogito Ergo Sum

WARNING

Muchas gracias Manu,

La guia va estupendamente tmb en RHEL v5.

Lo que me ocurre es que me da los siguientes WARNINGS:

Primero:

bonding: bond0: Warning: the permanent HWaddr of eth0 -
00:17:31:AD:53:BB - is still in use by bond0. Set the HWaddr of eth0 to a different
address to avoid conflicts.

Segundo:

bonding: bond0: Warning: failed to get speed and duplex from
eth0, assumed to be 100Mb/sec and Full

Tercero:

bonding: bond0: Warning: failed to get speed and duplex from
eth1, assumed to be 100Mb/sec and Full

Alguna idea de porque me da esos warnings y como solucionarlos.

He revisado la configuración varias veces y esta tal y como tu la tienes, tambien he comprobado que als interfaces eth0 y eth1 estan negociendo el enlace a 1000/full.

Un saludo.

Haber una duda, si yo tengo 2

Imagen de nino1511

Haber una duda, si yo tengo 2 proveedores de internet como sería la configuración:
bond0 que direcciones debe llevar?
ya que la eth1 tiene la ip del primer proveedor
y la eth2 tiene la ip del 2 segundo proveedor
eth0 conectada a la lan, si yo quiero hacer bonding para aprovechar 2 conexiones de internet que ip debe llevar bond0.

Saludos

Vamos Ecuador, si se puede

Me parece que teniendo dos

Imagen de antares

Me parece que teniendo dos ISP no puedes hacer BOND, sino enrutamiento para hacer balanceo de carga (si, es bastante simple).

Mira, el BOND en esencia significa que si la una tarjeta de red cae, la otra sigue activa. El BOND tiene una ip. Con dos ISP tendrías dos direcciones IPS públicas diferentes, o sea ya no puedes hacer bonding.

Saludos,

antares