Balanceo de carga parte 2 ADSL
Transcript of Balanceo de carga parte 2 ADSL
-
8/18/2019 Balanceo de carga parte 2 ADSL
1/2
Sobre Ubuntu (/sobre_ubuntu)
Documentación (http://doc.ubuntu-es.org) Blogs (/blog)
Foros (/forum)
(/) Buscar
Ver (/node/17862) Comentarios más valorados (/node/17862/best-commen ts)
(/user/13861)
Taber (/user/13861)
0 puntos
Balancear Carga con dos ADSL y un solo equipo proxy: iproute2
Dom, 28/05/2006 - 12:56
Tutoriales y Trucos (/forum/68)
Planteemos la situación:
Mi empresa tiene 2 adsl, repartidos como dios le dio a entender, es decir,
cada uno tiene configurado de puerta de enlace uno de los dos pero de
manera aleatoria. Como os podeis imaginar esto no es solución, ya que
cuando se caia un adsl todo el mundo que tubiera ese adsl como puerta
de enlace dejaba de tener internet. Tenemos un adsl de 4 megas y otro de
20 megas (bueno teoricos).
Bien, la solución fue el balanceo de carga con los dos adsl, y que ademas asignara diferentes pesos a cadauna de las conexiones, para dar mas car ga a un adsl que otro. No me voy a parar mucho en explicar los
conceptos de redes, asi que puede ser algo "duro" de leer...
Yo pense que esto iba a ser complicado, pero no fue asi. Cogi una maquina antigua, un Pentium III a 733 con
1 Gb y 3 tarjetas ethernet. Instalé una ubuntu como servidor (al final usaremos Debian, ya que recomiendan
un Kernel 2.4 para la estabilidad o algo asi... pero con Ubuntu funciona igual de bien). Hay que instalar el
paquete "iproute2", con esto tendremos un monton de comandos nuevos que permiten trastear a nivel 3,
vamos a nivel IP, con tu linux. A destacar el comando "tc" que te permite hacer un QoS de manera muy
sencillita.
Bueno a lo que ibamos:
1.) Tenemos 3 tarjetas ethernet: eth0, eth1, eth2. donde:
eth0 (192.168.0.x) -> red privada (192 .168.0.0/24)
eth1 (10.10.10.2) -> adsl1 (10.10.10.1)
eth2 (10.10.11.2) -> adsl2 (10.10.11.1)
Mi maquina que funcionara para balancear carga tiene esta topologia de red, como veis usa 3 subredes. Hay
que destacar que la conexion entre los routers de adsl y la maquina, pueden ser cables directamente
conectados, o usar un switch... eso depende de los cacharros que tengas por alli :)
2.) Comprobamos que tenemos el comando "ip", si no es asi, mira si has instalado el paquete "iproute". Este
comando nos permitirá hacer las rutas y el balanceo de carga.
3.) Inserta esto:
# echo 200 adsl1 >> /etc/iproute2/rt_tables
# echo 201 adsl2 >> /etc/iproute2/rt_tables
Esto nos introduce dos nuevas tablas de enrutamiento llamadas "adsl1" y "adsl2", con esos numeros
asociados (mira los que ya estan en uso haciendo un "more /etc/iproute2/rt_tables" y asi no machacar
ninguna tabla). Asi podremos definir reglas diferente para cada uno de los adsl sin hacer todo un lio, y
ademas poder saber en todo momento que estamos haciendo.
4.) Definimos el enrutamiento de adsl1:
# ip route add 10.10.10.0/24 dev eth1 src 10.10.10.2 table adsl1
# ip route add default via 10.10.10.1 table adsl1
Esto le dice que la red 10.10.10.0 es la red de mi interfaz eth1 con la salida por el adsl.Compruebalo mediante: ip route show table adsl1
5.) Definimos el enrutamiento del adsl2:
# ip route add 10.10.11.0/24 dev eth2 src 10.10.11.2 table adsl2
# ip route add default via 10.10.11.1 table adsl2
Idem a lo anterior.
6.) Poner las rutas principales:
# ip route add 10.10.10.0/24 dev eth1 src 10.10.10.2
# ip route add 10.10.11.0/24 dev eth2 src 10.10.11.2
Date cuenta que ahora no decimos en que tabla meterlo, por lo que se mete en la tabla principal. Lo anterior
era para cuando el trafico ya esta en una de las dos subredes de salida y necesitamos saber como enrutarlo.
En cambio las segundas son las primeras reglas para que funcione y las envie dondo debe.
7.) ¿Donde mando esto?
# ip rule add from 10.10.10.2 table adsl1
# ip rule add from 10.10.11.2 table adsl2
Esto sirve para aplicar las reglas almacenadas en cada una de las tablas cuando se cumple que vienen de
esas ips.8.) La madre del cordero: Balanceo de carga.
31
Inicio de sesión
Nombre de usuario *
Contraseña *
Crear nueva cuenta (/user/register)
Solicitar una nueva contraseña
(/user/password)
Iniciar ses ión
Este sitio usa cookies para mejorar la experiencia de usuario
Navegando o haciendo click en cualquier enlace está dándonos consentimiento para
usar cookies.
Acepto
No, give me more info
http://www.ubuntu-es.org/user/13861http://www.ubuntu-es.org/user/13861http://www.ubuntu-es.org/node/17862http://www.ubuntu-es.org/node/17862/best-commentshttp://www.ubuntu-es.org/forumhttp://www.ubuntu-es.org/forumhttp://doc.ubuntu-es.org/http://www.ubuntu-es.org/http://www.ubuntu-es.org/sobre_ubuntuhttp://www.ubuntu-es.org/http://www.ubuntu-es.org/sobre_ubuntuhttp://www.ubuntu-es.org/user/passwordhttp://www.ubuntu-es.org/user/registerhttp://www.ubuntu-es.org/forum/68http://www.ubuntu-es.org/user/13861http://www.ubuntu-es.org/user/13861http://www.ubuntu-es.org/node/17862/best-commentshttp://www.ubuntu-es.org/node/17862http://www.ubuntu-es.org/http://www.ubuntu-es.org/forumhttp://www.ubuntu-es.org/bloghttp://doc.ubuntu-es.org/http://www.ubuntu-es.org/sobre_ubuntu
-
8/18/2019 Balanceo de carga parte 2 ADSL
2/2
(/user/2676
0
ip route add default scope global nexthop via 10.10.10.2 dev eth1 weight 1 nexthop via 10.10.11.2 dev eth2
weight 2
Como ves, le he dicho: "Usa eth1 1 de cada 3 veces, sino usa eth2 2 de cada 3 veces".
Solo existe un problema. Las rutas son cacheadas, es decir, si tu pides "www.google.es
(http://www.google.es)" y se enruta por adsl1, la siguiente vez, hasta que caduque el cacheo, ira por adsl1...
Esto es malo... Ya que si adsl1 se cae, las rutas cacheadas fallaran, aunque adsl2 este disponible, si no
estan cacheadas iran por adsl2.
Para solucionarlo, habria que parchear el kernel, segun estos parches: http://www.ssi.bg/~ja/#routes
(http://www.ssi.bg/~ja/#routes)
Aunque con hacer: ip route flush se podria arreglar de manera manual.
Hilo movido (/comment/322918#comment-322918)Gabriel_M (/user/26762) Jue, 19/03/2009 - 00:51
A un for o m as apro piad o
Equipo de Ubuntu-es (index.php?q=contacto)
Normas (index.php?q=forum/normas)
Documen tación (http://doc.ubuntu-es.org/)
Saludos.
Equipo de Ubuntu-es (/index.php?q=contacto)
Normas (/index.php?q=forum/normas)
Documen tación (http://doc.ubuntu-es.org/)
Contacto (/contacto)
Historia (/historia)
Legal (/legal)
Licencia de contenidos (/licencia-contenido)
Normas de los foros (/forum/normas)
Normas de los blogs (/blog/normas)
Identi.ca (http://identi.ca/ubuntues)
Twitter (http://twitter.com/#!/ubuntu_es)
Facebook(https://www.facebook.com/pages/Ubuntu-es/221373207876947)
Google+(https://plus.google.com/101790443404001019295)
Los contenidos de esta web están
bajo una licencia
(http://creativecommons.org/policies#lice
Creative Commons
(http://creativecommons.org/licenses/by/
si no se indica lo contrario
(http://creativecommons.org/licenses/by/
(ht tp: // www. ubunt u-es .org/ ) (ht tp: // www. adi tel .org/ ) (ht tp: // www. drupal .org/ )
http://www.drupal.org/http://www.aditel.org/http://www.ubuntu-es.org/http://creativecommons.org/licenses/by/3.0/es/deed.eshttp://creativecommons.org/licenses/by/3.0/es/deed.eshttp://creativecommons.org/policies#licensehttps://plus.google.com/101790443404001019295https://www.facebook.com/pages/Ubuntu-es/221373207876947http://twitter.com/#!/ubuntu_eshttp://identi.ca/ubuntueshttp://www.ubuntu-es.org/blog/normashttp://www.ubuntu-es.org/forum/normashttp://www.ubuntu-es.org/licencia-contenidohttp://www.ubuntu-es.org/legalhttp://www.ubuntu-es.org/historiahttp://www.ubuntu-es.org/contactohttp://doc.ubuntu-es.org/http://www.ubuntu-es.org/index.php?q=forum/normashttp://www.ubuntu-es.org/index.php?q=contactohttp://doc.ubuntu-es.org/http://www.ubuntu-es.org/node/index.php?q=forum/normashttp://www.ubuntu-es.org/node/index.php?q=contactohttp://www.ubuntu-es.org/user/26762http://www.ubuntu-es.org/comment/322918#comment-322918http://www.ssi.bg/~ja/#routeshttp://www.google.es/http://www.ubuntu-es.org/user/26762http://www.ubuntu-es.org/node/17862?rate=eA_t8WxuhwBKNAAkLpgKW-hA35PspGLxc8bSyPTDTdwhttp://www.ubuntu-es.org/node/17862?rate=0TDAJU19_H7UfoM8eGm5QgVMilhPZMkvOs-lQtzg1BQ