Paketový generátor pro operační systém Linux je schopen generovat až deset
paketových toků s uživatelem definovanými rozděleními velikostí paketů a dob
mezi odesíláními jednotlivých paketů daných toků. Uživatel má částečnou kontrolu
i nad záhlavími generovaných IP paketů a především nad polem Type of Service.
Program byl vyvinut v jazyce C++ a pro odesílání a příjem paketů využívá služeb
knihovny libpcap. Program je možné stáhnout ze sekce Ke stažení po zaregistrování. Minimální hardwarové požadavky na program nejsou přesně definovatelné. Obecně
závisejí na požadované rychlosti generovaného datového toku, na počtu
generovaných toků, použitých rozdělení velikostí paketů i z doby mezi
odesláními. Pro generování 100Mbit/s by měl stačit počítač s x86 procesorem
taktovaným na 2GHz a operační pamětí 256MB. Objektivním požadavkem jsou však 2
ethernetové síťové karty.
Minimální požadavky na software jsou:
- operační systém Linux
- naistalována knihovna libpcap
Instalace programu
Program vyextrahujeme z archivu do libovolného umístění v počítači. Program
je zkompilován pro mikroprocesory x86 - 32b. a 64b.. Před tím, než program spustíme,
je nutné mít nainstalovanou knihovnu libpcap pro spouštění aplikací, které
tuto knihovnu používají. Instalace knihovny se provede následovně:
sudo apt-get install libpcap0.8
Pokud tato knihovna není v repozitáři distribuce, je možné zkusit odkomentovat
zdroje třetích stran nebo použít nástroj s grafickým rozhraním synaptic.
Provozování programu
Paketový generátor se spouští s administrátorskými právy, například takto:
sudo ./trafficgenerator
nebo s parametrem pro načtení vstupních dat ze souboru:
sudo ./trafficgenerator input.cfg
Po spuštění se program první zeptá, která rozhraní může používat. V
příkazovém řádku to vypadá následovně:
V systemu byla nalezena nasledujici sitova rozhrani:
1. eth0
2. eth1
3. usbmon1
4. usbmon2
5. usbmon3
6. any
Uživatel je vyzván, aby si vybral, které zařízení bude použito jako odesílací
a které jako přijímací:
Zadejte cislo rozhrani, ktere chcete pouzivat jako odchozi:
Zadejte cislo rozhrani, ktere chcete pouzivat jako prichozi:
Po zadání používaných rozhraní je uživatel požádán, aby si vybral, kterou
operaci chce provést:
Vyberte pozadovanou operaci:
1. test propustnosti
2. test ztratovosti a zpozdeni
Další průběh programu již záleží na zvolené operaci. V
případě testování propustnosti je uživatel vyzván k zadání Type of Service
(dekadicky) a cílové MAC adresy generovaných rámců (hexadecimálně). Jako
oddělovače v MAC adrese jsou povolené dvojtečky a pomlčky.
V případě, že se
uživatel rozhodne pro operaci testování ztrátovosti a zpoždění, tak uživatel
musí zadat cílovou MAC adresu, která bude pro všechny generované paketové toky
shodná. Dále musí zadat počet generovaných toků a následně parametry pro každý
generovaný tok: Type of Service, rozdělení velikotí paketů a jeho parametry a
rozdělení dob mezi odesíláními a jeho parametry. V příkazovém řádku situace
vypadá následovně:
Rozdeleni velikosti paketu toku 0:
0. konstantni
1. rovnomerne
2. normalni
3. exponencialni
4. hyperexponencialni
5. Pareto
6. Weibullovo
7. Erlangovo
Zadejte stredni hodnotu velikosti paketu toku:
Zadejte rozptyl velikosti paketu toku:
rozdeleni dob mezi odeslanimi toku 0:
0. konstantni
1. rovnomerne
2. normalni
3. exponencialni
4. hyperexponencialni
5. Pareto
6. Weibullovo
7. Erlangovo
Zadejte hodnotu doby mezi odeslanim paketu:
TOS streamu 2:
Rozdeleni velikosti paketu toku 1:
0. konstantni
1. rovnomerne
2. normalni
3. exponencialni
4. hyperexponencialni
5. Pareto
6. Weibullovo
7. Erlangovo
Zadejte stredni hodnotu velikosti paketu toku:
Rozdeleni dob mezi odeslanimi
toku 1:
0. konstantni
1. rovnomerne
2. normalni
3. exponencialni
4. hyperexponencialni
5. Pareto
6. Weibullovo
7. Erlangovo
Zadejte stredni hodnotu doby mezi odeslanim paketu:
.
.
.
Po zadání všech parametrů je zahájeno samotné generování paketů, které trvá
několik sekund. Po jeho skončení se uživateli zobrazí statistika provedeného
testu, která může pro operaci testování propustnosti vypadat například takto:
Tok 1: prijato 89144 paketu z 89217, ztratovost 0.081823%, celkem 134072576 B,
prumerna rychlost 11.7298 [MB/s], min zpozdeni 469us, max zpozdeni 11975us,
prumerne zpozdeni 6976.41us
V případě operace testování ztrátovosti a zpoždění paketů může výstup vypadat
například takto:
Tok 1: prijato 60776 paketu z 62375, ztratovost 2.56353%,
celkem 64155961 B, prumerna rychlost 5.8617 [MB/s], min zpozdeni 220us, max
zpozdeni 7129us, prumerne zpozdeni 660.149us Tok 2: prijato 537670 paketu z
555716, ztratovost 3.24734%, celkem 32260200 B, prumerna rychlost 2.94682
[MB/s], min zpozdeni 48us, max zpozdeni 12710us, prumerne zpozdeni 700.914us
Vstupní parametry pro generátor IP provozu můžeme zadat i pomocí vstupního souboru.
Tento způsob zadávání je vhodný především pro testy spouštěné prostřednictvím
skriptů, kdy je třeba provést několik testů s odlišnými parametry v sérii za
sebou. V případě zájmu o podrobnosti o tomto způsobu zadávání vstupních
parametrů nás prosím prostřednictvím emailu kontaktujte.