HTB-Tools: exemplos práticos de configuração
O HTB-Tools é uma excelente ferramenta de auxílio na configuração do HTB (Hierarchical Token Bucket) para limitação de uso de banda. Como o primeiro artigo sobre o HTB-Tools explicando o uso da ferramenta gerou muitas consultas e dúvidas dos leitores resolvi escrever uma pequena complementação. Agora vou dar exemplos mais concretos de configurações específicas de uso cotidiano.
SE VOCÊ NÃO SABE O QUE É HTB OU HTB-TOOLS LEIA O PRIMEIRO ARTIGO ANTES!
OS EXEMPLOS A BAIXO SÃO MERAMENTE ILUSTRATIVOS!
1. Download e Upload com taxas diferentes
Partindo do exemplo do próprio artigo vamos supor que os cliente deveriam ter a mesma taxa de download do exemplo, mas que o upload seria limitado à metade ou seja 96kbps e 128kbps para upload, garantidos e máximo,repectivamente.
Supondo que a sua interface LAN seja a mesma eth0 vamos controlar o upload/download criando o arquivo /etc/htb/eth0-qos.cfg com o seguinte conteúdo:
class Wireless {
bandwidth 480;
limit 512;
burst 2;
priority 1;
client cliente_1down {
bandwidth 192;
limit 256;
burst 2;
priority 1;
dst {
192.168.1.2/24;
};
};
client cliente_1up {
bandwidth 96;
limit 128;
burst 2;
priority 1;
src {
192.168.1.2/24;
};
};
client cliente_2down {
bandwidth 192;
limit 256;
burst 2;
priority 1;
dst {
192.168.2.2/24;
};
};
client cliente_2up {
bandwidth 96;
limit 128;
burst 2;
priority 1;
src {
192.168.1.2/24;
};
};
};
class default { bandwidth 8;};
Entendendo: Para o cliente_1 quando o tráfego se destinar (dst) a ele a taxa será de no máximo 256kbps, porém qualquer tráfego que se originar (src) do cliente_1 será limitado à 128kbps, ou seja o cliente_1 não vai conseguir enviar nenhum pacote a mais de 128kbps (taxa de upload). O mesmo vale para o cliente_2 que poderia estar limitado à outras taxas de forma independente. Por fim, a classe default destina 8kbps para todo o resto do tráfego não contemplado nas classes anteriores.
2. Compartilhando conexão a uma taxa fixa
Um caso comum que pode ocorrer é você ter uma boa conexão e um cliente quer um link mais dedicado com servidor próprio. Supondo que você tenha um link de 1Mbps e o cliente contrate 360kbps que deve ser compartilhados através de um servidor próprio do cliente (qualquer pentium 100 já serve). Vamos considerar que a interface WAN seja a eth1 e a LAN a eth0. Na LAN não será preciso nenhuma limitação, contudo para a interface WAN (eth1) criamos o seguinte arquivo de configuração - /etc/htb/eth1-qos.cfg :
class eth1-WAN {
bandwidth 100000;
limit 100000;
burst 64;
priority 1;
client WAN {
bandwidth 100000;
limit 100000;
burst 64;
priority 1;
dst {
X.X.X.X/X; # ip/máscara da sua rede WAN
};
src {
X.X.X.X/X; # ip/máscara da sua rede WAN
};
};
};
class eth1-WAN-cliente {
bandwidth 360;
limit 360;
burst 8;
priority 1;
client DEDICADO_1 {
bandwidth 360;
limit 360;
burst 8;
priority 1;
src {
0.0.0.0/0;
};
dst {
0.0.0.0/0;
};
};
};
class default { bandwidth 8; };
Entendendo: Dentro do arquivo eth1-qos.cfg temos duas classes especiais: eth1-WAN (client WAN) e eth1-WAN-cliente (client DEDICADO_1). A classe eth1-WAN estipula um limite de 100.000 kbps para tráfego para a sua própria rede (src e dst). A outra classe eth1-WAN-cliente vai limitar o tráfego para o "mundo externo" em 360kbps tanto para download (dst) quanto para upload (src). O que deve ser observado é que a classe eth1-WAN dá prioridade e libera a sua rede WAN para qualquer velocidade de tráfego enquanto a classe eth1-WAN-cliente limite todo o resto à 360kbps. O problema ocorre quando na LAN você tem diversos clientes concorrentes entre si pelos 360kpbs e ainda . Este caso é tratado em seguida.
3. Limitando apenas as conexões para a Internet
Uma caso muito frequente é quanto temos um gateway em nossa rede que além de compartilhar a Internet fornece aos usuários de nossa WAN/LAN outros serviços como servidor de arquivo, ftp, etc. Se limitarmos o tráfego de acordo com o primeiro exemplo conseguimos controlar o uso do link da Internet, contudo todos os outros serviços fornecidos pelo gateway também serão "estrangulados", tornado o uso da rede insuportável! O que fazer então? O segundo exemplo consegue resolver em parte nosso problema pois limita o tráfego globalmente apenas para conexões externas (WAN) e as conexões da LAN fluirão livremente. Mas por outro lado se tivermos qualquer serviço rodando pelo lado externo / WAN e que deve ser utilizado a partir de outra rede externa será limitado à 360kbps. Para resolver este problema existe duas alternativas: 1ª incluir as redes de onde serão acessados os serviços no "client WAN" da classe eth1-WAN (exemplo 2) ou 2ª limitar o tráfego apartir da interface da LAN (eth0), sem limitar o tráfego interno. A primeira alternativa pode se tornar um pouco inconveniente se os clientes/usuários externos acessarem de redes diversas. A segunda solução é a mais usual para a maioria dos casos. Então vamos deixar a WAN (eth1) com o tráfego liberado e faremos o controle de banda pela LAN (eth0), devemos criar o seguite arquivo /etc/htb/eth0-qos.cfg:
class eth0-LAN {
bandwidth 100000;
limit 100000;
burst 32;
priority 1;
client LAN-LAN {
bandwidth 100000;
limit 100000;
burst 32;
priority 1;
src {
X.X.X.X/X; # ip/máscara da sua rede WAN
192.168.0.0/24; # ip/máscara da sua rede LAN
};
dst {
X.X.X.X/X; # ip/máscara da sua rede WAN
192.168.0.0/24; # ip/máscara da sua rede LAN
};
};
client LAN0-WAN {
bandwidth 360;
limit 360;
burst 8;
priority 1;
dst {
0.0.0.0/0;
};
src {
0.0.0.0/0;
};
};
};
class default { bandwidth 8; };
Entendendo: Sempre que o destino ou a origem do tráfego for a nossa própria rede teremos uma taxa de 100.000kbps. Para todos os outros destinos e origens (0.0.0.0/0) estaremos limitando o tráfego à 360kbps.
4. Conclusão
A dupla HTB e HTB-Tools fazem a alegria de qualquer administrador de redes! @;)
-o) wandersonsreis (a) gmail.com
/\\ http://www.wasare.net
_\_V Linux User # 277298

Controle exato de banda ..
Amigo, ,so uma duvida. O htb tools faz o controle exato da taxa de bits?!.Eh que insatalei ele aki na minha rede e a taxa algumas vezes eh estrapolada. Por exemplo, limito a taxa maxima pra 256 do cliente 1 e as vezes ele chega a 300..isso é normal??? .Caso contrario, vc saberia informar a possiel causa disso?
Ah, e minha instalaçao é da seguinte forma: um pc com as duas interfaces, eth0(wan) e eth1 (lan). Configuei o arquivo referent a eth1 limitand os ips que eu queria. Eh isto mesmo, ne?! Sim e nesta maquina tbm roda um squid...ele pode interferir em alguma coisa?
Grato
UPLOAD COM HTB
Colega vi seu artigo ref. aplicação da limitação de banca com HTB. fiz algumas configurações e até funcionou muito bem com relação a limitação de trafego oriundo da rede Publica. Com relação ao upload ou seja trafego oriundo da rede privada em direçao a rede publica não funcionou pelo menos para mim. Verificando na prática os exemplos ref. upload/download não funcioram para mim.
Se alguem puder ajuadar agradeço desde já.
UPLOAD COM HTB
SENHORES, NOTE QUE O HTB SÓ CONTROLA TRAFEGO SAINDO DE UMA PLACA DE REDE. ENTAO SE QUISER COTROLAR O UPLOAD PRECISA SER APLICADO NA PLACA QUE SAI PARA A INTERNET. ABRAÇOS.
amigo, de fato fiz poucos
amigo,
de fato fiz poucos testes quanto ao upload que funcionou sem problemas... mas como já houve outras reclamações sobre o upload realmente deve existir algum problema. Sugiro que utilize a última versão do htb-tools e verifique se o seu kernel atende aos requisitos.
QOS
Wanderson, olha só. Tenho um roteador wireless da linksys com firmware em linux da ddwrt.. não sei se vc jah ouviu falar. Lahtem um qos po controle de mac. Eu especifico o mac address da placa de rede e escolho a velocidade que desejo que ela utilize de banda. O problema é que esse limite soh tah funcionando para navegaçao e download via http. Qualquer outro software de download tipo emule, kazaa e até mesmo aceleradores de downloads eh burlado... ou seja eles conseguem puxar a banda toda da internet. Você pode me ajudar? Tem alguma configuraçao padrão de qos para esse caso?
amigo o melhor que tem a
amigo o melhor que tem a fazer é procurar ajuda ou suporte junto a uma lista que trate especificamente deste roteador linksys. Apesar do equipamento utilizar um firmware linux estes firmwares são muito específicos com um kernel otimizado e com suporte restrito a um conjunto pequeno de recursos.
Boa sorte.
Dúvida
Olá, estou tentando configurar o htb, mas sem total sucesso. Tenho eth1 para LAN e eth0 para WAN. Coloquei e adaptei de várias maneiras a terceira opção, pois não posso limitar a rede local, pois tenho um servidor de arquivos e outros serviços. Porém, na LAN, vai em total velocidade. Mas na WAN, consegui apenas limitar o download. O upload não deu certo. Coloquei no config do eth0 para limitar o upload, fiz uma sub classe no eth1 com src a rede local, mas nenhuma deu certo. tentei outras configurações, mas tbm não deu certo. só ficou faltando limitar o upload.
amigo, de fato o exemplo
amigo, de fato o exemplo três não te atende. Sugiro que utilize um outro método para controlar este upload, principalmente se for muito problemático. Tente o delay-pools do squid, talvez ajude.
boa sorte!
delay-pools ?
Mas o delay-pools não atende só downloads ? funciona tbm com up ?
Não sei dizer ao certo, mas
Não sei dizer ao certo, mas você pode procurar outras alternativas:
http://www.squid-cache.org/mail-archive/squid-users/200508/0503.html
http://under-linux.org/wiki/index.php/Tutoriais/Proxy/SQUID_CACHEFULL_HTB_TOOLS_-_AGORA_TEM_LOGICA_USAR_CACHE_GRANDE
2 placas de rede.
Olá, sabe como configurar para limitar o trafico para internet(ppp0) que vem de 2 placas de rede(eth0,eth1)? Fiz várias tentativas aqui, mas não consigo, pois para cada interface é necessário definir uma classe, e como já foi dito no outro artigo, "Quando existe mais de uma classe principal estas não compartilham banda entre elas." Tentei declaras a classe para cada interface com o mesmo nome, mas não obtive sucesso, o trafico sai tudo por uma interface só, fora que a rede toda fica lenta. Tens alguma dica para este caso?
[]'s
Primeiramente desculpe a
Primeiramente desculpe a demora...
Quanto a seu caso é o seguinte se o servidor apenas compartilha tráfego você pode, baseado no exemplo 2 do artigo, criar duas classes uma para cada interface interna (eth0 e eth1), mas não vejo como compartilhar um classe entre as interfaces. Criando duas classes você poderá controlar de forma independente cada host em cada rede ou a rede como um todo. Acho que o exemplo 3 também poderia te ajudar, aplicando-o você poderá limitar o tráfego globalmente na ppp0. Apenas um detalhe: nunca fiz teste com interfaces não ethernets (ethx) mas ao que tudo indica basta você adaptar as configurações dos arquivos, scripts de inicialização e configuração, por exemplo: /etc/htb/ppp0-qos.cfg.
É isso! Não deixe de contar o resultado da sua experiência, OK?
por serviços?
Olá, tudo bem?
Ótima demonstração do HTB-Tools, agora ficou mais claro utilizá-lo. Minha dúvida é: tem como eu separar a banda por serviços (como http tem tantos KB, ssh tem tanto, ftp tanto) pelo htb-tools ou só posso fazer isso no braço mesmo usando o puro htb e tc?
A configuração por
A configuração por serviço é possível no HTB-Tools sim. De acordo com a documentação (arquivo README.cfg.en) você pode especificar à frente do IP / Rede as portas dos serviços afetados pela limitação, ex: (192.168.0.2/24 21,80;). Se com o HTB-Tools é possível não tenho dúvidas que com o htb e tc também é, agora como fazer? isto é outra história!