Site Meter

HTB-Tools: exemplos práticos de configuração

Posts na série Controle de Banda com HTB-Tools

  1. Controle de Banda Descomplicado com HTB Tools
  2. 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! @;)

BuscaPé, líder em comparação de preços na América Latina

Este texto foi publicado em 10/03/2008 por wasare na categoria controle de banda, htb, sysadmin

9 Comentários para “HTB-Tools: exemplos práticos de configuração”

  1. Fernando on 29/04/2008 às 14:35 #

    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.

  2. wasare on 29/04/2008 às 20:40 #

    fernando,

    qual a dificuldade? não conseguiu instalar o htb-tools? ou não entendeu o texto?

  3. andre on 01/05/2008 às 21:31 #

    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.

  4. wasare on 02/05/2008 às 9:16 #

    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.

  5. Rogério on 09/06/2008 às 23:42 #

    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?

  6. wasare on 10/06/2008 às 9:01 #

    rogério,

    este IP é o da placa da máquina onde está o controle de banda. É o IP WAN desta interface.

  7. Rogério on 11/06/2008 às 9:36 #

    Exatamente o que eu pensava. Obrigado, parabéns por este tutorial e desculpe a pergunta um pouco óbvia. Um abraço

  8. Mauricio on 19/06/2008 às 8:44 #

    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,

  9. wasare on 19/06/2008 às 14:29 #

    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.

Enviar Trackback | Feed de Comentários

Registre seu Comentário

« Controle de Banda Descomplicado com HTB Tools | mod_gnutls: domínios virtuais com SSL baseados em nome no Apache »


Warning: stristr() [function.stristr]: Empty delimiter in /home/.griffon/wasare/tutolivre.net/wp-content/plugins/wassup/wassup.php on line 2093