Diego Woitasen wrote: > Problema: > --------- > > Una PC con 3 conexiones a Internet, sobre las cuales queremos realizar > balanceo de carga. Como el trafico es del tipo WEB, hacemos la > distribucion de carga de la mano de Squid e iproute. > > Solucion - Parte 1, iproute: > ---------------------------- > > Suponiendo que las 3 conexiones ya estan configuradas, agregamos la ruta > default hacia uno de los ISP: > > ip route add default via GW_ISP1 > > Ahora agregamos las rutas hacia los otros 2 ISP, basandonos en las IPs > que estos nos entregan: > > ip rule add from IP_ISP2 table 10 > ip route add default table 10 via GW_ISP2 > > ip rule add from IP_ISP3 table 11 > ip route add default table 11 via GW_ISP3 > > > Solucion - Parte 2, Squid: > -------------------------- > > squid.conf: > external_acl_type balanceo /usr/local/bin/rand-out.py 3 > acl isp1 balanceo 1 > acl isp2 balanceo 2 > acl isp3 balanceo 3 > tcp_outgoing_address IP_ISP1 isp1 > tcp_outgoing_address IP_ISP2 isp2 > tcp_outgoing_address IP_ISP3 isp3 > > /usr/local/bin/rand-out.py: > ------------------------------------------------------------------------------ > #!/usr/bin/python -u > > import random > import sys > > def process(): > line = sys.stdin.readline() > if not line: > return False > > line = line[:-1] > (naddress, address) = line.split() > if not naddress.isdigit() or not address.isdigit(): > print 'ERR' > return True > > naddress = int(naddress) > address = int(address) > rand = random.randint(1, naddress) > if rand == address: > print 'OK' > return True > > print 'ERR' > return True > > while process(): pass > > ------------------------------------------------------------------------------ > > La idea es, crear un tipo de ACL que aleatoriamente devuelve verdadero > entre tres opciones. rand-out.py es un ACL externo que se integra a > Squid para este fin. Cuando ponemos: > > acl isp1 balanceo 1 > > Esta ACL resultara verdadera cuando aleatoriamente el script coincida > con el 1 que pasamos como parametro. Si se da el caso, la linea: > > tcp_outgoing_address IP_ISP1 isp1 > > sera la que se aplicara para el request que caiga en este loteria. > > Tire un pentapie inicial, ahora tenemos tema para desarrollar y cerrar > en la proxima reunion. > > saludos! > >
Diegows, buenas tardes. Estoy retomando este tema en mi trabajo. Hubo algún cambio al respecto sobre lo que posteabas o algún avance en el script? Una consulta, en tus líneas decias que como el trafico es Web usabas SQUID, haber si te entiendo, lo que haces es que "aleatroriamente" sacas las peticiones por una u otra salida? Que opinas de esto: http://gnu-haldrik.blogspot.com/2009/05/balanceo-de-carga-con-dos-adsl-y-lenny.html Muchas Gracias. Salu2. Lanux - Grupo de usuarios de GNU/Linux de Lanus Visitanos en: http://www.lanux.org.ar Reglas de etiqueta para el posteo de mensajes a la lista: http://www.lanux.org.ar/?page_id=35 Articulos y noticias por rss: http://www.lanux.org.ar/?feed=rss2 Lanux por irc: irc.freenode.net -> #lanux. _______________________________________________ General mailing list [email protected] http://listas.lanux.org.ar/cgi-bin/mailman/listinfo/general
