Você está na página 1de 5

Controle de Banda com HTB-Tools

Pessoal hoje iremos ver uma ferramenta para controle de banda muito interessante
chamada HTB-Tools, ela auxilia na configurao de um algoritmo chamado HTB que
significa Hierarchical Token Bucket, este algoritmo possui algumas vantagens em
relao ao CBQ, como, velocidade, mais opes e ser mais robusto. Ele foi criado por
Martin Devera e passou a ser includo no kernel do Linux a partir do 2.4.20.
O HTB-Tools uma ferramenta para controle e administrao de banda, um software
com vrios recursos para auxiliar e simplificar o processo de alocao de banda, trfego,
download, upload, gerando e checando configuraes para cada cliente isoladamente.
Bem vamos para a instalao:

Estamos utilizando o Debian Squeeze como lab, a interface eth0 WAN (internet) e a
eth1 a LAN (rede local).

Iremos comear instalando as dependncias necessrias:

# aptitude update
# aptitude install make flex-old dialog libncurses5-dev kernel-package gcc

Depois das dependncias vamos levantar alguns mdulos necessrios:

# modprobe sch_htb
# modprobe sch_sfq
# modprobe cls_u32

Crie o diretrio onde ser copiado o manual:

# mkdir /usr/local/man/man8

Agora faa o download do HTB-tools para sua mquina.

# cd /opt

# wget -cv https://sites.google.com/site/guiadoti/arquivos/HTB-tools-0.3.0a.tar.gz

Aps o download extraia os arquivos:

# tar xvzf HTB-tools-0.3.0a.tar.gz -C /usr/local

# cd /usr/local/HTB-tools-0.3.0a

# mkdir include/asm

# cd include/asm

Agora baixe a biblioteca bitops.h para o diretorio criado:

# wget -cv https://sites.google.com/site/guiadoti/arquivos/bitops.h

Volte para a raiz do HTB-Tools:

# cd /usr/local/HTB-Tools-0.3.0a

Agora podemos instalar a ferramenta sem nenhum problema:

# make
# make full

Nesse momento voc sera questionado onde ser o diretrio de execuo do servio,
responda:

/etc/init.d/

Depois voc ser questionado sobre o diretrio onde as paginas web sero armazenadas,
responda:

/var/www/ ou outro diretrio a sua escolha.

Pronto o HTB-Tools j esta instalado e pronto para ser utilizado.

Agora v para os arquivos de configurao do htb-tools:

# cd /etc/htb

Aqui voc vai encontrar os arquivos eth0-qos.cfg e eth1-qos.cfg, eles correspondem
respectivamente as interfaces de rede eth0 e eth1. Os arquivos de configurao so
organizados em classes, cada classe pode ter uma sub-classe que so os clientes, a classe
principal referente a banda total, todas as sub-classes podem compartilhar banda entre
elas, mas se existir mais de uma classe principal elas no podero compartilhar a banda.

Neste artigo iremos realizar a demonstrao das regras comas classes abaixo:

Zezinho Ter o limite de banda de 256 kbps 10.0.0.10
Ana Ter o limite de banda de 512 kbps 10.0.0.11
Joo Ter o limite de banda de 1024 kbps 10.0.0.12
Marina Ter o limite de banda de 1024 kbps 10.0.0.13
O restante do trafego da Rede que no se enquadrar nas regras acima iro ter uma banda
de 2048 kbps (2 Mb) lembrando que a banda total de 5120 kbps (5 Mb).

Iremos configurar o arquivo contido em /etc/htb, como a interface eth1 a nossa
conexo com a rede local iremos alterar o arquivo eth1-qos.cfg para configurar o
controle de download. Iremos criar uma copia do arquivo original e comear um novo.

# mv eth1-qos.cfg eth1-qos.cfg.old

# pico eth1-qos.cfg

################
# eth1-qos.cfg #
################
# for how to configure and use see docs/HowTo/

class guia_do_ti { # Nome da classe principal
bandwidth 5120; # Largura da banda garantida, nesse caso a total
limit 5120; # O mximo de banda que a classe podera utilizar
burst 2; # Numer mximo em Kbit que uma classe pode enviar por
vez
priority 1; # Nivel de prioridade, so elas de 0 a 7, onde 0 a maior

client zezinho { # Nome da Sub-Classe
bandwidth 256; # Largura da banda garantida (banda mnima)
limit 300; # O mximo de banda que a classe poder utilizar
burst 2;
priority 1;
dst { # Destino do trfego (Download)
10.0.0.10/32; # endereo ip do cliente e mascara
};
};

client ana {
bandwidth 480;
limit 512;
burst 2;
priority 1;
dst {
10.0.0.11/32;
};

client joao {
bandwidth 480;
limit 512;
burst 2;
priority 1;
dst {
10.0.0.12/32;
};
};

client marina {
bandwidth 1024;
limit 1024;
burst 2;
priority 1;
dst {
10.0.0.13/32;
};
};

client rede_local {
bandwidth 2048;
limit 4096;
burst 2;
priority 1;
dst {
10.0.0.0/24; # Faixa de endereos da rede (254 ips)
};
};


};

class default { bandwidth 8; }; # Classe padro para o trafego que no se encaixar nas
classes acima.


Obs: Respeitem a indentao

Depois execute o comando abaixo para testar o arquivo:

# q_checkcfg /etc/htb/eth1-qos.cfg

Se ocorrer tudo bem ate aqui rode o comando abaixo para iniciar o HTB-Tools:

# htb eth1 start

Ou

# /etc/init.d/rc.htb start_eth1

Existem outros parmetros que podem ser usados no HTB-TOOLS. No nosso exemplo,
fizemos o controle do download (dst = destination). Para controlar o upload utiliza-se
src (source) no lugar do dst. Se quiser controlar uma porta especfica, basta incluir o
nmero da porta logo aps o IP da rede/host. (Ex.:para a porta 80 ==> 10.0.0.0/24 80).

Agora s testar o controle em algum cliente da rede, vocs podem fazer os testes
usando o http://speedtest.copel.net/ e baixando arquivos da internet e acompanhar a taxa
de transferncia, lembrando que a taxa de transferncia 10% do limite que voc
declarar.

Para acompanhar o consumo de trafego em tempo real utilize:

# /etc/init.d/rc.htb show_eth1

Para mais informaes:

# /etc/init.d/rc.htb --help

Ou leia o manual:

# pico /usr/local/HTB-tools-0.3.0a/docs/HowTo/HTB-tools-howto.txt

Pessoal isso ai, espero que tenham gostado, at a prxima.

Você também pode gostar