[FUG-BR] balanceamento ipfw

Wanderson Tinti wanderson em bsd.com.br
Quarta Abril 15 17:03:09 BRT 2009


2009/4/15 Welkson Renny de Medeiros <welkson em focusautomacao.com.br>:
> Wanderson Tinti escreveu:
>> 2009/4/15 Welkson Renny de Medeiros <welkson em focusautomacao.com.br>:
>>
>>> Welkson Renny de Medeiros escreveu:
>>>
>>>> Marcello escreveu:
>>>>
>>>>
>>>>> http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/carp.html
>>>>>
>>>>> []'s
>>>>>
>>>>> Em Ter, 2009-04-14 às 17:26 -0300, Alex de A. Souza escreveu:
>>>>>
>>>>>
>>>>>
>>>>>> Existe alguma forma de fazer balanceamento com ipfw?
>>>>>> Eu tenho dois links, um da embratel e outro da telemar.
>>>>>> Estou com o seguinte problema, quando um cai eu tenho que entrar no firewall
>>>>>> e mudar o IP e a rota manualmete para o outro link.
>>>>>> Eu utilizo o freebsd 7.1 com IPFW, NATD e SQUID.
>>>>>> Gostaria de balancear dois links fixo reais.
>>>>>>
>>>>>> -------------------------
>>>>>> Histórico: http://www.fug.com.br/historico/html/freebsd/
>>>>>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>>>>>>
>>>>>>
>>>>>>
>>>>> -------------------------
>>>>> Histórico: http://www.fug.com.br/historico/html/freebsd/
>>>>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>> Marcello,
>>>>
>>>> Poderia dar mais detalhes sobre essa implementação de balanceamento com
>>>> CARP? sempre vejo o pessoal usando CARP para failover de firewall.
>>>>
>>>>
>>>>
>>> Alguém pode comentar sobre essa minha pergunta? CARP para balanceamento
>>> (dois links)?
>>>
>>> --
>>>
>>
>> Welkson, Bom dia.
>> O objetivo do carp é criar redundância entre dois servidores ou mais,
>> fazendo com que cada um deles seja respónsavel por um único endereço
>> na rede. O que os colegas quiseram dizer é, usando o pfsense com todas
>> essas ferramentas que ele oferece, dar para montar um cluster de
>> firewall usando o carp e sincronizar as regras de firewall e o estado
>> da conexão usando o pfsync.
>>
>> Dessa forma se uma maquina do cluster cair você não perde nada, pois a
>> segunda maquina automaticamente ira assumir a posição de mestre(acho
>> que é isso) e dar continuidade ao trabalho, até uma transferência de
>> dados que estiver ocorrendo não sofre perda, porque a tabela de estado
>> da conexão é sincronizada entre os servidores do cluster.
>>
>> Acredito que seja essa sua duvida.
>>
>> De uma lida nesse link:
>> http://www.fug.com.br/index2.php?option=com_content&do_pdf=1&id=124
>> http://under-linux.org/wiki/index.php/Tutoriais/OpenBSD/firewall-carp-pfsync
>> -------------------------
>> Histórico: http://www.fug.com.br/historico/html/freebsd/
>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>>
>>
>>
> Entendi... como eu imaginei.
>
> Agora uma solução mais simples, com um único pc seria usando o setfib
> que você sugeriu não é isso?
>
> Agora a pergunta que não quer calar... usando setfib, quando uma das
> intefaces cair (um dos links de internet), ele vai continuar TENTANDO
> mandar para esse link certo? ou ele detecta a queda e automaticamente
> manda somente para o outro?
>
> Desculpa a quantidade de perguntas, mas é algo que sempre vejo o pessoal
> comentar, e nunca vejo uma solução.
>
> Abraço,
>
Boa tarde.
Sim, você pode ter dois links ou mais e usar a tabela fib pra
distribuir as requisições para cada link. Quando um dos link estiver
fora, algumas requisições terão problemas(desconheço alguma opção
própria para contorna isso). Um solução que pensei, resume em um
script pra verificar se os links estão ativo ou não, se link1 estiver
ativo e link2 não, toda requisição sairia pelo link1 e vice versa, até
volta ao modo estável, algo tipo:

add 1000 set 1 prob 0.5 skipto 3000 all from any to any out //metade
pra fib0, resto fib1
add 2000 set 2 setfib 0 all from any to any out
add 2100 set 2 allow all from any to any out keep-state
add 3000 set 3 setfib 1 all from any to any out
add 3100 set 3 allow ip from any to any out keep-state

script
Os dois links estão ok, então:
ipfw set enable 1 2 3
link 1 (setfib 0) tá fora, então:
ipfw set disable 1 2
ipfw set enable 3
link 2 (setfib 1) tá fora, então:
ipfw set disable 1 3
ipfw set enable 2

Seria mais ou mesmo isso, metade pra cada link. Seria bom se alguém
que já usa oferecer alguma informação.


Mais detalhes sobre a lista de discussão freebsd