This shows you the differences between two versions of the page.
saisp:labs:11:contents:01 [2014/05/17 13:01] mihai.carabas [01. Lorem ipsum] |
saisp:labs:11:contents:01 [2014/05/19 12:24] (current) alexandru.carp [01. [10p] iperf (generator de trafic)] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== 01. iperf (generator de trafic) ==== | + | ==== 01. [10p] iperf (generator de trafic) ==== |
- | Pentru a fi capabili să evaluăm politicile de QoS setate în rețeaua administrată de noi, avem nevoie de un utilitar care să genereze diferite tipuri de pachete, de diferite dimensiuni (UDP, TCP) și să măsoare viteza cu care acestea au fost transmise. Cel mai utilizat utilitar pentru acest lucru este ''iperf''. Acesta crează pachete direct în memorie și le trimite pe rețea, eliminând overhead-ul altor dispozitive I/O (exemplu: dacă testam cu un trasfer FTP se adăuga overhead-ul citirii/scrierii pe disc a fișierului transferat). | + | Pentru a fi capabili să evaluăm politicile de QoS setate în rețeaua administrată de noi, avem nevoie de un utilitar care să genereze diferite tipuri de pachete, de diferite dimensiuni (UDP, TCP) și să măsoare viteza cu care acestea au fost transmise. Cel mai folosit utilitar pentru acest lucru este ''iperf''. Acesta creează pachete direct în memorie și le trimite pe rețea, eliminând overhead-ul altor dispozitive I/O (exemplu: dacă testam cu un transfer FTP se adăuga overhead-ul citirii/scrierii pe disc a fișierului transferat). |
Utilitarul **iperf** poate rula în 2 moduri: | Utilitarul **iperf** poate rula în 2 moduri: | ||
- | * client: cel care **generează** traficul | + | * client: cel care **generează** traficul |
- | * server: cel care **primește** traficul | + | * server: cel care **primește** traficul |
În cadrul acestui laborator dorim să limităm traficul de ''download'', astfel clientul ''iperf'' va rula pe ''gateway'', iar server-ul ''iperf'', cel care primește traficul, va rula pe mașinile virtuale ''client1'' și ''client2''. | În cadrul acestui laborator dorim să limităm traficul de ''download'', astfel clientul ''iperf'' va rula pe ''gateway'', iar server-ul ''iperf'', cel care primește traficul, va rula pe mașinile virtuale ''client1'' și ''client2''. | ||
+ | Instalați ''iperf'' pe toate cele 3 stații:<code bash> | ||
+ | root@client1:~# apt-get update | ||
+ | root@client1:~# apt-get install iperf | ||
+ | root@client2:~# apt-get update | ||
+ | root@client2:~# apt-get install iperf | ||
+ | |||
+ | root@gateway:~# apt-get update | ||
+ | root@gateway:~# apt-get install iperf | ||
+ | </code> | ||
+ | |||
+ | Pe stația ''client1'', porniți ''iperf'' în modul server:<code bash> | ||
+ | iperf -s | ||
+ | </code> | ||
+ | |||
+ | Pe stația ''gateway'', porniti ''iperf'' în modul client:<code bash> | ||
+ | iperf -c 192.168.1.1 | ||
+ | </code> | ||
+ | |||
+ | După 10 secunde, atât server-ul (''client1'') cât și clientul (''gateway'') vor afișa statistici legate de traficul schimbat:<code bash> | ||
+ | root@gateway:~# iperf -c 192.168.1.1 | ||
+ | ------------------------------------------------------------ | ||
+ | Client connecting to 192.168.1.1, TCP port 5001 | ||
+ | TCP window size: 22.9 KByte (default) | ||
+ | ------------------------------------------------------------ | ||
+ | [ 3] local 192.168.1.3 port 57685 connected with 192.168.1.1 port 5001 | ||
+ | [ ID] Interval Transfer Bandwidth | ||
+ | [ 3] 0.0-10.0 sec 190 MBytes 159 Mbits/sec | ||
+ | |||
+ | root@client1:~# iperf -s | ||
+ | ------------------------------------------------------------ | ||
+ | Server listening on TCP port 5001 | ||
+ | TCP window size: 85.3 KByte (default) | ||
+ | ------------------------------------------------------------ | ||
+ | [ 4] local 192.168.1.1 port 5001 connected with 192.168.1.3 port 57685 | ||
+ | [ ID] Interval Transfer Bandwidth | ||
+ | [ 4] 0.0-10.0 sec 190 MBytes 159 Mbits/sec | ||
+ | </code> | ||
+ | |||
+ | Generați trafic de tip ''UDP'' între stația ''gateway'' și stația ''client2'' în care lungimea pachetelor să fie de 256 de octeți (Hint: ''<nowiki>--len</nowiki>''). | ||
+ | <solution -hidden> | ||
+ | <code bash> | ||
+ | root@client2:~# iperf -s -u | ||
+ | ------------------------------------------------------------ | ||
+ | Server listening on UDP port 5001 | ||
+ | Receiving 1470 byte datagrams | ||
+ | UDP buffer size: 208 KByte (default) | ||
+ | ------------------------------------------------------------ | ||
+ | [ 3] local 192.168.1.2 port 5001 connected with 192.168.1.3 port 36654 | ||
+ | [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams | ||
+ | [ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec 0.031 ms 0/ 5122 (0%) | ||
+ | |||
+ | ------------------------------------------------------------ | ||
+ | |||
+ | root@gateway:~# iperf -u -c 192.168.1.2 --len 256 | ||
+ | Client connecting to 192.168.1.2, UDP port 5001 | ||
+ | Sending 256 byte datagrams | ||
+ | UDP buffer size: 208 KByte (default) | ||
+ | ------------------------------------------------------------ | ||
+ | [ 3] local 192.168.1.3 port 36654 connected with 192.168.1.2 port 5001 | ||
+ | [ ID] Interval Transfer Bandwidth | ||
+ | [ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec | ||
+ | [ 3] Sent 5122 datagrams | ||
+ | [ 3] Server Report: | ||
+ | [ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec 0.030 ms 0/ 5122 (0%) | ||
+ | </code> | ||
+ | </solution> |