controle de banda com htb

5
Controle de Banda com HTB-Tools Pessoal hoje iremos ver uma ferramenta para controle de banda muito interessante chamada HTB-Tools, ela auxilia na configuração de um algoritmo chamado HTB que significa Hierarchical Token Bucket, este algoritmo possui algumas vantagens em relação ao CBQ, como, velocidade, mais opções e ser mais robusto. Ele foi criado por Martin Devera e passou a ser incluído no kernel do Linux a partir do 2.4.20. O HTB-Tools é uma ferramenta para controle e administração de banda, um software com vários recursos para auxiliar e simplificar o processo de alocação de banda, tráfego, download, upload, gerando e checando configurações para cada cliente isoladamente. Bem vamos para a instalação: Estamos utilizando o Debian Squeeze como lab, a interface eth0 é WAN (internet) e a eth1 é a LAN (rede local). Iremos começar instalando as dependências necessárias: # aptitude update # aptitude install make flex-old dialog libncurses5-dev kernel-package gcc Depois das dependências vamos levantar alguns módulos necessários: # modprobe sch_htb # modprobe sch_sfq # modprobe cls_u32 Crie o diretório onde será copiado o manual: # mkdir /usr/local/man/man8 Agora faça o download do HTB-tools para sua máquina. # cd /opt # wget -cv https://sites.google.com/site/guiadoti/arquivos/HTB-tools-0.3.0a.tar.gz Após o download extraia os arquivos: # tar xvzf HTB-tools-0.3.0a.tar.gz -C /usr/local # cd /usr/local/HTB-tools-0.3.0a # mkdir include/asm # cd include/asm Agora baixe a biblioteca bitops.h para o diretorio criado: # wget -cv https://sites.google.com/site/guiadoti/arquivos/bitops.h

Upload: junior-santos

Post on 27-Dec-2015

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Controle de Banda Com HTB

Controle de Banda com HTB-Tools

Pessoal hoje iremos ver uma ferramenta para controle de banda muito interessante

chamada HTB-Tools, ela auxilia na configuração de um algoritmo chamado HTB que

significa Hierarchical Token Bucket, este algoritmo possui algumas vantagens em

relação ao CBQ, como, velocidade, mais opções e ser mais robusto. Ele foi criado por

Martin Devera e passou a ser incluído no kernel do Linux a partir do 2.4.20.

O HTB-Tools é uma ferramenta para controle e administração de banda, um software

com vários recursos para auxiliar e simplificar o processo de alocação de banda, tráfego,

download, upload, gerando e checando configurações para cada cliente isoladamente.

Bem vamos para a instalação:

Estamos utilizando o Debian Squeeze como lab, a interface eth0 é WAN (internet) e a

eth1 é a LAN (rede local).

Iremos começar instalando as dependências necessárias:

# aptitude update

# aptitude install make flex-old dialog libncurses5-dev kernel-package gcc

Depois das dependências vamos levantar alguns módulos necessários:

# modprobe sch_htb

# modprobe sch_sfq

# modprobe cls_u32

Crie o diretório onde será copiado o manual:

# mkdir /usr/local/man/man8

Agora faça o download do HTB-tools para sua máquina.

# cd /opt

# wget -cv https://sites.google.com/site/guiadoti/arquivos/HTB-tools-0.3.0a.tar.gz

Após o download extraia os arquivos:

# tar –xvzf HTB-tools-0.3.0a.tar.gz -C /usr/local

# cd /usr/local/HTB-tools-0.3.0a

# mkdir include/asm

# cd include/asm

Agora baixe a biblioteca bitops.h para o diretorio criado:

# wget -cv https://sites.google.com/site/guiadoti/arquivos/bitops.h

Page 2: Controle de Banda Com HTB

Volte para a raiz do HTB-Tools:

# cd /usr/local/HTB-Tools-0.3.0a

Agora podemos instalar a ferramenta sem nenhum problema:

# make

# make full

Nesse momento você sera questionado onde será o diretório de execução do serviço,

responda:

/etc/init.d/

Depois você será questionado sobre o diretório onde as paginas web serão armazenadas,

responda:

/var/www/ ou outro diretório a sua escolha.

Pronto o HTB-Tools já esta instalado e pronto para ser utilizado.

Agora vá para os arquivos de configuração do htb-tools:

# cd /etc/htb

Aqui você vai encontrar os arquivos eth0-qos.cfg e eth1-qos.cfg, eles correspondem

respectivamente as interfaces de rede eth0 e eth1. Os arquivos de configuração são

organizados em classes, cada classe pode ter uma sub-classe que são os clientes, a classe

principal é referente a banda total, todas as sub-classes podem compartilhar banda entre

elas, mas se existir mais de uma classe principal elas não poderão compartilhar a banda.

Neste artigo iremos realizar a demonstração das regras comas classes abaixo:

Zezinho – Terá o limite de banda de 256 kbps – 10.0.0.10

Ana – Terá o limite de banda de 512 kbps – 10.0.0.11

João – Terá o limite de banda de 1024 kbps – 10.0.0.12

Marina – Terá o limite de banda de 1024 kbps – 10.0.0.13

O restante do trafego da Rede que não se enquadrar nas regras acima irão ter uma banda

de 2048 kbps (2 Mb) lembrando que a banda total é de 5120 kbps (5 Mb).

Iremos configurar o arquivo contido em /etc/htb, como a interface eth1 é a nossa

conexão com a rede local iremos alterar o arquivo eth1-qos.cfg para configurar o

controle de download. Iremos criar uma copia do arquivo original e começar um novo.

# mv eth1-qos.cfg eth1-qos.cfg.old

# pico eth1-qos.cfg

################

Page 3: Controle de Banda Com HTB

# eth1-qos.cfg #

################

# for how to configure and use see docs/HowTo/

class guia_do_ti { # Nome da classe principal

bandwidth 5120; # Largura da banda garantida, nesse caso a total

limit 5120; # O máximo de banda que a classe podera utilizar

burst 2; # Numer máximo em Kbit que uma classe pode enviar por

vez

priority 1; # Nivel de prioridade, são elas de 0 a 7, onde 0 é a maior

client zezinho { # Nome da Sub-Classe

bandwidth 256; # Largura da banda garantida (banda mínima)

limit 300; # O máximo de banda que a classe poderá utilizar

burst 2;

priority 1;

dst { # Destino do tráfego (Download)

10.0.0.10/32; # endereço ip do cliente e mascara

};

};

client ana {

bandwidth 480;

limit 512;

burst 2;

priority 1;

dst {

10.0.0.11/32;

};

client joao {

bandwidth 480;

limit 512;

burst 2;

priority 1;

dst {

10.0.0.12/32;

};

};

client marina {

bandwidth 1024;

limit 1024;

burst 2;

priority 1;

dst {

10.0.0.13/32;

};

};

Page 4: Controle de Banda Com HTB

client rede_local {

bandwidth 2048;

limit 4096;

burst 2;

priority 1;

dst {

10.0.0.0/24; # Faixa de endereços da rede (254 ips)

};

};

};

class default { bandwidth 8; }; # Classe padrão para o trafego que não se encaixar nas

classes acima.

Obs: Respeitem a indentação

Depois execute o comando abaixo para testar o arquivo:

# q_checkcfg /etc/htb/eth1-qos.cfg

Se ocorrer tudo bem ate aqui rode o comando abaixo para iniciar o HTB-Tools:

# htb eth1 start

Ou

# /etc/init.d/rc.htb start_eth1

Existem outros parâmetros que podem ser usados no HTB-TOOLS. No nosso exemplo,

fizemos o controle do download (dst = destination). Para controlar o upload utiliza-se

src (source) no lugar do dst. Se quiser controlar uma porta específica, basta incluir o

número da porta logo após o IP da rede/host. (Ex.:para a porta 80 ==> 10.0.0.0/24 80).

Agora é só testar o controle em algum cliente da rede, vocês podem fazer os testes

usando o http://speedtest.copel.net/ e baixando arquivos da internet e acompanhar a taxa

de transferência, lembrando que a taxa de transferência é 10% do limite que você

declarar.

Para acompanhar o consumo de trafego em tempo real utilize:

# /etc/init.d/rc.htb show_eth1

Para mais informações:

# /etc/init.d/rc.htb --help

Ou leia o manual:

Page 5: Controle de Banda Com HTB

# pico /usr/local/HTB-tools-0.3.0a/docs/HowTo/HTB-tools-howto.txt

Pessoal é isso ai, espero que tenham gostado, até a próxima.