[FUG-BR] Balance usando PF

Mario Lobo lobo em bsd.com.br
Terça Julho 12 08:41:51 BRT 2011


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)


Mais detalhes sobre a lista de discussão freebsd