[FUG-BR] Balance usando PF

Luiz Gustavo S. Costa luizgustavo em luizgustavo.pro.br
Terça Julho 12 15:53:34 BRT 2011


do man do pf.conf

     probability ⟨number⟩
           A probability attribute can be attached to a rule, with a value set
           between 0 and 1, bounds not included.  In that case, the rule will
           be honoured using the given probability value only.  For example,
           the following rule will drop 20% of incoming ICMP packets:

                 block in proto icmp probability 20%

então é usar um route-to com probability

abraços

Em 12 de julho de 2011 08:41, Mario Lobo <lobo em bsd.com.br> escreveu:
> On Thursday 19 May 2011 10:44:42 you wrote:
>> Bom dia pessoal
>>
>> queria pedir uma ajuda se possível dos conhecedores, seguinte estou fazendo
>> um balance
>>
>> com o PF, está funcionando certinho em laboratório perfeito, porem queria
>> saber se é possível
>>
>> fazer com pesos diferentes como o prob do ipfw.
>>
>> pois todos os testes que fiz ele divide a carga por igual, porem os links
>> de saída são de velocidades
>>
>> diferentes, procurei na internet e não encontrei, creio que não é possível
>> mesmo, mas queria
>>
>> confirmar isso com vocês.
>>
>> a configuração de teste que fiz está abaixo, funcionando perfeito,
>> precisava somente jogar tipo
>>
>> 50% pra um link, 25% pra outro e 25% para o outro.
>>
>> é possível isso com o PF? Obrigado pessoal
>>
>
> [Snip]
>
>>
>>
>>
>> # Roteia pacotes de quaisquer IPs na $ext_if1 para $ext_gw1, e faz
>>
>> # o mesmo para $ext_if2 e $ext_gw2
>>
>> pass out on $ext_if1 route-to ($ext_if2 $ext_gw2) from $ext_if2 to any
>>
>> pass out on $ext_if1 route-to ($ext_if3 $ext_gw3) from $ext_if3 to any
>>
>> pass out on $ext_if2 route-to ($ext_if1 $ext_gw1) from $ext_if1 to any
>>
>> pass out on $ext_if2 route-to ($ext_if3 $ext_gw3) from $ext_if3 to any
>>
>> pass out on $ext_if3 route-to ($ext_if1 $ext_gw1) from $ext_if2 to any
>>
>> pass out on $ext_if3 route-to ($ext_if2 $ext_gw2) from $ext_if1 to any
>>
>>
>
> Leandro/lista;
>
> Vi este e-mail aqui na lista.
>
> Estou querendo fazer a mesma coisa aqui na empresa só que com 2 links de
> internet. um de 1M e outro de 2M, e duas redes internas pra ditribuir.
>
> O link de 1M é que ja estava e é o gateway padrao da maquina. O de 2M foi
> adicionado a pouco.
>
>
>
> fiz o seguinte:
>
>
>  nat on $ext_if from any to any -> $my_ext_ip port 1024:65535
> * nat on $ext_if2 from any to any -> $my_ext_ip2 port 1024:65535
>
>  rdr on $ext_if inet proto tcp to port $SshPort -> lo0 port $SshPort
> * rdr on $ext_if2 inet proto tcp to port $SshPort -> lo0 port $SshPort
>
> * pass in log  quick on $ext_if2 inet proto tcp  from any to lo0  \
>   port $SshPort flags S/SA keep state (max 30, source-track rule, \
>   max-src-nodes 10, max-src-states 2  ### (regra 186)
>
> * pass out quick on $ext_if  route-to ($ext_if $ext_gw) from $ext_if to any
> * pass out quick on $ext_if2 route-to ($ext_if2 $ext_gw2) from $ext_if2 to any
>
>  tentei tambem:
>
> * pass out quick on $ext_if  route-to ($ext_if2 $ext_gw2) from $ext_if2 to any
> * pass out quick on $ext_if2 route-to ($ext_if $ext_gw) from $ext_if to any
>
>  block log all ### (regra 221)
>
>
> Os asteriscos foi o que acrescentei as regras que ja tenho.
>
> Os testes que fiz com route-to nào funcionaram.
>
> Tentei fechar com $SshPort entrando pelo link de 2M. Eu chego ate o servidor
> mas na saída, o pacote não bate nas regras de pass out, e fica querendo sair
> com o IP do link de 1M, conforme abaixo:
>
>
> sis0 = link de 1M. gateway padrão (ext_if)
> rl0 = link de 2M (ext_if2)
> ext_gw = A.A.A.A
> ext_gw2 = B.B.B.B
>
>
> [No FW]> tcpdump -n -e -ttt -i pflog0 host 187.113.99.63 (meu ip de casa)
>
>
> O pacote chega;
>
> 00:00:00.000000 rule 186/0(match): pass in on rl0: 187.113.99.63.47250 >
> 127.0.0.1.5952: [|tcp]
>
>
>
> Em vez de bater nas regras de paas out, ele ta batendo na regra de block
>
>
> 00:00:00.000121 rule 221/0(match): block out on sis0: A.A.A.A.34582 >
> 187.113.99.63.47250:  tcp 40 [bad hdr length 0 - too short, < 20]
> 00:00:02.999948 rule 221/0(match): block out on sis0: A.A.A.A.34244 >
> 187.113.99.63.47250: [|tcp]
> 00:00:03.199982 rule 221/0(match): block out on sis0: A.A.A.A.54550 >
> 187.113.99.63.47250: [|tcp]
>
>
> Leandro, como ficou o default gateway da tua máquina?
> As tuas regras ficaram do jeito acima?
> O que posso estar fazendo errado?
>
> Obrigado
>
> --
> Mario Lobo
> http://www.mallavoodoo.com.br
> FreeBSD since 2.2.8 [not Pro-Audio.... YET!!] (99% winblows FREE)
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>



-- 
  /\             Luiz Gustavo S. Costa
 /  \            Programmer at BSD Perimeter
/    \ /\/\/\    Visit the pfSense Project
/      \    \ \   http://www.pfsense.org
---------------------------------------------------------------------
BSD da serra carioca, Teresopolis (visite: http://miud.in/Inv)
Contatos: luizgustavo em luizgustavo.pro.br / lgcosta em pfsense.org
Blog: http://www.luizgustavo.pro.br


Mais detalhes sobre a lista de discussão freebsd