HTB-Tools: exemplos práticos de configuração
português brasileiro
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.
