Controle de banda no Ubuntu Server 10.10 com Shaper (cbq)
Dica publicada em Linux / Introdução
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.
# vim /etc/apt/sources.list
Adicione a linha abaixo:
Instale o shaper:
# apt-get install shaper
Os arquivos devem ser criados em (/etc/shaper). Segui o seguinte padrão para identificar os arquivos:
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):
Para os arquivos (client-link):
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.
Referências:
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
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,
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:
- http://br-linux.org/artigos/dicas_cbq.htm
- Arquivo de configuração do shaper em: /etc/init.d/shaper
Abraço