Tutoriais/Redes/CBQ
De UnderLinux Wiki
Limitando banda com CBQ
Tabela de conteúdo |
Introdução
O CBQ é um software bem mais poderoso, robusto e complexo que o traffic shapper para limitacao de banda. Sua documentacao nao é muito boa e nesse artigo nao pretendemos dar uma receita de bolo para configuracao do mesmo, e sim um passo inicial para o leitor alavancar na configuracao dele. Abaixo estao dois scripts que podem lhe auxiliar para montar o seu. E tambem alguns links como referencia.
Configuração
No slackware é nescessário fazer algumas modificações no script, mas no restante é a mesma coisa.
No Red Hat 7.1 por padrão o script já funciona
No diretorio /etc/sysconfig/cbq/ ficam as regras de limitação (classes)
O arquivo de regra funciona assim:
1- cada arquivo é uma regra
2- o nome do arquivo segue o padrao cbq-XXXX.nomedaregra (cbq-0002.fulano) onde XXXX é o numero da regra simples, eu associo XXX ao numero do ip do cliente, este numero tem obrigatoriamente 4 digitos, tem que ser 0002 ou maior e pode ser Hexadecimal. Onde nomedaregra é um nome na qual voce possa associar a regra eu utilizo o login dos usuarios arquivo de exemplo cbq-0002.fulano_in64k
DEVICE=eth0,10Mbit,1Mbit RATE=64Kbit WEIGHT=6Kbit PRIO=5 RULE=192.168.0.2 BOUNDED=yes ISOLATED=yes
Onde:
DEVICE=,,
RATE=
WEITH=
PRIO=
RULE=
Exemplos:
192.168.0.2 controla o ip 192.168.0.0/24 controla a rede 192.168.0.2:80 controla o ip utilizando a porta 80 192.168.0.0/24:80
Qualquer destas opções seguidos de "," ex. 192.168.0.2, controla o trafego de saida da sua rede (upload), sendo importante lembrar que todo trafego de saida deve ser controlado na interface oposta do cliente.
- BOUNDED=yes/no: se setado para yes o usuario estara limitado mesmo que o link esteja com folga
- ISOLATED=yes/no: se setado para yes o cliente não poderá emprestar banda pra ninguem
Apesar de não utilizar vou comentar sobre a opção TIME, esta opção serve para limitar o acesso em horários prédeterminados Ex.:
TIME=-;/ ex. TIME=18:00-06:00;256Kbit/25Kbit
Opções do Kernel para o CBQ Funcionar:
Code Matury Level Options ---> [*] Prompt for development and/or incomplete code/drivers Networking Options ---> <*> Packet socket [*] Routing Messages <*> Unix domain sockets [*] TCP/IP networking [*] IP advanced router [*] IP Policy routing [*] IP equal cost multipath [*] IP use TOS value as route key [*] IP verbose route monitoring [*] IP large routing tables [*] IP fast network address translation [*] optimize as houte not host QoS and/or fair queueing ---> [*] QoS and/or fair queueing < M > CBQ packet sheduler < M > CSZ packet sheduler < M > The simplest PRIO pseudosheduler < M > RED queue < M > SFQ queue < M > TEQL queue < M > TBF queue [*] QoS support [*] Rate estimator [*] Packet classifier API < M > Routing table based classifier < M > Firewall based classifier < M > U32 classifier < M > Special RSVP classifier < M > Special RSVP classifier for IPv6 [*] Ingress traffic policing
Obs. o RedHat 7.1 por default já vem preparado para o CBQ.
Onde Baixar
IProute2:
Pacote iproute2 para slackware 8.0
Source do iproute2
Segue abaixo o script de inicialização. Escolha uma das versões do script:
Referências
http://www.linuxdoc.org/HOWTO/Bandwidth-Limiting-HOWTO/index.html
http://www.gnumonks.org/cgi-bin/cvsweb.cgi/presentation/qos/
http://defiant.coinet.com/iproute2/
Autor
- Por Leonardo Pires


