[FUG-BR] ALTQ para Balanceamento
Rafael Henrique Faria
rafaelhfaria em cenadigital.com.br
Quarta Junho 23 18:01:11 BRT 2010
Boa noite lista.
Estou com um problema com o PF+ALTQ.
A máquina é um FreeBSD 8.1-PRE, configurado como Bridge.
Esta máquina está entre um Cisco 7200, e um 3Com 7900. E a função
dela, será balancear a banda entre diversas subredes.
Eu criei 4 tabelas, cada uma contendo as subredes que serão balanceadas:
table <sub1> { ips/24 }
table <sub2> { ips/24 }
table <sub3> { ips/24 }
table <sub4> { ips/24 }
As interfaces da maquina são:
wan (ligada ao Cisco): bce0
lan (ligada ao 3Com): bce1
bridge (entre bce0 e bce1): bridge0
vlan (ip administrativo): vlan1
Agora, qual é o meu problema.
Após criar as 4 queues (mais a root), eu precisei colocar uma 5a.
queue, como default, pois o ALTQ não permitia ficar sem uma queue
Default.
altq on $lan_if bandwidth 33Mb hfsc queue { dl_sub1, dl_sub2, dl_sub3,
dl_sub4, dl_def }
queue dl_sub1 bandwidth 8Mb priority 1 qlimit 300 hfsc (realtime
3.20Mb upperlimit 22.40Mb)
queue dl_sub2 bandwidth 8Mb priority 1 qlimit 300 hfsc (realtime
3.20Mb upperlimit 22.40Mb)
queue dl_sub3 bandwidth 8Mb priority 1 qlimit 300 hfsc (realtime
3.20Mb upperlimit 22.40Mb)
queue dl_sub4 bandwidth 8Mb priority 1 qlimit 300 hfsc (realtime
3.20Mb upperlimit 22.40Mb)
queue dl_def bandwidth 128Kb hfsc (default)
Agora, eu setei todos os pass para as queues:
pass log quick from <sub1> to any keep state queue (dl_sub1)
pass log quick from <sub2> to any keep state queue (dl_sub2)
pass log quick from <sub3> to any keep state queue (dl_sub3)
pass log quick from <sub4> to any keep state queue (dl_sub4)
Porém, simplesmente não funciona.
Eu coloquei log em todas as regras, para ter certeza que estava
casando com os IPs das subredes... e tudo está casando...
Coloquei abaixo de todas, pass log all. E fiquei monitorando essa
regra, e não passou nenhum IP das subredes das regras acima.
É muito estranho, pq o consumo da banda, fica meio dividido.
Como podemos ver pelo: pfctl -vvs queue
queue dl_sub1 on bce1 bandwidth 7Mb hfsc( linkshare 7.60Mb )
[ pkts: 263901 bytes: 289112081 dropped pkts: 0 bytes: 0 ]
[ qlength: 0/ 50 ]
[ measured: 475.2 packets/s, 4.11Mb/s ]
queue dl_sub2 on bce1 bandwidth 7Mb hfsc( linkshare 7.60Mb )
[ pkts: 567386 bytes: 747149661 dropped pkts: 0 bytes: 0 ]
[ qlength: 0/ 50 ]
[ measured: 561.2 packets/s, 5.84Mb/s ]
queue dl_sub3 on bce1 bandwidth 7Mb hfsc( linkshare 7.60Mb )
[ pkts: 268904 bytes: 383246359 dropped pkts: 0 bytes: 0 ]
[ qlength: 0/ 50 ]
[ measured: 195.8 packets/s, 2.08Mb/s ]
queue dl_sub4 on bce1 bandwidth 7Mb hfsc( linkshare 7.60Mb )
[ pkts: 407467 bytes: 527832993 dropped pkts: 0 bytes: 0 ]
[ qlength: 1/ 50 ]
[ measured: 660.0 packets/s, 7.37Mb/s ]
queue dl_def on bce1 bandwidth 128Kb hfsc( default )
[ pkts: 1009121 bytes: 1171633648 dropped pkts: 17 bytes: 18399 ]
[ qlength: 0/ 50 ]
[ measured: 1072.0 packets/s, 11.20Mb/s ]
Como podemos ver, está tendo uma certa divisão dos pacontes dentro das
queues... mas não como foi configurado.
A maior parte (11.2mb/s) está saindo pela default... sendo que nas
regras PASS está redirecionando todo o tráfego para as queues...
Alguém já configurou o ALTQ com sucesso, pode dar uma luz?
Agradeço antecipadamente.
--
Rafael Henrique da Silva Faria
Grupo de Sistemas e Redes
Serviço Técnico de Informática
Faculdade de Ciências e Letras do Campus de Araraquara - UNESP
Mais detalhes sobre a lista de discussão freebsd