Limitando banda com CBQ

  • Post author:
  • Post category:Sem categoria

O CBQ ? uma ferramenta para limita??o de banda que pode ser adotada para fazer controle de acesso e tamb?m balanceamento de carga.
Abaixo estarei demonstrando um exemplo de configura??o do CBQ

No diret?rio /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 padr?o cbq-XXXX.nomedaregra (cbq-0002.fulano), onde XXXX ? o numero da regra simples, eu associo XXX ao n?mero do ip do cliente, este n?mero tem obrigatoriamente 4 d?gitos, tem que ser 0002 ou maior e pode ser Hexadecimal;

Onde: “nomedaregra” ? um nome na qual voc? possa associar a regra eu utilizo o login dos usu?rios.

Arquivo de exemplo cbq-0002.fulano_in64k:

DEVICE=eth0,10Mbit,1Mbit
RATE=64K
WEIGHT=6Kbit
PRIO=5
RULE=192.168.0.2
BOUNDED=yes
ISOLATED=yes

Arquivo de exemplo cbq-0002.fulano_out64k:

DEVICE=eth1,10Mbit,1Mbit
RATE=64K
WEIGHT=6Kbit
PRIO=5
RULE=192.168.0.2,
BOUNDED=yes
ISOLATED=yes

Onde:

DEVICE=”nome da interface que vai para o cliente”,”banda”,”banda/10″
RATE=”velocidade”
WEITH=”velocidade/10″
PRIO=”prioridade (5 ? um valor excelente)”
RULE=”ip ou rede a ser controlado”

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 tr?fego de sa?da da sua rede (upload), sendo importante lembrar que todo tr?fego de sa?da deve ser controlado na interface oposta do cliente.

BOUNDED=yes/no se setado para yes o usu?rio estar? limitado mesmo que o link esteja com folga.

ISOLATED=yes/no se setado para yes indica que o cliente n?o poder? emprestar banda pra ningu?m.

Apesar de n?o utilizar, vou comentar sobre a op??o TIME. Esta op??o serve para limitar o acesso em hor?rios predeterminados.

Exemplo:

TIME=”hora inicial”-“hora final”;”velocidade”/”velocidade/10″

Exemplo pr?tico:

TIME=18:00-06:00;256Kbit/25Kbit

Op??es do Kernel necess?rias para o funcionamento do CBQ:

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
CBQ packet sheduler
CSZ packet sheduler
The simplest PRIO pseudosheduler
RED queue
SFQ queue
TEQL queue
TBF queue
[*] QoS support
[*] Rate estimator
[*] Packet classifier API
Routing table based classifier
Firewall based classifier
U32 classifier
Special RSVP classifier
Special RSVP classifier for IPv6
[*] Ingress traffic policing

OBS: o RedHat 7.1 por default j? vem preparado para o CBQ.