[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