Controle de banda no Ubuntu Server 10.10 com Shaper (cbq)

Publicado por Fabio Silva em 11/12/2010

[ Hits: 25.892 ]

 


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.

Referências:
Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

AMSN 0.98b com webcam + chamada de voz no Slackware 13 RC2

Configuração de DNS reverso

XcrySden no OpenSuse, Fedora e derivados - Tutorial de instalação

Porque o Linux não é adotado por usuários comuns

Apostila de introdução ao Linux e seus comandos úteis

  

Comentários
[1] Comentário enviado por removido em 12/12/2010 - 00:43h

Ótima dica Fabio Silva. Muito legal.

Abraço

[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.

Abraço.

[4] Comentário enviado por flavionti em 12/02/2011 - 12:32h

VALEU FABIO SILVA, ESSA FERRAMENTA E DEMAIS

[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.

Espero ter ajudado, abraço.

[7] Comentário enviado por acqj em 07/03/2012 - 10:29h

Estou com o seguinte problema ao reiniciar o serviço.

/etc/init.d/shaper start
Starting CBQ traffic shaping: RTNETLINK answers: No such file or directory
RTNETLINK answers: No such file or directory

[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!

[11] Comentário enviado por TomSlick em 01/08/2012 - 17:16h

Controlar a banda/dividir com Linux e já tenho o ambiente Microsoft proxy+dhcp+dns.

[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?

Obrigada

[14] Comentário enviado por fabioss em 29/04/2015 - 16:06h

Cara Andressa Moura,

Tem sim como limitar para uma faixa, faça como o exemplo abaixo:
RULE=192.168.0.0/24

Qualquer dúvida, entre em contato.

[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 ?

[16] Comentário enviado por fabioss em 07/08/2015 - 09:37h

Caro Kleyton,

O pacote pode ter mudado de nome, rode esse comando, que ele irá listar o nome correto do pacote.
apt-cache search shaper

[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.

Segue as configurações:

Rede corporativa - Download

DEVICE=eth1,100Mbit,10Mbit
RATE=30Mbps
WEIGHT=3000Kbit
PRIO=5

RULE=10.1.1.0/24

BOUNDED=no
ISOLATED=no

-------------------------------------------------------------------------------------------------------------------------------------

Rede corporativa - Upload

DEVICE=eth1,100Mbit,10Mbit
RATE=3Mbps
WEIGHT=300Kbit
PRIO=5

RULE=10.1.1.0/24,

BOUNDED=no
ISOLATED=no

-------------------------------------------------------------------------------------------------------------------------------------

Rede Clientes - Download

DEVICE=eth2,100Mbit,10Mbit
RATE=20Mbps
WEIGHT=2000Kbit
PRIO=5

RULE=192.168.2.0/24

BOUNDED=no
ISOLATED=no

-------------------------------------------------------------------------------------------------------------------------------------

Rede Clientes - Upload

DEVICE=eth2,100Mbit,10Mbit
RATE=2Mbps
WEIGHT=200Kbit
PRIO=5

RULE=192.168.2.0/24,

BOUNDED=no
ISOLATED=no





[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

Exemplo:
Gtw principal = Gtw 30Mb, Gtw 20Mb
Gtw 30Mb = Rede Corp.
Gtw 20Mb = Rede Cli.

Obs.: Existem outras tecnologias que resolvem seu problema de outras formas, sugiro que você dê uma pesquisada sobre o assunto.
Abraço!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts