MGEN
Web:
http://cs.itd.nrl.navy.mil/work/mgen/index.php
http://pf.itd.nrl.navy.mil/mgen/mgen.html
http://downloads.pf.itd.nrl.navy.mil/mgen/
Testovaná verzia: mgen-4.0×5
Distribúcia: Linux, Windows, freeBSD, solaris, macOS
Licencia: open source, developed by the Naval Research Laboratory (NRL) PROTocol Engineering Advanced Networking (PROTEAN) Research Group
Užívateľské prostredie: Command line
Tento článok je možné stiahnúť aj so všetkými obrázkami v FILESHARE-> traffic generators
Charakteristika generátora
Open source softver vyvíjaný Naval Research Laboratory (NRL) PROTocol Engineering Advanced Networking (PROTEAN) Research Group. Generátor poskytuje možnosť generovať UDP stream s rôznym zaťažením siete. Vygenerovaný tok sa dá zachytiť a uložiť do logovacích súborov pre analýzu. Na generovanie toku je potrebné vytvoriť skriptovací súbor, ktorý obsahuje parametre daného toku. Aplikácia je postavená na architektúre klient/server. Logovací súbor potrebný na analýzu sa vytvára na prijímacej strane.
Použitie
Na generovanie toku dát je potrebné spustiť aplikáciu na dvoch stranách, pričom jedna strana bude generovať a posielať tok a druhá strana bude tento tok prijímať a zaznamenávať. Pre každú stranu je potrebné vytvoriť skriptovací súbor, ktorý charakterizuje správanie aplikácie z pohľadu odosielateľa a príjemcu. Príklad 1.1 obsahuje jednoduchý skript pre generovanie toku pre odosielateľa a skript pre príjemcu. Pri spustení aplikácie je možné charakterizovať niekoľko parametrov (viď obr 1.1), ktoré sú popísane na stránke http://pf.itd.nrl.navy.mil/mgen/mgen.html
Príklad
Skript pre odosielateľa nazvaný scriptSend.mgn
0.0 ON 1 UDP DST 158.193.85.36/5000 SRC 5001 PERIODIC [10.0 800] INTERFACE eth1 120.0 OFF 1 (Sender linux )Command line: $ ./mgen ipv4 input scriptSend.mgn output send.log
Skript pre príjemcu nazvaný scriptRecv.mgn
0.0 LISTEN UDP 5000-5001,6000,6003 0.0 JOIN 158.193.85.37 (Receiver linux )Command line: $ ./mgen ipv4 input scriptRecv.mgn output recv.log
mgen [ipv4][ipv6][input <scriptFile>][save <saveFile>] [output <logFile>][log <logFile>] [binary][txlog][nolog][flush][hostAddr {on|off}]
[event "<mgen event>"][port <recvPortList>]
[instance <name>][command <cmdInput>]
[sink <sinkFile>][block][source <sourceFile>]
[interface <interfaceName>][ttl <timeToLive>]
[tos <typeOfService>][label <value>]
[txbuffer <txSocketBufferSize>]
[rxbuffer <rxSocketBufferSize>]
[start <hr:min:sec>[GMT]][offset <sec>]
[precise {on|off}][ifinfo <ifName>]
[txcheck][rxcheck][check][stop]
[convert <binaryLog>][debug <debugLevel>]
obr 1.1 – parametre MGEN aplikácie
Analýza logov
MGEN vytvára na strane príjemcu logovací súbor, ktorý obsahuje informácie a prijatých UDP paketoch. Na analýzu tohoto súboru je potrebný softvér TRPR, ktorý je možné stiahnuť zo stránky http://downloads.pf.itd.nrl.navy.mil/proteantools/ Parametre aplikácie zobrazuje obrazok 1.2. Vysvetlenie jednotlivých argumentov sa nachádzajú na stránke http://pf.itd.nrl.navy.mil/protools/trpr.html. Výstupom je súbor, ktorý je možné použiť pre vstup do aplikácii vytvárajúce graf (gnuplot). Príklad 1.2 obsahuje ukážku použitia TRPR a gnuplot
Príklad
command line $ ./trpr mgen loss input recv.log output plot.plt command line $ gnuplot -persist plot.plt
Usage: trpr [version][mgen][ns][raw][key][real][loss][latency|interarrival] [window <sec>] [history <sec>] [flow <type,srcAddr/port,dstAddr/port,flowId>] [auto <type,srcAddr/port,dstAddr/port,flowId>] [exclude <type,srcAddr/port,dstAddr/port,flowId>] [input <inputFile>] [output <outputFile>] [link <src>[,<dst>]][send|recv] [range <sec>[:<sec>]][offset <hh:mm:ss>][absolute] [summary][histogram][replay <factor>] [png <pngFile>][post <postFile>][multiplot] [ramp]
obr.1.2 – parametre TRPR aplikácie
Výhody
-
generátor generuje toky s rôznym rozdelením, dokáže emulovať telefónny hovor.
-
počas behu sa dajú meniť vlastnosti toku (rozdelenie, zaťaženie)
-
generovanie viacerých tokov súčasne
-
možnosť vytvárať grafy
-
podpora GPS aplikácie
Nevýhody
-
generuje len UDP traffic
-
zložitá obsluha, na dosiahnutie výsledkov sú potrebné 3 programy
-
vytvorené logovacie súbory zaberajú veľa miesta na disku
Vykonaný test
Na otestovanie generátora sme použili 2 PC, jeden bol zdrojom, druhý prijímačom. Oba PC majú 10 MB/s sieťové rozhrania Každé PC bolo pripojené na fastEthernetové rozhranie na smerovač. Smerovače boli navzájom prepojené sériovou linkou s nastavenou priepustnosťou 128 kilobitov. Zdroj generoval UDP tok 64 Kbit (10 paketov za sekundu veľkosti 800 bytov) počas doby 5 minút. Na smerovači bežal SNMP protokol, pomocou ktorého sa merala záťaž na jednotlivých interfacoch. Zapojenie znázorňuje obrázok 1.3. Odosielateľ mal operačný systém macOS a príjemca Linux Debian.
Teoretická časť
Popis HDLC rámca
V našom teste sa požíva CISCO proprietárny rámec cHDLC. Obrázok zobrazuje štruktúru rámca. Veľkosť rámca je 56 bitov.
Popis Ethernet rámca
Obrázok popisuje formát ethernetového rámca. Veľkosť rámca je 144 bitov.
Popis IP paketu
Obrázok popisuje štruktúru IP paketu. Veľkosť hlavičky IP paketu je 160 bitov
Výpočet teoretickej veľkosti toku na sériovom rozhraní
UDP body = 6400 bitov (generované mgen-om) UDP header = 64 bitov IP header = 160 bitov cHDLC rámec = 56 bitov
Generovanie 10 paketov za sekundu Veľkosť toku = 10 x (56 + 160 + 64 + 6400) = 66 800 bitov = 66,8 Kbitov
Výpočet teoretickej veľkosti toku na ethernetovom rozhraní
UDP body = 6400 bitov (generované mgen-om) UDP header = 64 bitov IP header = 160 bitov Ethernet rámec = 144 bitov
Generovanie 10 paketov za sekundu Veľkosť toku = 10 x (144 + 160 + 64 + 6400) = 67 680 bitov = 67,68 Kbitov
Praktická časť
Namerané hodnoty na FastEthernetovom rozhraní smerovača zobrazuje obrázok 1.4. Veľkosť nameraného toku je 67, 5 Kbitov = 67 500 bitov
Namerané hodnoty na sériovom rozhraní smerovača zobrazuje obrázok 1.5. Veľkosť nameraného toku je 66, 7 Kbitov = 66 700 bitov
Obrázok 1.6 znázorňuje graf, ktorý bol vytvorený na strane príjemcu z logovacieho súboru vytvorenom generátorom Mgen. Je v ňom vykreslená intenzita toku počas piatich minút.
Vyhodnotenie
Test ukázal, že Mgen generuje telo UDP segmentu. Rozdiel teoretickej a reálnej hodnoty zaťaženia siete sa líši na sériovom rozhraní o 100 bitov (teo. 66 800, reál. 66 700). Na jeden vyslaný paket je to rozdiel 10 bitov. Rozdiel hodnôt na ethernetovom rozhraní je 180 bitov (teo. 66 680, reál.67 500), čo predstavuje 18 bitov na paket. Keby generátor generoval celý UDP segment danej veľkosti, pri našom teste by bola odchýlka, skutočnej hodnoty a vypočítanej, 54 bitov na jeden paket. Možné chyby mohli nastať pri nepresnom meraní a zaokrúhlení PRTG servera. Pri použití Mgen generátora pre ďalšie merania na sériových interfacoch odporúčam počítať s chybou jeden byte = 8 bitov.
Záver
MGEN generátor je stále vo vývoji. Uspokojivo generuje UDP toky avšak negeneruje TCP traffic. Generátor pôsobí vhodne na vykonanie experimentov záťaže siete UDP paketmi. Veľkou výhodou je emulovanie telefonického hovoru.