El 26 de julio de 2009 21:48, tq<[email protected]> escribió: > 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 >
Ese post fue un ejemplo rapido, nunca lo implementé. Fue como un punto de partida para uno de los chicos del lug que lo necesitaba. Lo que hace el Squid con el script es seleccionar un IP para usar como origen. Esa IP después la usas para hacer source routing y seleccionar por donde querés salir. El link que pegás esta bueno, es la solución más genérica. saludos! -- Diego Woitasen 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
