Comanda tcPentru controlul traficului si folosirea HTB in Linux se foloseste utilitarul/comanda tc (traffic control). Acest utilitar face parte din pachetul iproute2.
Nota
Pentru a implementa o solutie de QoS pe Linux folosind HTB kernelul trebuie sa fie compilat cu urmatoarele facilitati. Kernel Requirements
#
# QoS and/or fair queueing
#
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_CSZ=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_QOS=y
CONFIG_NET_ESTIMATOR=y
CONFIG_NET_CLS=y
CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_POLICE=y Folosirea comenzii tc 1 -> adauga queue discipline 2 -> specifica interfata careia i se ataseaza qdisc 3 -> cuvantul root indica faptul ca este un root qdisc si ca este de tip egress 4 -> identificator unic pentru acest root qdisc. Minorul tb sa fie zero 5 -> disciplina cozii foloseste htb, pot urma parametri precum default (clasa default in care se duce traficul neclasificat) 1 -> adauga o clasa 2 -> specifica interfata careia i se ataseaza clasa 3 -> specifica parintele clasei care este identificat unic pt. handler 4 -> specifica un handler unic care identifica clasa. Minorul tb sa fie non zero 5 -> subclasele trebuie sa fie de acelasi tip ca si parintele. HTB qdisc va contine HTB classes 6 -> specifica rate pt. clasa 7 -> specifica ceil pt. clasa 1 -> creeaza un filtru; 2 -> specifica interfata careia i se ataseaza filtrul; 3 -> specifica handlerul parinte careia i se ataseaza filtrul; 4 -> match ip packet (obligatoriu); 5 -> specifica o prioritate pentru acest tip de trafic astfel incat un filtru sa fie preferat in fata altuia; 6 -> u32 este un tip de clasificator. Se recomanda folosirea iptables fiindca este mai flexibil; 7,8 -> parametrii clasificatorului. Identifica pachetul dupa TOS si TCP port; 9 -> specifica handlerul clasei (sau qdisc) catre care traficul selectat va fi trimis; 10 -> un policer va lua o anumita actiune in cazul traficului sub rate si o alta actiune in cazul traficului peste rate. Policer in comparatie cu Shaperul nu va face delay la trafic. Doar actioneaza in functie de criterii; 13 -> mpu basic unit for policer. zero = all traffic; 14 -> prima actiune specifica ce va intreprinde policer-ul cand Bw este peste rate, iar a doua actiune ce va intreprinde cand Bandwidth este sub rate; kb = kbyte kbit = kbit |