[FUG-BR] ipfw + wf2q+

Wanderson Tinti wanderson em bsd.com.br
Quarta Maio 6 23:04:04 BRT 2009


Senhores, boa noite.
Gostaria da ajuda e opinião do senhores. Estava eu fazendo uns teste
com ipfw/dummynet/wf2q+ e vim um comportamento estranho, por exemplo:
Definir um link de 512Kb para download em duas maquinas, sendo que uma
(10.40.244.58) tem 80% de banda, os  20% restante fica para a outra
maquina(10.40.244.59). Uma maquina baixa sozinha a 64Kb, não passa
disso, ok. Mas quando a outro entra, uma fica em 40Kb e a outra 35Kb,
ou seja ta ultrapassando o limite definido.
Sendo que deveria ser: 51,2Kb para 10.40.244.58 e 12,8Kb para 10.40.244.59.

Desculpe pela extensão do email, mas se alguém puder me dar uma dica.
Abaixo vou colocar a regra que estou usando.

---
##################################
### IPFW
# Somente para controle de banda.
# Regras de filtragem estao defi-
# nidas no pf.conf.

fw="/sbin/ipfw"
lanA="10.40.244.0/24"
lanC="192.168.254.0/24"
$fw -f flush

##################################
### WF2Q+
# Todo controle de banda e feito na interface interna, rl0.

##################################
### Tabela
#  Defini o endereco IP e Peso+Banda.
#  Tabela 1 para Download
#  Tabela 2 para Upload

#  Tabela Download
$fw table 1 flush
$fw table 1 add 10.40.244.58 80512    # 80% do total de 512Kbit/s
$fw table 1 add 10.40.244.59 20512    # 20% do total de 512Kbit/s
$fw table 1 add 10.40.244.68 60256    # 60% do total de 256Kbit/s
$fw table 1 add 10.40.244.69 40256    # 40% do total de 256Kbit/s

#  Tabela Upload
$fw table 2 flush
$fw table 2 add 10.40.244.58 60128    # 60% do total de 128Kbit/s
$fw table 2 add 10.40.244.59 40128    # 40% do total de 128Kbit/s
$fw table 2 add 10.40.244.68 5064     # 50% do total de 64Kbit/s
$fw table 2 add 10.40.244.69 5064     # 50% do total de 64Kbit/s

##################################
### Pipe
#  Pipe Download - 1 a 20
$fw pipe 1 config mask dst-ip 0x000000ff bw 512Kbit/s
$fw pipe 2 config mask dst-ip 0x000000ff bw 256Kbit/s

#  Pipe Upload - 40 a 60
$fw pipe 40 config mask src-ip 0x000000ff bw 128Kbit/s
$fw pipe 41 config mask src-ip 0x000000ff bw 64Kbit/s

##################################
### Queue
#   Download
$fw queue 10 config pipe 1 weight 80
$fw queue 20 config pipe 1 weight 20

$fw queue 30 config pipe 2 weight 60
$fw queue 40 config pipe 2 weight 40

#   Upload
$fw queue 50 config pipe 40 weight 60
$fw queue 60 config pipe 40 weight 40

$fw queue 70 config pipe 41 weight 50
$fw queue 80 config pipe 41 weight 50

##################################
### Regra de Controle de Banda
# Regra para direcionar trafego entrante pela queue/pipe para ip/peso correto
# Trafego entrando -->
$fw add 10 queue 10 ip from any to table\(1,80512\) via rl0
$fw add 11 queue 20 ip from any to table\(1,20512\) via rl0
$fw add 20 queue 30 ip from any to table\(1,60256\) via rl0
$fw add 21 queue 40 ip from any to table\(1,40256\) via rl0

# Regra para direcionar trafego saindo do ip/peso para a queue/pipe correto
# <-- Trafego saindo
$fw add 30 queue 50 ip from table\(2,60128\) to any via rl0
$fw add 31 queue 60 ip from table\(2,40128\) to any via rl0
$fw add 40 queue 70 ip from table\(2,5064\) to any via rl0
$fw add 41 queue 80 ip from table\(2,5064\) to any via rl0

# Libera e bloqueia todo trafego ip
$fw add 65000 allow ip from any to any
$fw add 65001 deny ip from any to any


Mais detalhes sobre a lista de discussão freebsd