El 30 de julio de 2009 10:48, tq<[email protected]> escribió:
> Diego Woitasen wrote:
>> El 27 de julio de 2009 15:57, tq<[email protected]> escribió:
>>
>>> Diego Woitasen wrote:
>>>
>>>> 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 -&gt; #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!
>>>>
>>>>
>>>>
>>> Diegows, gracias por tu respuesta.
>>>
>>> Sobre el link que pase lo que no me agrada es que si se cae una de las
>>> líneas todas las conexiones también lo hacen.
>>>
>>> Aquí dejo otro [0] en donde apareces nombrado.
>>>
>>> Que opinas?
>>>
>>> La idea mia sería lograr balance de carga, que si se cae una conexión
>>> todas las conexiones salgan por alguna de las restantes y en el futuro QOS.
>>>
>>> Muchas Gracias.-
>>>
>>> [0]
>>> http://bourneagainshell.blogspot.com/2008/05/de-como-conectar-13-adsls-en-balanceo.html
>>> 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 -&gt; #lanux.
>>> _______________________________________________
>>> General mailing list
>>> [email protected]
>>> http://listas.lanux.org.ar/cgi-bin/mailman/listinfo/general
>>>
>>>
>>
>>
>> Las conexiones del vínculo que se caen las pardés inevitablemente. Yo
>> recomiendo el segundo link que encontraste, es una solución más
>> robusta.
>>
>> saludos!
>>
>>
> Hola Diegows, gracias nuevamente.
>
> Una consulta, además de balance de carga entre varias conexiones
> quisiera implementar QOS para por ejemplo a una IP determinada darle mas
> prioridad.
>
> Me recomendas algo en especial teniendo en cuenta también lo del Balance
> de Carga?
>
> Digo, puedo encarar primero el tema del balance de carga y luego el QOS
> o son soluciones conjuntas?
>
> Muchas Gracias.
>
> Saludos.-
> 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 -&gt; #lanux.
> _______________________________________________
> General mailing list
> [email protected]
> http://listas.lanux.org.ar/cgi-bin/mailman/listinfo/general
>


Son cosas independientes, lás podés encarar por separado sin problemas.

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 -&gt; #lanux.
_______________________________________________
General mailing list
[email protected]
http://listas.lanux.org.ar/cgi-bin/mailman/listinfo/general

Responder a