Controle de Banda Com HTB
Controle de Banda Com HTB
Controle de Banda Com HTB
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.