
| Hierarchical Token Bucket ( HTB ) inlocuieste cu succes Class Based Queueing ( CBQ ) datorita modului de operare precis si usor de inteles pentru toata lumea. Diferenta fata de CBQ este ca banda se aloca unei ( sau mai multe ) clase iar in momentul in care banda alocata clasei este depasita ea poate imprumuta ( temporar ) banda dintr-o alta clasa unde nu este folosita la maxim sau deloc. In plus, fata de CBQ, se pot aloca unul sau mai multi clienti unei clase. Toate clasele si toti clientii se stabilesc intr-un fisier de configurare. Printr-o serie de programe ( HTB_Tool ) se poate simplifica configurarea, monitorizarea operatiunii de alocare de banda. Primul program numit q_parser citeste un fisier de configurare ( in fisier sunt stabilite clasele, clientii, limitarile de banda ) si genereaza un script pentru setarile HTB; al doilea program q_show afiseaza in timp real situatia traficului si a benzii alocate pentru fiecare clasa/client conform fisierului de configurare.
// Begin disclaimer // Nu sunt responsabil de felul in care folositi aceasta informatie. Este descrierea pe care am folosit-o eu si functioneaza in conditiile descrise de mine. Daca calculatorul pe care instalati & configurati htb-utils o ia razna sau se defecteaza - nu sunt responsabil pentru acesta. // End disclaimer // Ca sa intelegeti mai bine cum functioneaza, precum si pasii care trebuie urmati ca sa folositi cu success HTB-tool, o sa descriu un exemplu real folosit de mine. Am folosit o banda de 256kbps pe care am impartit-o la 4 clienti ( minim 48kbps - maxim 64kbps /client). 1. Pentru kernel 2.4.22 ( este deja patchuit pentru suport HTB ) se vor selecta urmatoarele optiuni pentru HTB: # 2. Binarul tc din pachetul
htb3 trebuie copiat in /sbin ( htb3.6-020525.tgz
).
3. Se descarca sursele
htb_util-0.2.4-pre1_cv-1_quantum-1536-sin.tar.bz2 de la
http://sgi.rdscv.ro/~ionuts/htb-tools
) --- mai exista in pachet un binar tc pe care puteti sa il
folositi in cazul in care nu functioneaza cel care exita in /sbin sau
htb3.6-020525.tgz. 4. Se editeaza fisierul de
configurare. ( un exemplu este in docs/simple.cfg), tot acolo
gasiti si o descriere referitor la cum arata si la ce se refera fiecare
element din simple.cfg.
--- asa arata fisieru de configurare eth2-qos.cfg folosit de
mine --- // PRECIZARI // Formatul fisierului de configurare este
asemanator cu formatul fisierelor de configurare ale bind-ului.
Consumatorii de banda sunt impartiti in clase. Aceste clase nu pot partaja
banda intre ele. Membrii unei clase (clientii) pot partaja aceeasi banda
in functie de parametrii specificati in fisierul de configurare. O clasa
poate contine unul sau mai multi clienti. O clasa cu caracter special este
clasa default care specifica latimea de banda alocata celor care nu sunt
inclusi in nici o clasa. Rata de transfer se specifica in kbit. Inceputul
rindurilor cu # se considera comentariu. // PRECIZARI // |------------- // begin config file \\
-------------------------------------------------------------- ################################################################## class
class_1 {
################################################################## - in cazul unui singur IP, reprezentarea arata in felul urmator:
192.168.1.10/32;
- daca se doreste limitarea pe un port anume la un singur IP:
- daca se doreste limitarea pe un port anume la o clasa de
IP: - se mai poate folosi si src ( adica sursa traficului ) la care
reprezentarea este asemanatoare cu dst.
###################################################################
client client_1 {
client client_2 {
client client_3 {
client client_4 {
##### latimea de banda a clasei default ( ce nu face parte din nici una
din clasele definite anterior ) #####
class default { bandwidth 8; };
|------------- \\ end config file //
---------------------------------------------------------------- 5. Fisierul de configurare se
salveaza in /etc/htb.
6. Cu aceasta versiune de htb-tool
nu mai este necesar sa generati scriptul (script.sh) cu limitarile.
Datorita lui Sin (Patrascu Eugeniu), cel care a scris un script de
pornire, oprire, restartare a htb-tools, se pot aplica limitarile mult mai
simplu ca si inainte. Acest script se gaseste in pachetul
htb_util-0.2.4-pre1_cv-1_quantum-1536-sin.tar.bz2 si se numeste
htb.
---
eu am redenumit fisierul in rc.htb si l-am copiat in
/etc/rc.d La bootare
continutul fisierului stabileste limitarile/garantarile pe interfata eth2.
Deasemenea rc.htb mai verifica daca este corecta sintaxa din
fisierul de configurare si daca kernel-ul are suport de HTB. In cazul in
care nu este corect fisierul de configurare sau kernel-ul nu are suport de
HTB, scriptul afiseaza mesaje specifice. ---pentru
a opri limitarile se foloseste
comanda: 7. In acest moment limitarile sunt
stabilite si fiecare client foloseste banda alocata. Cu ajutorul binarului
q_show se poate urmari, in timp real, traficul & ocuparea
benzii pentru fiecare client. Se lanseaza comanda din directorul unde ati
compilat htb-tool:
Pentru cei ce nu inteleg descrierea facuta, sau nu inteleg anumite
lucruri, ii invit sa citeasca :
Radu ( radu@hurmuzachi.ro ) - cel care a
observat ca descrierea anterioara nu a
functionat |