Utilitarul tc
oferă un control foarte bun asupra parametrilor QoS. Dar, din păcate, sintaxa este foarte complexă, greu de reținut și puțin lizibilă. tcng
este un utilitar cu o sintaxă mult mai expresivă, asemănătoare limbajului C. Folosind aceasta sintaxă, el poate genera comenzile tc
echivalente.
Pe stația gateway
descărcați și instalați utilitarul tcng
:
root@gateway:~# wget http://archive.debian.org/debian/pool/main/t/tcng/tcng_10b-3_amd64.deb root@gateway:~# dpkg -i tcng_10b-3_amd64.deb
Un fișier tcng
are următoarea sintaxă simplificată:
dev INTERFATA { QDISC () { class ( ACTIUNE ) FILTRU ; class ( ACTIUNE ) FILTRU ; ... class ( ACTIUNE ) FILTRU ; } }
Ne propunem să creăm un fișier tcng
, echivalent configurațiilor HTB de la 05. [10p] Traffic shaping classful:
eth0_htb.tc
.eth0
în câmpul dev
.QDISC
-ul htb
.rate xMbps
, unde x
este lățimea de bandă corespunzătoare.udp_port == ABCD
, respectiv tcp_port == ABCD
, unde ABCD
este portul corespunzător.dev eth0 { htb () { class ( rate 1Mbps ) if udp_dport == 8000 ; class ( rate 40Mbps ) if udp_dport == 6000 ; class ( rate 5Mbps ) if tcp_dport == 21 ; class ( rate 3Mbps ) if tcp_dport == 80 ; } }
Rulați tcng
pentru a obține comenzile echivalente tc
:
tcng eth0_htb.tc
Inspectați comenzile tc
generate și observați asemănările cu comenzile introduse manual.