Primeiramente obrigado por acessar o meu artigo! Este tem como objetivo expor aos usuários como instalar e configurar o serviço de controle de banda HTB-Tools, afim de priorizar aplicações de Internet como Skype, sub-redes, um computador ou uma rede inteira, limitando ou liberando quantidade de banda.
Aqui vou falar sobre alguns itens e configurações básicas que foram utilizadas na experiência.
Hardware (Computador)
Para essa experiência foi utilizado um computador pessoal padrão IBM-PC (x86) com a seguinte configuração:
Processador Intel Pentium III 850Mhz
Memória RAM ITAUCOM PC133 256MB
HD 20GB
Mainboard Soyo 6vca-133
VGA PCI 2MB
2 Placas de rede Realtek modelo rtl8139
DVD-ROM
Distribuição Linux
A distribuição do Linux utilizada nessa experiência foi o Slackware 12 em DVD instalado de forma completa.
Dica: Geralmente eu instalo sempre o sistema operacional completo, pois acho mais fácil desinstalar um pacote para substituir por outro atualizado do que ter que ficar procurando ou correndo atrás dos pacotes que faltam, ou ainda ficar adivinhando o nome do pacote que eu deveria ter instalado da distribuição para que determinado serviço ou programa funcione.
Link de internet e configuração de rede
O link de Internet é fornecido pela NetVirtua de 2Mbits e a rede local é distribuída por um HUB de 8 portas de velocidade 10/100Mbits.
As interfaces ethernet foram configuradas da seguinte forma:
eth0 (Internet) - com dhcpclient
IP: 0.0.0.0/0
eth1 (Rede Local - LAN) - com ip fixo e dhcpserver
IP: 192.168.0.1/24
Configuração iptables (firewall)
Com o sistema operacional instalado e funcionando adequadamente no computador, utilizamos o IPTables para configurar NAT da interface de rede local (eth1) para que todos os pacotes sejam traduzidos para a rede externa (Internet).
Para isso foi criado um script pequeno, já que nessa rede não há restrições de acesso:
[7] Comentário enviado por rodrigomoschetto em 25/07/2008 - 01:43h
Rapaz, eu optei em aprender a usar o HTB pela facilidade e não por ser melhor ou pior do que o CBQ, pois, ambos os serviços têm a mesma função, o que muda é a maneira de que cada um é configurado. Eu achei o HTB mais rápido de ser configurado e mais explicativo.
No próprio Squid você já pode fazer um controle de banda sem precisar usar o HTB. E, aqui no VOL tem muitos artigos ou tutoriais que falam sobre isso.
[8] Comentário enviado por k4mus em 28/07/2008 - 14:07h
Amigo, no caso o bandwidth seria a velocidad minima "garantida" ao client, e o limit é valor maximo que este usuario pode chegar ?
Eh que configirei aqui mas ele nao esta garantindo o valor minimo nao. Quando tenho dois clientes baixando ao mesmo tempo, normalment um "rouba" a banda quase toda do outro.
[10] Comentário enviado por k4mus em 28/07/2008 - 17:37h
Obrigado pela resposta fera ,
Amigo, vc falou que limit é o valor que pode ser consumido do bandwidth. Fiquei um pouco confuso quando se refere à subclasse.
Por exemplo, na subclase "client pdc-01": o bankwidth eh 100 e o limit 128. Isto quer dizer que em um horario de pico que todos estejam fazendo download. O cliente 192.168.0.2/32 tera garantido pelo htb velocidade variando de 100 a 128 ?
[11] Comentário enviado por rodrigomoschetto em 28/07/2008 - 20:26h
Exatamente! 100 é a largura da banda mas o total é 128. E, isso varia mesmo na hora em que ambas interfaces estiverem trafegando dados.
Qto a sub-classe, utilize sempre um IP por sub-classe. Caso queira limitar banda para serviços, crie uma outra sub-classe, como eu fiz no exemplo para o skype.
[12] Comentário enviado por leandroros em 30/07/2008 - 10:52h
Bom dia!
gostei muito do artigo, e gostaria da sua opinião para uma solução que quero definir aqui onde trabalho. É o seguinte eu tenho um link de 4M full e gostaria de limitar 1M para acesso de uma máquina que esta fora da empresa. Este acesso é pela internet e 70% dos usuários da empresa acessam esta máquina o dia inteiro. por isso quando a minha banda esta lotada eu perco a qualidade de acesso a esta máquina. Você acha que esta ferramenta pode me atender?
[14] Comentário enviado por royrocha em 12/08/2008 - 16:50h
Gostei muito do artigo... já tá guardado no bookmarks..
gostaria de levantar uma dúvida: na minha rede, por exemplo, estou usando eth1 para a rede interna e eth2 para a rede pública. Sendo assim, como ficariam os arquivo de configuração eth0-qos.cfg e eth1-qos.cfg? Para associar eth1 para rede interna e eth2 para rede pública teria colocar algo do tipo eth1-qos.cfg e eth2-qos.cfg, por exemplo...
[15] Comentário enviado por rodrigomoschetto em 16/08/2008 - 17:48h
leandroros
Com certeza funciona! Boa sorte!
royrocha
Se eu não me engano, o htb na hora da instalação já cria esses arquivos de acordo com as interfaces configuradas no seu sistema operacional.
roberto
Pelo que eu li no site do desenvolvedor, não tem limite para criação de classes ou sub-classes. Tudo depende da largura de banda e infraestrutura utilizada. Logicamente, para mais de 50 classes/subclasses recomendo uma rede gigaethernet com switches gerenciáveis que proporciona um melhor controle, desempenho e confiabilidade.
[16] Comentário enviado por birobiro em 17/09/2008 - 08:36h
Galera alguem aqui sabe como fazer pra aplicar uma funca timeno HBT tipo o time do CBQ, preciso mto disso galera, aqui no trampo taum me pedindo isso e eu naum consegui nada a respeito ja visitei varios foruns e nada, peca a essa galera antenada do vol se poder me passa essa info. valew grandes...
[18] Comentário enviado por salfix em 07/10/2008 - 16:30h
ah to com os mesmo dilema, o que queremos é apenas uma função que possa parar ou iniciar o controle de banda de modo agendado como é feito no cbq com a funcao time e a sintase no cbq é TIME=18:00-06:00;256Kbit/25Kbit aqui no htb ja testei e naum funcionou...
[23] Comentário enviado por ricardors em 03/07/2012 - 08:48h
Estou com dúvidas na parte de configuração, eu dou start nas placas e até aí tudo OK, a internet entra pelo eth de origem e realmente limita a banda, mas eu não estou entendo como eu disteribuo a internet para os outros computadores, eu coloco um cabo de rede saindo da placa para um HUB? Seria isso?
[24] Comentário enviado por cirinho em 15/09/2012 - 03:33h
[22] Comentário enviado por tosko em 08/07/2010 - 14:41h:
o que acontece com as maquinas que não estão listadas nos scripts do htb? navegaram sem restrição?
Quando não está listado no script, cai na regra/classe padrão, algo do tipo:
class default { bandwidth 64; };
Geralmente se coloca um valor bem baixo do tipo: bandwidth = 8 ou 16 ou 32 ou 58 ... depende de cada caso e da necessidade de cada rede!
...
[23] Comentário enviado por ricardors em 03/07/2012 - 08:48h:
Estou com dúvidas na parte de configuração, eu dou start nas placas e até aí tudo OK, a internet entra pelo eth de origem e realmente limita a banda, mas eu não estou entendo como eu disteribuo a internet para os outros computadores, eu coloco um cabo de rede saindo da placa para um HUB? Seria isso?
No meu caso é o seguinte ...
eth0 - liga ao modem
eth1 - liga ao hub e demais clientes
Então o meu script para o eth0 eu deixo vazio, ou posso fazer algo genérico como no exemplo acima 0.0.0.0 pra toda rede...
No eth1 eu crio a classe internet e dentro dela os clientes. Respondendo também o @tosko no final tem a classe default que é a regra geral que se aplica pros demais casos que não listamos especificamente no script.
Eu também crio uma classe intranet onde libero o tráfego de 100mbit para a rede interna, no meu caso nas portas do samba, pra compartilhar arquivos sem a limitação feita para a internet :)