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.
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.
Seja Membro Gratuítamente
Assine a newsletter para receber em seu email as publicações atualizadas neste blog