jueves, abril 12, 2007

Howto Bonding Linux Box

En este post voy a explicar como configurar un Linux para que haga bonding.
¿Bonding?
Si, es el metodo para tratar una o varias tarjetas como una sola, ganando asi tolerancia a fallos y/o rendimiento.

Modulos del Kernel:
bonding

Este modulo lo podemos encontrar en Device Drivers, Network Device support, Bonding driver support.
Una vez activado, procemos a compilar los modulos y a instalarlos.
# make modules; make modules_install

y ya.

Herramientas de usuario:
El paquete se llama ifenslave, hay dos, uno para 2.4 y otro para 2.6, yo he instalado ifenslave-2.6 ya que utilizo el kernel 2.6.20.

Los pasos a seguir son: cargar modulo, levantar interfaz bond0 y añadir dispositivos al bond0.

Para probar podemos cargar el modulo:
# modprobe bonding

ahora levantamos bond0:
#ifconfig bond0 192.168.1.1
ahora añadimos eth0 y eth1 a bond0;
ifenslave bond0 eth0 eth1

y con esto ya tenemos que tener salida a internet.

Bien ahora voy a comentar archivos de configuración que he tocado

/etc/modutils/aliases
alias bond0 bonding
options bonding mode=0 miimon=100

Con estas opciones se pone en modo 0, hace round-robin y el timeout es de 1 decima.

/etc/network/interfaces
auto bond0
iface bond0 inet dhcp
hwaddress ether 00:05:69:0E:02:7D
post-up ifenslave bond0 eth0 eth1
pre-down ifenslave -d bond0 eth0 eth1

ojito que en este fichero no debe aparecer configuracion sobre eth0 y eth1, solo de bond0.

/etc/modules

bonding

Con esto, la maquina ya debe arrancar y configurarse bien, ojito que la configuracion que utilizo es para coger ip dinamica, para estatica hay que indicarlo como si de un interfaz normal se tratase.

Referencias:
http://linux-net.osdl.org/index.php/Bonding#Bonding_Driver_Options
http://www.howtoforge.com/network_bonding_ubuntu_6.10

9 comentarios:

arrase dijo...

Killo, no encuentro tu mail por ninguna parte, ¿no sabes lo que es un formulario de contacto? :)

En fin, sobre lo que deciamos esta tarde sobre el bonding y las dos adsl, creo que la cosa va de ponerlo en modo 6 pero no estoy seguro 100%, si me funciona te lo cuento.

Mandame un mail y me guardare el tuyo, en mi web tienes todos los datos.

Tu que conoces a mas gente de los departamentos que yo, ¿a quien le puedo mandar un mail de consulta a ver una tercera opinion sobre el tema, alguien que no tenga cara de haber mordido un limon al levantarse,...ya sabes a que/quien me refiero :) .

Saludetes....

Yenin dijo...

Hola PepeLinux..!!

Sabes, hago un preambulo para que sepas que no soy muy diestra en esto de Linux.Pero ahora, me pidieron que ponga a trabajar dos tarjetas de red de un equipo que tiene red hat 4 de 64bit. Yo trate de hacer bondig para esa maquina y no me funciono.

Yo veo que tengo el modulo para trabajar el bonding

ls -la /etc/modprobe.conf
-rw-r--r-- 1 root root 351 abr 17 08:20 /etc/modprobe.conf

Pero no se si esta activo, como tú explicas al comienzo de tú articulo. Si puedes ayudarme a saber como pruebo que mi modulo de bonding este funcionando te lo agradezco.

Saludos
Yenin

PePeLiNuX dijo...

yenin, el fichero /etc/modprobe.conf tiene la lista de los modulos a cargar al iniciar el sistema.... para comprobar si el modulo bonding está cargado debes ejecutar lsmod |grep bonding

Te veo muy verde, no entiendo como en el trabajo te han mandado hacer este tipo de cosas tan dificiles... tratandose de una rhel4 deberías consultar en la documentación de rhel4 antes que por internet, simplemente porque seguramente se hará de forma distinta a debian/ubuntu.

Saludos y suerte.

Anónimo dijo...

PepeLinux, es posible hacer con dos lineas adsl diferentes, con ips diferentes, p.e. una con 192.168.1.1 y la otra con 192.168.2.1, ó 192.168.1.1 y 192.168.1.2, por q he probado y solo funciona cuando se le pone a un solo router, con dos no funciona o que hice mal o q me falta

PePeLiNuX dijo...

para las dos ADSL esto no sirve tal cual... este articulo está pensando para trabajar con una única IP peeeero con dos tarjetas de red, tu lo que quieres es trabajar con 2 IP (me da igual el número de tarjetas de red) la pregunta es: ¿tu maquina va a ofrecer servicios? o ¿la vas a utilizar como cliente?

Si va a ofrecer servicios creo que lo mas comodo es enchufarle las 2 IP y montar el dns con dos registros, cada uno apuntando a una ip.

Si la vas a utilizar como cliente tendrás que utilizar algún software que implemente rutas dinámicas... este tema nunca lo he experimentado, supongo que habrá algún software que trabaje con los protocolos OSPF y RIP.

También se puede dar el caso que consigas un router al cual le enchufes las 2 ADSL y el router ya utilize las 2 ADSL.

Suerte.

Suerte.

pamchi dijo...

Que tal Pepelinux, yo también estoy interesado en la solución de la pregunta anterior hecha por "anonimo", quisiera saber si es posible tener dos ip's diferentes en las dos tarjetas de red.? tengo un webservice que unicamente me da una respueta por segundo, si tubiera dos ip's utilizando bonding podría tener dos respuestas por segundo, no sé si me explico bien?

PePeLiNuX dijo...

pamchi: mirate LVS Linux Virtual Server creo que el paquete ipvs te servirá como solución. Saludos y suerte.

DeCasasyAutos dijo...

Agrego los pasos para hacerlo en RHEL, a mi entender: mas sencillo:
http://kbase.redhat.com/faq/docs/DOC-7944

Lo hemos configurado así para www.decasasyautos.com un sitio de clasificados gratis para alquilar, vender y comprar autos, casas, departamentos, etc.
Bonding es una solución rapida y economica para tolerancia a fallos y balance de carga aprovechando los recursos disponibles.

Anónimo dijo...

decasasyautos.com? yo compre mi auto x ese sitio, muy bueno.