Posts na série Controle de Banda com HTB-Tools
- Controle de Banda Descomplicado com HTB Tools
- HTB-Tools: exemplos práticos de configuração
Originalmente publicado em http://wasare.net em 19/01/2007
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 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.
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! @;)









9 Comentários
Amigo queria sua ajuda…tenho um link de internet full dedicado de 1mb e preciso pegar esse link e dividir em duas pastes:
512k para um servidor Voip com caracteristicas abaixo:
IP 10.0.1.4
interface eth0
e o restante para toda a rede.
lembrando que uso um servidor com debian 4.0 etch instalado+squid+iptables que tem as configurações de rede:
eth0 rede interna: 10.0.1.254
eth1 wan embratel: 200.254.x.x
se puder me ajudar ficarei muito grato.
fernando,
qual a dificuldade? não conseguiu instalar o htb-tools? ou não entendeu o texto?
to fazendo um trabalho sobre controle de banda onde cito o HTB Tools. Uma pergunta:
“Ele controla só banda de link com a internet ou também pode controlar banda na LAN, tipo um usuário não conseguirá enviar muitos dados e sobrecarregar o roteador de sua rede interna?
Grato.
andre,
funciona exatamente como eu expliquei no artigo. Ele controla o tráfego independente da origem / destino, de acordo com as configurações implementadas. Este artigo sobre exemplos práticos fiz justamente pra tentar esclarecer alguns pontos sobre o controle de banda. Uma coisa nisso tudo é fato: o limite é mais eficiente (funciona) no download e sempre deve ser feito na interface onde o tráfego tem origem.
wasare, me diz uma coisa. No último modelo de configuração exposto aqui quando voce coloca “X.X.X.X/X; # ip/máscara da sua rede WAN” está falando do gateway no caso de um modem roteado ou do ip quente?
rogério,
este IP é o da placa da máquina onde está o controle de banda. É o IP WAN desta interface.
Exatamente o que eu pensava. Obrigado, parabéns por este tutorial e desculpe a pergunta um pouco óbvia. Um abraço
Olá,
Gostaria de uma explicação melhor para isto >>>>
sempre deve ser feito na interface onde o tráfego tem origem.
Fiquei um pouco confuso…
Obrigado,
Mauricio,
O controle deve ser sempre aplicado na interface onde o tráfego tem origem, por exemplo sua LAN fica na eth0 e a origem dos downloads são seus clientes da LAN então as regras devem ser feitas para eth0 considerando seus clientes como dst (distino) e for para upload os seus clientes são o src (fonte, origem) do tráfego.
Na verdade a frase pode ter ficado confusa realmente. O certo seria dizer que o controle deve ser aplicado na interface onde a sua rede (lógica) está conectada, ou seja na interface que faz parte da rede onde você deseja controlar o tráfego. O ideal é observar bem os exemplos pra melhorar o entendimento.
Envie um Comentário