[FUG-BR] TPROXY rodando em outro servidor

Patrick Tracanelli eksffa em freebsdbrasil.com.br
Segunda Junho 28 11:33:07 BRT 2010


Em 27/06/2010, às 13:04, João Paulo Just Peixoto escreveu:

> On Sun, 27 Jun 2010 08:02:34 -0300, Luiz Otavio O Souza
> <lists.br em gmail.com> wrote:
>> Joao Paulo,
>> 
>> Veja, o tproxy utiliza os IPs dos clientes para buscar as páginas na
> web.
>> 
>> Para isso você tem que interceptar o trafego dos clientes (como router
> ou
>> bridge) você não pode ter duas maquinas na mesma rede com o mesmo IP (a
>> maquina do cliente e o tproxy - dois mac address diferentes concorrendo
>> pelo mesmo IP).
>> 
>> A saída dos pacotes a partir do servidor não será problema pois seguirá
> do
>> seu default router, assim você só precisa se preocupar com a volta.
>> 
>> Pode ser que funcione se você forçar a volta dos pacotes (pacotes com
>> origem da porta 80 e destino para a rede/IP de clientes) diretamente
> para o
>> tproxy a partir do seu roteador/gateway/firewall.
>> 
>> Deixe o resto dos pacotes seguindo o caminho default (rota) para os
>> clientes.
>> 
>> Boa sorte :)
>> 
>> Luiz
> 
> Olá, Luiz.
> 
> Imaginei exatamente isso. Queria fazer um teste configurando o roteador
> para devolver os pacotes oriundos da porta 80 para o servidor com o Lusca,
> mas a operadora não me dá acesso ao roteador :(
> 
> De qualquer forma, vou tentar ver com eles pra fazermos esse teste.
> Acredito que só falta isso pra resolver meu problema. :)
> 

Opa, vi que a thread ja esta encaminhada.

Pra fazer o ThunderCache em modo CLUSTER operar com TPROXY tivemos que fazer algumas adaptações. Fizemos o thunder marcar com ToS os pacotes de saída (request), e na frente mandamos acompanhar sessão por sessão tudo que saisse com essa flag:

$fw add count tag 80 tcp from $cluster_node1 to any 80 iptos lowdelay setup keep-state
$fw add count tag 81 tcp from $cluster_node1 to any 80 iptos thorughput setup keep-state

Usamos lowdelay e thorughput  pra não precisar mecher no source do ipfw, pois alguns valores ele ja da match.

Ai no gateway devolvemos o retorno pro cluster_node de acordo com o marcado:

$fw add fwd $cluster_node1 tcp from any 80 to $rede_cliente in via $ife tagged 80
$fw add fwd $cluster_node2 tcp from any 80 to $rede_cliente in via $ife tagged 81

Foi o jeito. Funcionou.

Talvez algo similar seja possível se o gateway do Lusca no seu cenário tambem for FreeBSD.

Lenbre-se que tem que marcar a sessão pois o que importa é o retorno, não a saída.






--
Patrick Tracanelli

FreeBSD Brasil LTDA.
Tel.: (31) 3516-0800
316601 em sip.freebsdbrasil.com.br
http://www.freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"



Mais detalhes sobre a lista de discussão freebsd