[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