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.