você está aqui: Home  → Arquivo de Mensagens Programação Shell Linux: Inscrições Abertas

QOS com HTB

Colaboração: Rodrigo Klein Santos

Data de Publicação: 14 de Janeiro de 2005

Muito se fala sobre Controle de Banda, QOS, e quando se pensa em Linux, achamos muita documentação para o CBQ.

Mas poucos conhecem o HTB, que pelo menos pra mim foi mais facil que o CBQ.

Vamos entender um pouco como se configura o HTB

Abaixo tenho um exemplo de script, que foi retirado do site do HTB e estou dando uma breve explicação sobre o exemplo.

#!/bin/bash
# Abaixo estou definindo a interface para o HTB utilizando o
# comando 'tc', ou seja, estou dizendo que agora ela trabalhará
# com o HTB e não mais com o PFIFO.

tc qdisc add dev eth0 root handle 1: htb default 12

# Criando as classes com seus respectivos limites de banda...
#
# Essa é a classe mãe da interface, ou seja, é a classe com o
# total de banda, o total do seu link ou da sua placa de rede, da
# interface...  
# aqui estou dizendo que o nosso link é de 100kbps

tc class add dev eth0 parent 1: classid 1:1 htb rate 100kbps ceil 100kbps #

# Essas são as demais classes filhas...
# esta primeira é a 1:10 que tem banda garantida de 30kbps ou
# seja, nunca menos que isso.... E pode chegar a 100kbps se as
# outras classes não tiverem usando o restante da banda do
# link que colocamos acima com 100kbps..
# Por isso 30kbps (garantia) ceil 100kbps (maximo)...
# Oque seria a banda garantida ?
# Seria a banda que esta classe teria no momento em que o link
# estivesse com trafego alto, ou seja, mesmo que outra classe
# estivesse precisando de banda a classe em questão teria essa
# "banda garantida" (claro se estivesse usando), se estiver
# ociosa a banda da classe em questão, as outras usariam.

tc class add dev eth0 parent 1:1 classid 1:10 htb rate 30kbps ceil 100kbps

# Esta é a 1:11 que tem 10kbps de banda garantida e 100kbps
# caso a classe mãe tenha banda ociosa...

tc class add dev eth0 parent 1:1 classid 1:11 htb rate 10kbps ceil 100kbps

# essa é a mesma coisa, 60kbps de banda garantida...

tc class add dev eth0 parent 1:1 classid 1:12 htb rate 60kbps ceil 100kbps

#
# Aqui você coloca quem você quer na classe que você quizer..
#

# Aqui você está colocando o IP source 1.2.3.4 com destino a
# porta 80 na classe 1:10 que é a  de "30kbps ceil 100kbps"

tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 \
 match ip src 1.2.3.4 match ip dport 80 0xffff flowid 1:10

tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 \
 match ip src 1.2.3.4 flowid 1:11

E assim por diante...

É claro que o HTB tem diversas outras configurações avançadas, mas no momento queremos apenas colocar pra funcionar e esta serve bem ao proposito de controlar banda.

Você pode encontrar outras referências no proprio site do HTB



Veja a relação completa dos artigos de Rodrigo Klein Santos