[FUG-BR] Balance usando PF

Leandro - Intersol listas em intersolinformatica.com.br
Quinta Maio 19 10:44:42 BRT 2011


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 

lan_net = "192.168.10.0/24"

int_if  = "wlan0"

ext_if1 = "xl0"

ext_if2 = "vlan10"

ext_if3 = "vlan20"

ext_gw1 = "189.85.193.57"

ext_gw2 = "172.16.10.1"

ext_gw3 = "172.16.20.1"

 

# Faz nat em conexões de saída, em ambas as interfaces da Internet

nat on $ext_if1 from $lan_net to any -> ($ext_if1)

nat on $ext_if2 from $lan_net to any -> ($ext_if2)

nat on $ext_if3 from $lan_net to any -> ($ext_if3)

 

# Passa todo o tráfego de saída na interface interna

pass out on $int_if from any to $lan_net

 

# Aceita e passa direto quaisquer pacotes destinados ao próprio gateway

pass in quick on $int_if from $lan_net to $int_if

 

# Faz balanceamento de carga no tráfego TCP de saída da rede interna.

pass in on $int_if route-to \

    { ($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2), ($ext_if3 $ext_gw3) }
round-robin \

    proto tcp from $lan_net to any flags S/SA modulate state

 

# Balanceamento de carga em tráfego udp e icmp vindo da rede interna

pass in on $int_if route-to \

    { ($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2), ($ext_if3 $ext_gw3) }
round-robin \

    proto { udp, icmp } from $lan_net to any keep state

 

#servicos que nao podem ser balanceados

#https

pass in on $int_if \

    route-to ($ext_if1 $ext_gw1) \

                               proto tcp from $lan_net to any port 443 

 

#msn

pass in on $int_if \

    route-to ($ext_if1 $ext_gw1) \

                               proto tcp from $lan_net to any port 1863

                               

#ftp

pass in on $int_if \

    route-to ($ext_if1 $ext_gw1) \

                               proto tcp from $lan_net to any port {20, 21} 

 

#ssh

pass in on $int_if \

    route-to ($ext_if1 $ext_gw1) \

                               proto tcp from $lan_net to any port 22 

 

# Regras gerais de permissão de tráfego de saída para as

# interfaces externas

pass out on $ext_if1 proto tcp from any to any flags S/SA modulate state

pass out on $ext_if1 proto { udp, icmp } from any to any keep state

pass out on $ext_if2 proto tcp from any to any flags S/SA modulate state

pass out on $ext_if2 proto { udp, icmp } from any to any keep state

 

# 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

 

 



Mais detalhes sobre a lista de discussão freebsd