O ALTQ (Alternate Queueing) é um sistema de enfileiramento de pacotes amplamente usado para implementação de QoS. Muitos administradores de redes que trabalham com *BSD estão acostumados a com a utilização do PF para implementação do ALTQ. Mas também é possível a utilização dele com o IPFW. Vamos ver:
O primeiro passo é compilar o kernel do seu BSD (FreeBSD no meu caso) com as opções necessárias, precisaremos usar o PF para a configuração inicial do ALTQ (se alguém conhecer uma ferramenta específica para gerenciamento das filas, comentários serão bem vindos). Bem, adicione as seguintes linhas no arquivo de configurações do seu kernel:
#PF
device          pf
#ALTQ
options        ALTQ
options        ALTQ_RED
options        ALTQ_RIO
options        ALTQ_CBQ
options        ALTQ_CDNR
options        ALTQ_PRIQ
options        ALTQ_HFSC
options        ALTQ_NOPCC # se você usa sistemas SMP
# IPFIREWALL
options        IPFIREWALL
options        IPFIREWALL_VERBOSE
options        IPFIREWALL_FORWARD
options        IPFIREWALL_NAT
options        IPFIREWALL_DEFAULT_TO_ACCEPT
options        LIBALIAS
options        IPSTEALTH
options        DUMMYNET
options        IPDIVERT
Fiz uma regra de exemplo do ALTQ com subfilas e uso dos algoritmos de detecção e controle de congestionamento para demonstrar que é possível utilizá-lo no IPFW da mesma maneira como seria usado no PF. No seu pf.conf:
altq on nfe0 cbq bandwidth 100Mb queue { http, msn, resto }
.     queue http bandwidth 10% cbq(rio,default)
.     queue msn  bandwidth 10%
.     queue resto bandwidth 80% cbq(borrow, red) { smtp, pop }
.         queue smtp bandwidth 50%
.         queue pop  bandwidth 50% cbq(ecn)
Ative o PF e carregue as regras: pfctl -e -f /etc/pf.conf
Para mandar o tráfego do IPFW para o ALTQ, ative-o com o comando: ipfw enable altq
A regra abaixo envia para fila filha smtp todo o tráfego que sai na interface nfe0 pela porta 25:
ipfw add 50 allow altq smtp tcp from any to any 25 via nfe0 out
Você pode verificar o tráfego nas filas com o comando: pfctl -vvsq
REFERÊNCIA
 
Nenhum comentário:
Postar um comentário