GERENCIAMENTO NO CONTROLE DE BANDA HTB-Tools
Moab Dantas Queiroz
Analista de Sistemas
ATENÇÃO: O PACOTE DO HTB-TOOLS E O ARQUIVO BITOPS.H ENCONTRAM-SE ANEXADOS.
1. INTRODUÇÃO
A economia de recursos, equipamentos, serviços, compartilhamento de Internet entre outras vantagens tornam indispensável o uso de redes de computadores em diversas instituições. Porém é preciso dividir o uso dos recursos entre os usuários de forma que todos possam usufruir sem prejudicar os demais. Esse controle pode ser resolvido com o HTB, que impõe o controle na banda e, então, garante uma taxa de conexão de acordo com as necessidades e as prioridades de cada usuário.
2. O QUE É HTB?
O HTB (Hierarchical Token Bucket) é um recurso nativo do kernel GNU/Linux utilizado no controle do tráfego de um link físico de acesso a Internet em uma rede de computadores.
3. OS PRÉ-REQUISITOS PARA USAR O HTB E HTB-TOOLS NO FEDORA 9
A distribuição FEDORA 9 com o kernel Linux versão 2.6.18 ou superior deve estar corretamente instalada porque os módulos do HTB já estarão inclusos no kernel.
4. A INSTALAÇÃO DO HTB E DO HTB-TOOLS NO FEDORA 9
Confirmado que o seu kernel é pertencente a versão 2.6.18 ou superior, iremos agora começar todo o procedimento para a instalação e configuração do HTB-Tools.
1º passo
Realizar a instalação dos pacotes os quais o HTB Tools possui dependência. Os pacotes são: Make, Flex, Gcc e o Dialog. Em seu terminal, digite o seguinte comando, sendo usuário root:
[root@servidor] yum install make flex gcc dialog
2º passo
Agora iremos levantar o seguintes módulos necessários. Em seu terminal, digite o seguinte comando, sendo usuário root:
[root@servidor] modprobe sch_htb
[root@servidor]modprobe sch_sfq
[root@servidor]modprobe cls_u32
3º passo
Crie o diretório man8 (na instalação será copiado um arquivo de manual para esta
pasta). E caso não seja criado, apresentará erro na instalação do pacote HTB-Tools.
[root@servidor] mkdir /usr/local/man/man8
4º passo
Agora, realize o download do arquivo htb_tools-0.3.0a.tar.gz. Feito o download, descompactamos o pacote:
[root@servidor] tar zxvf htb_tools-0.3.0a.tar.gz
Entre no diretório HTB-TOOLS-0.3.0a.
[root@servidor] cd HTB-TOOLS-0.3.0a
Dentro do diretório HTB-TOOLS-0.3.0a, crie um diretório dentro do subdiretório /include. O diretório criado terá o nome de asm (/include/asm):
[root@servidor] mkdir /include/asm
Após criar o diretório /include/asm, copie o arquivo bitops.h (o arquivo está disponibilizado junto com o artigo) para dentro dele.
Feito isto, o HTB-Tools já se encontra todo configurado e pronto para a sua instalação.
Volte para a raiz do diretório HTB-TOOLS-0.3.a e execute os seguintes comandos:
[root@servidor /HTB-TOOLS-0.3.0a] make && make full
Isto irá instalar os binários q_parser, q_show, q_checkcfg, htb, htbgen no diretório
/sbin , o script rc.htb irá para o diretório de scripts que for indicado, os dois arquivos de
configuração padrão eth0-qos.cfg para upload and eth1-qos.cfg para download irão
para a pasta /etc/htb e também instalará o q_show.php e o gerador de configurações
wHTB-tools.
Pronto, o HTB-TOOLS está funcionando em conjunto com o HTB.
5. CONFIGURANDO O HTB-TOOLS NO FEDORA 9
É bastante trivial a configuração do HTB-Tools. Imaginando que o tráfego da rede interna tenha que passar da interface de rede eth0 (placa onde está sua rede interna, isto é, conectada no swicth) para sair pela eth1 (placa rede conectada com o roteador), então, basta alterar o eth0-qos.cfg padrão (isto para o eth0, é claro) conforme a necessidade da rede. Digamos que se deseja que o tráfego da rede de uma empresa 192.168.1.0/24 (rede_1) tenha exclusividade de 512Kbps no máximo e 480Kbps garantidos nos dias de pico. Sabendo que a banda máxima que a rede pode atingir é de 5Mbps, então, o arquivo eth0-qos.cfg ficaria assim:
class Rede_Empresa {
bandwidth 5000;
limit 5000;
burst 0;
priority 1;
client rede_1 {
bandwidth 480;
limit 512;
burst 0;
priority 1;
dst {
192.168.1.0/24;
};
};
client rede_geral {
bandwidth 8;
limit 5000;
burst 0;
priority 2;
dst {
0.0.0.0/24;
};
};
};
class default {
bandwidth 8;
};
Um diferencial que o HTB possui em relação as demais ferramentas de controle de tráfego é que você pode determinar qual a banda mínima garantida que o usuário irá ter e qual o limite máximo que ele usará caso haja disponibilidade no link. Feito esta configuração, basta executar o seguinte comando para que as regras de controle de banda entrem em vigor:
[root@servidor] htb eth0 start
Está feito o controle de banda desta empresa, dando exclusividade de 512Kbps para a rede 1, assim também, limitando a banda da rede para 4520Kbps. Entende-se que, tudo o que não estiver declarado como a rede_1, faz parte da classe default e não da classe Rede_Empresa. Há outras variantes para a configuração do HTB-TOOLS. No caso acima citado, fizemos o controle do download (dst = destination). Para controlar o upload utiliza-se src (source) no lugar do dst. Pode ser usado o IP de um host, no lugar de usar o IP da rede, apenas citando o ip seguido da máscara. (Ex.: 192.168.1.35/24
Se quiser controlar uma porta específica, basta incluir o número da porta logo após o IP da rede/host. (Ex.ara a porta 80 ==> 192.168.1.0/24 80). Outros controles que podem ser usado na administração usando o HTB com HTBTOOLS é:
# htb <interface> { start | stop | stats | generate }
ou
# htb { help | version }
Onde:
interface - a interface de rede que você deseja controlar
start - aplica as propriedades do arquivo de configuração na interface
stop - apaga as regras aplicadas a interface específica
stats - mostra, em tempo real, a estatística de tráfego para a interface
generate - apenas cria o script para aplicar as regras
help - mostra algumas informações úteis
version - mostra a versão e informações de direitos autorais
AGORA O MELHOR DE TODOS, VOCÊ PODE SIMPLIFICAR TUDO ISSO, UTILIZANDO A INTERFACE GRÁFICA DO HTB-TOOLS. VÁ NO DIRETÓRIO DO HTB-TOOLS.
[root@servidor] cd HTB-TOOLS-0.3.0a
Agora basta digitar:
[root@servidor] ./setup
Que Deus abençoe a todos.
Atenciosamente,