Limitando a banda no Linux usando o shaper e CBQ

Publicado por Julio Cardoso em 10/03/2008

[ Hits: 33.340 ]

Blog: http://i-admin.info

 


Limitando a banda no Linux usando o shaper e CBQ



Neste tutorial eu irei falar sobre o CBQ e, em especial um pacote que existe por padrão no Debian e no Ubuntu, que se chama shaper, no qual é possível fazer o controle de banda de uma rede de forma eficiente.

A necessidade de limitar a banda surgiu quando um cliente me pediu um servidor Gateway com controle de banda, e por fazer algumas pesquisas encontrei esse programa que se chama shaper, que talvez seja uma versão alternativa do uso do CBQ no Debian.

Então vamos começar.

Primeiro, para haver o controle de banda, o tráfego deve passar por dentro da máquina que tem o shaper configurado, pode ser através de NAT.

Vamos instalar o shaper:

$ sudo apt-get install shaper

Depois disto, as configurações do programa para controle de banda devem ser criados dentro do diretório /etc/shaper.

Vamos entrar no diretório do shaper:

$ cd /etc/shaper

Agora, vamos criar o arquivo chamado para controle de Download cbq-0001.-in:

$ sudo nano cbq-0001.-in

Vamos colocar o seguinte conteúdo:

##Aqui você deve colocar a interface de rede
###Interface,Banda,banda dividida por 10

DEVICE=eth0,100Mbit,10Mbit
###A banda que passa
RATE=64Kbit
##A banda 64/10 dividida por 10, Limite de download
WEIGHT=6Kbit
###prioridade
PRIO=5
###Regras, você pode colocar mais de uma regra, RULE
###Essa regra controla a faixa de ip

RULE=192.168.254.0/24
###Essa regra não permite compartilhar banda entre os clientes
### se quiser compartilhar coloque " no " nas duas abaixo

BOUNDED=yes
ISOLATED=yes

Agora vamos criar o arquivo chamado para controle de upload cbq-0001.-out:

$ sudo nano cbq-0001.-out

Vamos colocar o seguinte conteúdo:

##Aqui você deve colocar a interface de rede
###Interface,Banda,banda dividida por 10

DEVICE=eth0,100Mbit,10Mbit
###A banda que passa
RATE=64Kbit
##A banda 64/10 dividida por 10, Limite de upload
WEIGHT=6Kbit
###prioridade
PRIO=5
###Regras , você pode colocar mais de uma regra , RULE
###Essa regra controla a faixa de ip

RULE=192.168.254.0/24,
###Essa Regra não permite compartilhar banda entre os clientes
### se quiser compartilhar coloque " no " nas duas abaixo

BOUNDED=yes
ISOLATED=yes

A única diferença das duas é só a vírgula no final do ip "RULE=192.168.254.0/24,". Esta vírgula sinaliza a saída do tráfego "upload".

Lembrando que você pode criar quantas regras quiser, e quantos arquivos de configuração quiser só deixando igual o "DEVICE=eth0,100Mbit,10Mbit " se deixar diferente em cada arquivo vai dar erro.

Para iniciar o shaper dê esse domando:

$ sudo /etc/init.d/shaper start ou sudo /etc/init.d/shaper restart

Outros exemplos de regras:

#Essa regra usa a porta 80 na faixa de ip 10.1.1.0
RULE=10.1.1.0/24:80
#Essa regra seleciona apenas um IP
RULE=10.2.2.5

#Essa regra Seleciona apenas a porta 20 e 21
RULE=10.2.2.5:20/0xfffe
#Essa regra Seleciona a porta 50 até 5000
RULE=:25,10.2.2.128/26:5000

#Essa regra seleciona a porta 80
RULE=10.5.5.5:80,

Outros exemplos e explicações você pode ler o documento do shaper, que fica no diretório: /usr/share/doc/shaper

Referência:
Outras dicas deste autor

Imprimindo em PDF no Firefox usando CUPS-PDF no KUbuntu Linux

Instalando e configurando o discador ppoe rp-pppoe-3.8 no Kubuntu Linux

Conheça as 8 documentações mais importantes para se aprender GNU/Linux

Fazendo backup do Grub e restaurando em dois comandos

Instalando o driver de vídeo on-board VIA no Kubuntu Linux

Leitura recomendada

Erro no DNS: dig: error while loading shared libraries: libisc.so.32: cannot open shared object file: No such file or directory

Desligando beeps do Debian ao desligar/reiniciar

Desativando os efeitos do KDE

Resolvendo flash sem som no Firefox

Configurar repositório APT local no Debian sem a necessidade de configurar o Apache

  

Comentários
[1] Comentário enviado por knoppix_debian em 10/03/2008 - 21:22h

Eu ja testei o cbq = shaper no debian mais ele controla o down mais o up não, ele tem uma bug, nisso ai trabalho com iproute e iptables puro neste motivo juntei com um controle de mac que fica jóia para empresas.
Pois tem pessoas que pega o ip na rede muda para ter acesso Internet a se não bate o mac + ip ele não navega de quebra juntei unas regras do squid ai sim ficou tudo jóia.
Diminui 60% de vírus na minha rede e de 80% de tráfego desnecessário.
E aumente 98% de reclamações com user que queria ver o site da playboy entre outras coisa.

[2] Comentário enviado por afdominguez em 12/01/2009 - 16:48h

Colega oppix_debian,
Poderia me dar maiores informações sobre como fazer este controle de banda da maneira que vc citou??

[3] Comentário enviado por zeed01 em 20/01/2009 - 00:52h

Ola knoppix_debian pode me fornecer mais detalhes de como implementar essa solução que você utilizou ?
Obrigado.

Um abraço.

[4] Comentário enviado por zeed01 em 20/01/2009 - 01:07h

Ola... eu tentei implentar a solução utilizando shaper no debian e esta dando essa mensagem quando eu executo sudo /etc/init.d/shaper start


skywalker:/etc/shaper# sudo /etc/init.d/shaper start
Starting CBQ traffic shaping: find: warning: you have specified the -maxdepth option after a non-option argument (, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.

find: warning: you have specified the -maxdepth option after a non-option argument (, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments.

Illegal "match"
Illegal "match"
shaper.
skywalker:/etc/shaper# sudo /etc/init.d/shaper stop
Stopping CBQ traffic shaping: shaper.
skywalker:/etc/shaper# sudo /etc/init.d/shaper start
Starting CBQ traffic shaping: RTNETLINK answers: No such file or directory
RTNETLINK answers: No such file or directory
Illegal "match"
Illegal "match"
shaper.

Alguem sabe o que esta errado ?

Estes são meus arquivos cbq-0002.-in e bq-0002.-out, respectivamente:

##Aqui você deve colocar a interface de rede
###Interface,Banda,banda dividida por 10
DEVICE=eth0,100Mbit,10Mbit
###A banda que passa
RATE=12Mbit
##A banda 64/10 dividida por 10, Limite de download
WEIGHT=120Kbit
###prioridade
PRIO=5
###Regras , você pode colocar mais de uma regra , RULE
###Essa regra controla a faixa de ip
RULE=192.168.0.0/200
###Essa Regra não permite compartilhar banda entre os clientes
### se quiser compartilhar coloque . no . nas duas abaixo
BOUNDED=yes
ISOLATED=yes



cbq-0002.out
##Aqui você deve colocar a interface de rede
###Interface,Banda,banda dividida por 10
DEVICE=eth1,100Mbit,10Mbit
###A banda que passa
RATE=12Mbit
##A banda 64/10 dividida por 10, Limite de upload
WEIGHT=120Kbit
###prioridade
PRIO=5
###Regras , você pode colocar mais de uma regra , RULE
###Essa regra controla a faixa de ip
RULE=192.168.0.0/200,
###Essa Regra não permite compartilhar banda entre os clientes
### se quiser compartilhar coloque . no . nas duas abaixo
BOUNDED=yes
ISOLATED=yes


Obrigado.

Um abraço.

[5] Comentário enviado por adrianok9999 em 18/02/2009 - 11:59h

ola amigos estou começando a mecher com linux agora e tenho umas duvidas eu tenho uma lan com 12 maqnas e quero montar um servido para controle de banda upload e download e k tambem qual a versao melho para mim fazer isso eu nao intendo muito bem o linux pois sao tantas versoes eu gostei do ubunto parece ser facil de mecher nele mais se tiver uma ersao mais facio me fale


eu tenho outra duvida tambem qro compartilhar internet com dois vizinhos com rede sem fio e qro saber como faço para para ontrolar a banda deles da uma serta qntidade para cada um soente por mc por q o roteador faz as maqnas conectarem com ip automatico e nao sei como fazer me ajudem agradeço

[6] Comentário enviado por rafael.mendes em 26/03/2009 - 09:35h

Ola Júlio...

Muito interesante esta sua dica, estarei implementando ela em uma de nossas unidades onde tenho firewall linux.

Pergunta, não é necessário nenhuma regra no iptables para este limite de tráfego?


[7] Comentário enviado por angelognr em 08/04/2009 - 18:47h

gente gostaria de uma ajuda eu coloquei 15 pessoas na minha rede com o meu velox mais eu queria monta um servirvidor
pra colocar 100 kbps pra casa como eu fasso isso mande um email pra mim esportes-radicais@hotmail.com

[8] Comentário enviado por andrefcampos em 07/08/2013 - 10:20h

Terminei de configurar , quando fui restart o /etc/init.d/shaperd restart .


APARECEU ESSA MSG.



See the examples dir in /usr/share/doc/shaperd and replace this file
You can't use shaperd, until you write the config file for it.
Please see the examples dir in /usr/share/doc/shaperd, and create
the /etc/shaperd/shaperd.conf configuration file!



ALGUEM SABE O QUE FALTA FAZER ?

[9] Comentário enviado por gsoares em 23/03/2016 - 09:39h

Bom dia a todos, o servidor CBQ precisa ser o firewall / gateway da empresa? Ou posso tê-lo independente disso?

att,



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts