Differences

This shows you the differences between two versions of the page.

Link to this comparison view

saisp:labs:11:contents:07 [2014/05/18 12:35]
mihai.carabas created
saisp:labs:11:contents:07 [2014/05/18 14:28] (current)
mihai.carabas
Line 1: Line 1:
-==== 07. Colectare statistici folosind ''​tc'' ​====+==== 07. [10p] HTB - observarea consumului de resurse ​====
  
-Pe lângă controlul traficului, utilitarul ''​tc''​ ne furnizează șstatistici despre traficul transferat de fiecare clasă:<code bash> +Ștergețqdisc-ul root adăugat anterior.
-root@gateway:​~#​ tc -s class show dev eth0 +
-</​code>​+
  
-Scrieți un script ​care extrage numărul de octeți trimiși pentru ​una din claseUtilizați acest script să generați un grafic folosind informațiile prezentate în [[saisp:​labs:​03:​contents:​05|]].+Creați un script ​ce adaugă o limită de 1mbps pentru toate adresele IP din clasa 10.0.0.0/21 (trebuie să creați câte o clasă ​și câte un filtru ​pentru ​fiecare adresă IP)La finalul scriptului adăugați limita de 1mbps și pentru adresele IP asociate stațiilor ''​client1''​ și ''​client2''​.
  
 +Realizați un transfer între stația ''​client2''​ și stația ''​gateway''​ folosind ''​iperf''​. Utilizați 5 thread-uri pe partea de client a ''​iperf''​ (Hint: ''​-P''​). În timpul transferului observați încărcarea stației ''​gateway''​ (în mod special thread-urile kernel ''​ksoftirq''​). Acest lucru se datorează faptului că fiecare pachet trebuie să parcurgă toate filtrele adăugate secvențial. Clasificatoul ''​u32''​ a venit cu o soluție pentru acest lucru: folosirea unor tabele de hash, stocând filtrele sub forma unui arbore. Cheia hash-ului este dată de un octet al adresei IP destinație (mai multe detalii în curs și la exercițiul de la BONUS).
 + 
 <​solution -hidden> <​solution -hidden>
-<code bash> +<file bash htb.sh
-root@gateway:​~tc -s class show dev eth0 | grep -A 4 "class htb 1:​1"​|grep Sent|cut -d " " -f3 +#!/bin/bash
-6375340+
  
-Se adaugă comanda de mai sus în scriptul din [[saisp:labs:03:contents:​05|]],​ la variabila ''​outOctets''​ +tc qdisc del dev eth0 root 
-</​code>​ +tc qdisc add dev eth0 root handle 1htb 
-</​solution>​+tc class add dev eth0 parent 1classid 1:1 htb rate 100mbit burst 128k
  
 +classid=2
 +for j in $(seq 0 15);
 +do
 +    for i in $(seq 1 254);
 +    do
 +        classid=$(($classid + 1))
 +        tc class add dev eth0 parent 1:1 classid 1:$classid htb rate 100mbit burst 128k
 +        tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip dst 10.0.$j.$i flowid 1:$classid
 +    done
 +done
 +
 +classid=$(($classid + 1))
 +tc class add dev eth0 parent 1:1 classid 1:$classid htb rate 100mbit burst 128k
 +tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip dst 192.168.1.1 flowid 1:$classid
 +echo $classid
 +
 +classid=$(($classid + 1))
 +tc class add dev eth0 parent 1:1 classid 1:$classid htb rate 100mbit burst 128k
 +tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip dst 192.168.1.2 flowid 1:$classid
 +</​file>​
 +</​solution>​
saisp/labs/11/contents/07.1400405718.txt.gz · Last modified: 2014/05/18 12:35 by mihai.carabas
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