[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