Controle de banda no Ubuntu Server 10.10 com Shaper (cbq)
Caros colegas do VOL, resolvi escrever esta dica atualizada a fim de compartilhar minha experiência na implantação de um controle de banda usando o Shaper (cbq) no Ubuntu Server. Durante minhas pesquisas encontrei diversos artigos, porém antigos e a maioria não funcionava como esperado, então juntei um apanhado de informações e com diversas tentativas consegui controlar o consumo da banda.
Instalando o Shaper
Edite o arquivo sources.list:
# vim /etc/apt/sources.list
Adicione a linha abaixo:
deb http://archive.ubuntu.com/ubuntu/ hardy universe
Instale o shaper:
# apt-get install shaper
Criando os arquivos de regras
Cenário:
+-------+ 192.168.0.X
Internet--eth2-| linux |-eth1------*-[client]
+-------+
Definindo as regras para controle:
Os arquivos devem ser criados em (/etc/shaper). Segui o seguinte padrão para identificar os arquivos:
cbq-xxx.link-client (para controle da banda do link para o cliente - download)
cbq-xxx.client-link (para controle da banda do cliente para o link - upload)
Obs.: xxx são os últimos números do IP da máquina que terá a banda controlada.
Exemplo: arquivo: cbq-128.link-client (seria o arquivo com as regras para o IP 192.168.0.128 - download).
Conteúdo dos arquivos:
Para os arquivos (link-client):
# No nosso caso a eth2 é a interface do link para a internet
DEVICE=eth2,100Mbit,10Mbit # Velocidade que irá ser liberada
RATE=150Kbit # Velocidade liberada dividida por 10, que é a velocidade para download
WEIGHT=15kBit # Prioridade para essa regra
PRIO=5 # Se marcado para yes a máquina será limitado mesmo que o link esteja com folga.
BOUNDED=no # Se marcado para yes a máquina não poderá ceder banda pra outras.
ISOLATED=no # IP a ser controlado
RULE=192.168.0.8
Para os arquivos (client-link):
# No nosso caso a eth1 é a interface para a rede interna 192.168.0.x
DEVICE=eth1,100Mbit,10Mbit # Velocidade que irá ser liberada
RATE=150Kbit # Velocidade liberada dividida por 10, que é a velocidade para upload
WEIGHT=15kBit # Prioridade para essa regra
PRIO=5 # Se marcado para yes a máquina será limitado mesmo que o link esteja com folga.
BOUNDED=no # Se marcado para yes a máquina não poderá ceder banda pra outras.
ISOLATED=no # IP a ser controlado (Obs.: Para upload deve-se colocar uma virgula após o endereço do IP)
RULE=192.168.0.8,
Dê permissão aos arquivos:
# chmod 777 cbq-*
(irá aplicar a todos arquivos de regras)
Iniciando o shaper:
# /etc/init.d/shaper start
Parando o shaper:
# /etc/init.d/shaper stop
Obs.: Infelizmente ainda não consegui resolver o problema do shaper que toda vez que eu tento reiniciar o serviço ele dá erro, mas é só parar e iniciar de novo que o erro não apresenta mais.
Conclusão
Dessa forma resolvi vários problemas em nossa rede, principalmente das máquinas dos visitantes que utilizam aplicativos P2P como (kazaa, emule etc), já que eles não conseguem fazer download ou upload acima da faixa definida e independente da porta que o aplicativo esteja usando.
[2] Comentário enviado por wellen cassio em 27/12/2010 - 18:57h
Gostei depois vou testar. Tenho um duvida então se tenho uma banda de 2Mb dividido por 10 será 200kbps para cada e a medida que o micro não estiver ligado será liberado a banda dele para todos? É isso mesmo?
[3] Comentário enviado por fabioss em 28/12/2010 - 10:54h
Bom... a ideia é limitar o uso banda, então se você define 200kbps para cada máquina, essa irá ser a velocidade máxima que todas irão navegar, mesmo que haja banda sobrando. Será compartilhada entre eles quando alguma máquina não estiver utilizando o serviço e outras estiverem navegando abaixo do limite.
[5] Comentário enviado por TioGeo em 10/04/2011 - 23:34h
Ola
Compartilho minha net com minha conhada e minha irmã, so que uso em minha maquina uma dist. Ubuntu onde chega a internet de 2MBs e elas uma dist. Conectiva, Windows7 e Windows xp.
Como faço para limitar a banda para cada um ?
Posso repitir esses passos acima escritos?
Preciso fazer alguma coniguração no Windows7, Conectiva e Windows xp ?
Por favor somos novos nisto, se poderem mim ajudar agradeço-lhes.
[6] Comentário enviado por fabioss em 11/04/2011 - 08:15h
Olá,
Se você seguir a dica irá controlar sim. Mas só para lembrar, as máquinas clientes devem acessar a internet atravéz da sua onde estará rodando o shaper, e é claro um servidor proxy como o squid, se vc fizer um proxy transparente não precisa configurar nada nas máquinas clientes.
[8] Comentário enviado por fabioss em 07/03/2012 - 11:05h
Essa mensagem é comum aparecer, mesmo com ela faça um teste de velocidade de internet nas máquinas clientes em sites como (rjnet/velocimetro, minhaconexao...) Pois o Shaper deve estar funcionando perfeitamente.
Comente o resultado, abraço.
[9] Comentário enviado por TomSlick em 01/08/2012 - 08:29h
Oi, Fabio, sabe me dizer se consigo utilizar isso com um proxy Microsoft? Quero dividir meu link dedicado em 3: wireless para clientes; wireless para funcionarios e rede interna com proxy+dhcp+dns.
[10] Comentário enviado por fabioss em 01/08/2012 - 16:12h
Não entendi sua pergunta, você quer controlar a banda com Linux (shaper) e colocar um servidor proxy Windows, ou você quer fazer toda a solução Windows (Microsoft).
Abraço!
[12] Comentário enviado por fabioss em 01/08/2012 - 18:06h
Ok, se você montar um servidor Linux (proxy+shaper) para "dividir" sua banda em três, uma para o IP do roteador do wireless dos funcionários, outra IP do roteador do wireless dos clientes e a terceira cascateando para o proxy(windows) da sua rede interna vai funcionar. Mas se por exemplo um funcionário utilizar algum "artifício" que consuma toda a banda do roteador dos funcionários o shaper não terá controle sobre esse tráfego, embora as outras duas bandas NÃO sejam afetadas o link liberado para aquele roteador será todo consumido por esse IP.
Não sei se fui claro.
Obs.: Você pode habilitar o QOS dos roteadores, mas para ser sincero nunca deixei este serviço para eles então não posso afirmar se são funcionais.
Abraço!
[13] Comentário enviado por andressa.moura em 29/04/2015 - 11:03h
Muito bom, simples e objetivo. Só uma pergunta. Tem como configurar o limite de banda para uma faixa específica de IPs ou tem que ser um arquivo de conf para cada IP?
[15] Comentário enviado por kleytonmaia em 06/08/2015 - 11:33h
Bom dia,
estou tentando instalar no ubuntu 14.04 lts, ele não tem no repositório nesse repositório ele não consegue achar pois da erro 404 para o endereço , tem alguma dica ?
[17] Comentário enviado por walisson123 em 30/06/2016 - 18:18h
Boa noite, galera.
Estou tentando implantar shaper na empresa que dou suporte mais o mesmo não limita a banda.
Temos um link de 50 mega e queria dividi-lo assim: 30 mega de download e 3 mega de upload para a rede corporativa. E pra rede dos clientes ficaria os 20 mega de download e 2 de upload.
[18] Comentário enviado por fabioss em 01/07/2016 - 08:03h
Olá Walisson.
Pelo que entendi, no seu caso você tem 02 (duas) redes uma 10.1.0 e outra 192.168.2 então para usar essa tecnologia você irá precisar de dois Gateways de Internet, um para cada rede e um Gateway Principal com o CBQ recebendo seu link de 50Mb e distribuindo 30Mb para uma rede e 20Mb para outra.
Com relação ao Upload na linha de configuração (DEVICE=eth1,100Mbit,10Mbit) você resolve isso (explicando abaixo):
eth1: Para qual Interface de rede irá sair a internet;
100Mbit: Qual velocidade de Download
10Mbit: Qual velocidade de Upload