[LUG.ro] balanceo de carga con 2 adsl
Sebastian Dominguez
sebaminguez en gmail.com
Lun Jul 5 17:59:46 ART 2010
El 05/07/10 10:12, Bernardo lamas escribió:
> La propuesta que se me ocurrio hacerles, fue que implementaran balanceo de
>
> carga entre las 2 adsl.
>
> Bueno, cualquier consejo estara bien recibido.
>
>
Hola Bernardo.
Los Kernels 2.6 ya disponen de balanceo sin necesidad de
parchearlos. Si colocas dos default gateways va a repartir las
conexiones equitativamente. Podes controlar los "pesos" de las
conexiones con la opción nexthop weight. Si bien el balanceo solo por
rutas es un buen comienzo tiene sus limitaciones e inconvenientes.
Un problema es el mencionado con ssl. Si cambias de ip publica (por
cambiar de GW) en medio de una conexión chau conexión.
Ademas como limitación tenes las excasas opciones para elegir una
tabla de ruteo u otra
Otro problema, determinar el parámetro de balanceo. El asignar
pesos a las conexiones es una primera aproximación, envias mas
conexiones por un gateway que por otro, pero ni todas las conexiones son
iguales ni los accesos funcionana siempre igual. Dependiendo el uso y
otras condiciones los accesos a internet responden de forma diferente. A
veces el proveedor te cierra la canilla y te deja al 50%, con lo que el
peso asignado inicialmente ya no es tan válido.
Para evitar los problemas anteriores te recomiendo iptables +
iproute2 (marcado mangle + tablas de ruteo). La idea es asociar una
marca MANGLE a una tabla de ruteo (y un gateway), luego marcas paquetes
con toda la fllexibilidad que te da iptables. Tenes ejemplos de esto en
lartc.org
Una posible solución es NO hacer balanceo dinámico. Suena
contradictorio, pero si nos enfocamos en el problema inicial puede tener
lógica en algunos casos. Analiza que trafico se quiere mejorar. Con esto
quiero decir que saques por un enlace a todo el trafico que tenga que
ver con la importancia del negocio y dejes el otro para las cosas menos
sensibles o importantes. Por ejemplo, las conexiones al sistema/intranet
siempre por el enlace bueno. Navegación de ocio, correos, etc por el
otro. En caso de caída de un enlace asocias todo al que queda.
Otra elegir un enlace u otro según la comparación de metricas. Con
métrica hago referencia a alguna medición o estado del enlace sea
latencia, transferencia, etc. (nota que si usas kb/s a secas caes casi
en el caso de los pesos anteriores). Por ejemplo, si elegís el tiempo de
respuesta contra google (o tu hosting o lo que sea) como métrica
tomarías el enlace con menor tiempo de respuesta y marcas todas las
conexiones para que salgan por ese enlace. A los 5 minutos comparas otra
vez y cambias la marca segun corresponda. Como mangle marca por
conexiones te da una mano grande con ssl. Te quedan afuera los
protocolos no orientados a conexión, pero eligiendo bien el tiempo entre
comparaciones podes solucionar el tema.
Lamentablemente no utilizo nada empaquetado para el balanceo ni
conozco una manera totalmente efectiva de hacerlo. Todo depende el
efecto que quieras lograr.
Un abrazo.
--
Sebastian A. Dominguez
Más información sobre la lista de distribución Lugro