09. [BONUS - 10p] tcng (traffic control next generation)

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:

  • Creati un fisier numit eth0_htb.tc.
  • Specificați interfața eth0 în câmpul dev.
  • Specificați QDISC-ul htb.
  • Pentru fiecare clasă, specificați acțiunea rate xMbps, unde x este lățimea de bandă corespunzătoare.
  • Pentru fiecare clasă, specificați filtrul în formatul 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.

saisp/labs/11/contents/09.txt · Last modified: 2016/05/23 17:35 by alexandru.carp
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0