Controle de Banda avançado com o Shaper
Prezados Colegas,
Primeiramente saudações pinguianas a todos.
Desde que as pessoas aqui de casa descobriram alguns sites de download, começaram a consumir toda a banda e deixar a navegação inviável para os outros usuários. Surgiu então a necessidade de implementar um controle de banda no meu servidor gateway.
Depois de muito pesquisar, me deparei com o shaper. Este aplicativo possui configurações de fácil entendimento e é muito funcional, bem diferente do shaperd (padrão do Debian 6), no qual não consegui configurar.
Então, vamos efetuar um controle de banda de modo eficiente usando o shaper. Veja bem, eu disse shaper e não shaperd (padrão do Debian 6).
Observação: Esse artigo TAMBÉM vale para o Debian 5, Debian 4 e qualquer distribuição derivada do Debian. Porém, no Debian 4 (etch) essa é a aplicação padrão.
O primeiro passo, é carregar os módulos necessários para o seu funcionamento. Então, como root execute os comandos abaixo:
modprobe sch_cbq modprobe sch_tbf modprobe sch_sfq modprobe sch_prio modprobe cls_fw modprobe cls_u32 modprobe cls_route
Agora, depois dos módulos carregados, vamos colocá-los para subir (carregar) junto com o sistema operacional.
Para isso, vamos editar o arquivo /etc/modules:
vim /etc/modules
Deixe-o assim:
# /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with "#" are ignored. # Parameters can be specified after the module name. # modulos para o controle de banda sch_cbq sch_tbf sch_sfq sch_prio cls_fw cls_u32 cls_route # loop
Agora, vamos baixar o pacote shaper, pois ele NÃO está disponível no Debian 6 (o do Debian 6 é o sharped, que não funciona muito bem):
wget -c https://downloads.aprendendolinux.com/programas/shaper_2.2.12-0.7.3-2.2_all.deb
Agora, vamos instalar! Faça o comando abaixo:
dpkg -i shaper_2.2.12-0.7.3-2.2_all.deb
Obs.: Durante a instalação, deve aparecer uma mensagem informando da necessidade de alguns módulos específicos. Basta da ok, pois já carregamos todos os módulos necessários para seu funcionamento.
Agora, O PULO DO GATO. Para que não haja necessidade de ficar processando as regras, antes de restartar o serviço (quando se cria ou edita alguma regra, o restart faz-se necessário), vamos editar o arquivo do daemon do sharper.
vim /etc/init.d/shaper
Para auxiliar a operação abaixo, habilite a sintaxe de números de linha no Vim. Com o vim aberto, tecle ”:set number”
Após a linha 1033, vamos inserir a linha “$0 compile“. Assim:
Salve e saia! Ainda no vim, faça o comando “:wq!“.
Agora, vamos entrar no diretório de configuração:
cd /etc/shaper/
No exemplo de arquivo que vou mostrar, vamos limitar a banda de alguns IPs para 1MB (Download a 100k e Upload a 10K).
Crie dois arquivos, como eu mostrarei abaixo:
touch cbq-0010-clientes-100k-down touch cbq-0010-clientes-100k-up
Observação importante: O nome dos arquivos deve seguir o padrão cbq-0010-. Do tracinho pra lá é indiferente. A ordem começa do 0010 em diante. Isso significa que se formos criar outros arquivos para outras regras, terá que ser 0011, 0012, 0013 e etc… Sempre seguindo essa ordem.
É importante também saber que são sempre dois arquivos para cada regra. Um para download e um para upload.
O arquivo cbq-0010-clientes-100k-down deve ficar assim:
DEVICE=eth1,100Mbit,10Mbit RATE=1000Kbit WEIGHT=100Kbit PRIO=5 RULE=192.168.254.3 RULE=192.168.254.4 RULE=192.168.254.5 RULE=192.168.254.7 RULE=192.168.254.9 RULE=192.168.254.10 RULE=192.168.254.11 RULE=192.168.254.12 BOUNDED=yes ISOLATED=yes
O arquivo cbq-0010-clientes-100k-up deve ficar assim:
DEVICE=eth1,100Mbit,10Mbit RATE=100Kbit WEIGHT=10Kbit PRIO=5 RULE=192.168.254.3, RULE=192.168.254.4, RULE=192.168.254.5, RULE=192.168.254.7, RULE=192.168.254.9, RULE=192.168.254.10, RULE=192.168.254.11, RULE=192.168.254.12, BOUNDED=yes ISOLATED=yes
Perceba que as únicas diferenças entre os dois arquivos são as taxas de transferência e a virgula após o endereço de IP.
Aqui está a explicação do arquivo de configuração:
DEVICE – Placa de rede que sera controlado o qos
RATE – A velocidade que sera disponivel
WEIGHT – Rate dividido por 10
PRIO – Prioridade vai de 1 à 8 quanto mais alto menor a prioridade, o valor padrão é 5
RULE – IP que será controlado
BOUNDED – Significa que o controle sera mantido mesmo se tiver banda excedente
ISOLATED – Significa que a banda excedente não sera compartilhada
Agora basta executar o comando abaixo e pronto:
/etc/init.d/shaper restart
Esse comando deve exibir uma saída grande e estranha, mas é absolutamente normal.
É isso! Espero ter colaborado!
Esse artigo foi útil? Colabore com o nosso site para podermos continuar dando mais dicas como essa!
Formas de doação:
- Boleto / Cartão de crédito: https//bit.ly/AprendendoLinux
- Pix: [email protected]
- PicPay: @henrique_fagundes
- PayPal: [email protected]
- Bitcoin: bc1qtnn5z058htzy799dslwrpjcdpm0vuta3vrj28l
Favorecido: Luiz Henrique Marques Fagundes