Ověření možností generování provozu na platformě MikroTik + srovnání s Cisco a Open Source řešeními Bc. Josef Hrabal - HRA0031 Bc. Kamil Malík – MAL0018 Abstrakt: Tento dokument, se zabývá ověřením a vyzkoušením možností generování síťového provozu na směrovačích na platformě MikroTik RouterOS a jejich srovnání s generováním provozu na platformě Cisco Pagent IOS a Open Source řešením softwaru Ostinato.
Klíčová slova: Generování síťového provozu, MikroTik RouterOS, Cisco Pagent IOS, Ostinato
1 Úvod – Teoretická část .......................................................................................................... 2 1.1 Co to je generování síťového provozu ....................................................................... 2 1.2 Generátory provozu na síťových prvcích ................................................................... 2 1.2.1 MikroTik „Trafic Genrator“ a „Bandwidth test“ .................................................. 2 1.2.2 Cisco „Pagent IOS“ .............................................................................................. 2 1.3 Softwarové generátory provozu na OS ...................................................................... 3 1.3.1 Ostinato „Packet/Traffic Generator and Analyser“ .............................................. 3 2 Konfigurace a testování ......................................................................................................... 4 2.1 MikroTik RouterOS.................................................................................................... 4 2.1.1 Testování „Traffic Generator“ .............................................................................. 4 2.1.2 Testování „Bandwidth test“ .................................................................................. 9 2.2 Cisco „IOS Pagent“ .................................................................................................. 12 2.3 Open Source software Ostinato ................................................................................ 14 3 Závěr.................................................................................................................................... 18 4 Použitá literatura ................................................................................................................. 19
2013
1/19
1 Úvod – Teoretická část 1.1 Co to je generování síťového provozu Jedná se o simulaci zátěže síťových prvků síťovým provozem. K tomuto účelu slouží nástroje zvané generátory síťového provozu, může se jednat o nástroje implementované přímo v síťových prvcích, například ve směrovačích firmy Cisco, MikroTik, HP, Ubiquiti, nebo o softwarové nástroje, ať už komerční či Open Source, které umožňují stejnou funkcionalitu přímo na uživatelském OS. Slouží pro testování chování sítě při definovaném provozu nebo pro měření propustnosti a latencí.
1.2 Generátory provozu na síťových prvcích Tyto generátory síťového provozu jsou součástí firmware síťového prvku. Jejich funkce a způsob konfigurace se u jednotlivých výrobců liší a odvíjí se také od verze firmware síťového prvku. 1.2.1
MikroTik „Trafic Genrator“ a „Bandwidth test“
Obrázek 1: Logo MikroTik [7]
Na směrovačích firmy MikroTik běží firmware RouterOS, který obsahuje nástroje „Trafic generator“ a „Bandwidth test“. [1] Nástroj „Trafic generator“ umožňuje generování a odesílání uživatelsky definovaných paketů přes volitelné rozhraní. Utilita umí zpětně vyhodnotit „latency“, „jitter“, rychlost odesílání a přijímání paketů, počet ztracených paketů a umí detekovat chybné pořadí paketů. Pakety lze definovat pomocí hlavičky a samotného obsahu paketu. Tímto nástrojem nelze generovat spojově orientovaný provoz, tzn. nelze s ním generovat provoz TCP. [2] Nástroj „Bandwidth test“ slouží k testování propustnosti mezi dvěma směrovači MikroTik. Nástroj dovoluje generovat provoz UDP i TCP a zaznamenávat dosažené parametry sítě při testu. Tento nástroj neumožňuje uživatelsky definovat obsah paketů. [3]
1.2.2
Cisco „Pagent IOS“
Obrázek 2: Logo Cisco [8]
2013
2/19
Na směrovače firmy Cisco lze nahrát modifikovaný firmware „IOS Pagent“ (jeden soubor s bitovým obrazem systému). Tento firmware obsahuje sadu nástrojů schopných provádět generování provozu. Generovaní provozu lze provádět na 3. vrstvě OSI modelu a výše. Lze emulovat směrovací protokoly, multicast, TCP, FTP, HTTP session. Těmito nástroji nelze testovat provoz na 2. vrstvě ISO modelu, tzn. nelze ovlivňovat kontrolní součty rámců, injektovat hardwarové chyby a podobně. [4] Nástroje: „Traffic Generator“ (TGN) nástroj pro odesílání uživatelsky definovaných paketů na jakoukoliv kombinaci rozhraní. Obsahuje předdefinované šablony pro generování specifických typů paketů. „Packet Count and Capture“ (PKTS) nástroj pro zobrazení příchozích a odchozích paketů z libovolné kombinace rozhraní směrovače. Zachycovanou komunikaci lze filtrovat a zobrazovat. „Router Verified Traffic“ a „Control Verified Traffic“ (RVT a CVT) nástroje společně používané pro testování směrovačů, lze mezi nimi automaticky vytvořit několik datových proudů pro několik různých LAN síťových protokolů. „Passthru modify“ (PMOD) umožňuje směrovač vložit do testované sítě, tak aby provoz procházel přes tento směrovač a procházející provoz mohl modifikovat. „Session emulator“ slouží pro generování reálného TCP, FTP a HTTP provozu, vhodného pro testování QoS. „Large Network Generator“ (LNG) nástroje pro podporu směrovacích protokolů RIP, BGP, IGRP, EIGRP, OSPF, ISIS. [5]
1.3 Softwarové generátory provozu na OS Jedná se o generátory provozu ve formě klientské aplikace běžící na OS. Open Source generátory síťového provozu jsou ve většině případů jen rozšířením základní funkcionality síťového analyzéru. Pro srovnání jsme vybrali software „Ostinato Packet/Traffic Generator and Analyser“, který nabízí širší možnosti nastavení generování síťového provozu. 1.3.1
Ostinato „Packet/Traffic Generator and Analyser“
Tento software je multiplatformní (běží na Windows, Linux a MacOS X), podporuje generování většiny standardně používaných protokolů. Umožňuje modifikovat obsah prakticky jakéhokoliv protokolu. Podporuje vytvoření a konfigurace několika datových proudů. Jeden klient může spravovat několik rozhraní na několika počítačích generujících síťový provoz. [6]
2013
3/19
2 Konfigurace a testování 2.1 MikroTik RouterOS Fyzická konfigurace a zapojení směrovačů MikroTik RB133 je na obr. 3. Pro konfiguraci směrovačů je použita utilita WinBox nainstalovaná na konfiguračním PC. Pro odchytávání generovaného provozu je do spojení mezi směrovači přidán rozbočovač, ze kterého bylo pomocí síťové karty v notebooku a softwaru WireShark zachycována veškerá komunikace. Odchytávání komunikace WireShark
Router MikroTik RB133-A
Router MikroTik RB133-B
HUB 10.0.0.1/30
10.0.0.2/30
eth3
eth3
Generovaný provoz
Konfigurační PC
Obrázek 3: Fyzická konfigurace směrovačů
2.1.1
Testování „Traffic Generator“
Postup konfigurace nástroje „Traffic Generator“ na RouterOS ve verzi 5.25, pro vytvoření generovaného provozu na protokolu UDP. Konfigurace IP adres směrovače MikroTik RB133-A:
Konfigurace IP adres směrovače MikroTik RB133-B:
2013
4/19
Obrázek 4: Výchozí okno nástroje „Traffic Generator“
Na obrázku 4 je vidět hlavní okno nástroje „Traffic Generator“, které je přístupné z menu „Tools -> Traffic Generator“. Z tohoto okna lze spouštět nebo zastavovat veškeré generování datových toků, dále se také odtud dostaneme k jednotlivým dalším nastavením (Ports, Packet Templates, Raw Packet Templates, Streams). Dále budou popsány jednotlivé části konfigurace prioritně v grafickém rozhraní WinBox. Jelikož je „Traffic Generator“ poměrně nový, není ještě veškerá funkcionalita dostupná z grafického rozhraní, proto jsou některé části konfigurace prováděny v konzoli.
Obrázek 5: Definování portu nad interface
2013
5/19
Jako první je potřeba nadefinovat port pro generování provozu nad rozhraním, toto je znázorněno na obrázku 5. Vzorový paket na vrstvě UDP vygenerujeme následujícím příkazem:
K dispozici je nastavení generování hlavičky (MAC, IP, UDP, VLAN, RAW). Pro hlavičky obsahující MAC vrstvu lze zadat parametry zdrojové a cílové MAC adresy a MAC protokol. Pro hlavičky obsahující IP vrstvu lze zadat zdrojovou adresu, cílovou adresu, adresu brány, offset fragmentace a hodnotu TTL. Pro UDP hlavičku je k dispozici nastavení zdrojového a cílového portu. U VLAN lze nastavit VLAN id, prioritu a protokol. Jako poslední lze zvolit formát hlavičky RAW, poté musí být hlavička celá definována uživatelem. Obsah paketu pak můžou podle volby tvořit náhodně generovaná data, inkrementální data, nebo může být vyplněn předem definovanými daty.
Obrázek 6: Editace vygenerovaného paketu
Ukázka editace vytvořeného paketu je na obrázku 6. Je k dispozici kompletní editace hlavičky, defaultního portu, délky hlavičky, typ vnitřních dat a offsety pro IP a UDP.
2013
6/19
Obrázek 7: Vytvoření datového toku
Dále je potřeba vytvořit datový proud, který bude generovat proud námi specifikovaných paketů. K dispozici je nastavení výstupního portu, velikosti jednotlivých paketů, rychlosti generování v Mb/s nebo v P/s a zvolení předdefinovaného paketu. Nyní již lze generování provozu spustit v hlavním okně nástroje „Traffic Generator“.
Obrázek 8: Statistiky "Traffic Generator"
Naměřené statistiky generovaného provozu lze zobrazit i v průběhu generování. Ukázka statistiky testovaného provozu je na obrázku 8. Generování probíhalo rychlostí 3Mb/s, fyzická konfigurace měla, díky použitému rozbočovači, přenosovou rychlost cca 2Mb/s. Ve statistice lze tedy vidět počet odeslaných, přijatých a ztracených paketů a přenosových rychlostí. Dále je zobrazena minimální, průměrná a maximální latence a „jitter“. Statistika lze zobrazit jak z pohledu námi generovaného provozu tak i z celkového provozu na portu, kde lze vidět i provoz, který nebyl vytvořen generátorem.
2013
7/19
Obrázek 9: Generovaný paket s náhodným obsahem
Obrázek 10: Generovaný paket s definovaným obsahem
Obsah generovaných paketů je zobrazen na obrázcích 9 a 10. Na prvním obrázku je paket naplněn náhodnými daty, na druhém pak specifikovaným bajtem.
Obrázek 11: Definování vlastního paketu
Na obrázku 11 je ukázka paketu, který byl zachycen nástrojem WireShark a přenesen do „Traffic Generator“. Jedná se o jednoduchý „Ping request“.
2013
8/19
Obrázek 12: Vygenerovaný paket
Na obrázku 12 můžeme vidět zachycený paket, který byl odeslán z „Traffic Generator“.
Obrázek 13: Odpověď na vygenerovaný paket
Obrázek 13 ukazuje odpověď „Ping reply“ od druhého směrovače. Paket byl tedy nejen v pořádku vygenerován, ale i v pořádku přijat druhým směrovačem. 2.1.2
Testování „Bandwidth test“
„Bandwidth test“ server je v RouterOS implicitně zapnutý, ověřit si to můžeme následujícím příkazem:
2013
9/19
Obrázek 14: Nastavení "Bandwidth test" pro UDP provoz
Vlastní testování se provádí přes hlavní okno „Bandwidth test“ dostupné z „Tools -> Bandwidth test“. Na obrázku 14 je ukázáno nastavení pro testování UDP provozu. Nadefinovat lze velikost UDP paketů, směr datového toku, rychlost datového toku (tato položka nemusí být zvolena, pak bude generován maximální datový tok), volba pro náhodný obsah paketů (pro zamezení vlivu komprese paketů) a přihlašovací údaje k vzdálenému směrovači. Po spuštění pak hned vidíme aktuální datovou propustnost testovaného spoje, která se zanáší do grafu. Do statistiky se také zapisuje průměrná rychlost za posledních 10 vteřin a celkově.
Obrázek 15: Obsah UDP paketu
Na obrázku 15 je obsah zachyceného paketu generovaného nástrojem „Bandwidth test“.
2013
10/19
Obrázek 16: Nastavení "Bandwidth test" pro UDP provoz
Testování TCP provozu je znázorněno na obrázku 15. Oproti UDP provozu zde nemůžeme konfigurovat velikost paketů, namísto toho můžeme nastavit počet paralelně probíhajících TCP spojení.
Obrázek 17: Obsah TCP paketu
Obsah generovaného TCP paketu je na obrázku 17.
2013
11/19
2.2 Cisco „IOS Pagent“ Vzhledem k tomu, že jsme neměli k dispozici firmware Cisco IOS Pagent, nemohli jsme přímo otestovat možnosti generovaní síťového provozu na směrovačích Cisco nebo v emulátoru na OS Linux. Tato kapitola je citací ze semestrální práce Generátor sítového provozu zpracované v roce 2008. [5] Jedná se o ukázku konfigurace pro vytvoření generovaného provozu mezi dvěma směrovači s IOS Pagent. Následující konfigurační příkazy vytvoří datový proud ze směrovače Pagent 1. Směrovač Pagent 2 zastává roli „ARP responder“ poskytujícího MAC adresy pro ARP požadavky.
Obrázek 18: Zapojení Cisco směrovačů s IOS Pagent
Nastavení směrovače (Pagent 2) jako „ARP responder“
Nastavení směrovače (Pagent 1) pro vytvoření 64 bajtového toku
2013
12/19
Nastavení směrovače (Pagent 1) pro vytvoření 570 bajtového toku
Nastavení směrovače (Pagent 1) pro vytvoření 1518 bajtového toku.
Spuštění generování provozu a zobrazení výsledku po vygenerování provozu.
2013
13/19
2.3 Open Source software Ostinato Pro testování generování síťového provozu bylo použito zapojení směrovačů MikroTik na obrázku 19. Pro odchytávání generovaného provozu je do spojení mezi směrovači přidán rozbočovač, ze kterého bylo pomocí síťové karty v notebooku a softwaru WireShark zachycována veškerá komunikace. Software Ostinato je nainstalován na dvě PC, mezi kterými je generován síťový provoz. K běhu software Ostinato je zapotřebí nainstalovat i ovladač WinPcap. Odchytávání komunikace WireShark
Router MikroTik RB133-A 10.0.0.1/30
10.0.0.2/30
eth3
192.168.1.1/30
Router MikroTik RB133-B
HUB
eth3
eth2
eth2
192.168.2.1/30
PC 2 se softwarem Ostinato
192.168.2.2/30
Generovaný provoz
192.168.1.2/30
PC 1 se softwarem Ostinato
Obrázek 19: Zapojení pro generování provozu Ostinatem
2013
14/19
Obrázek 20: software Ostinato
Na hlavní obrazovce programu Ostinato je k dispozici volba „interface“ pro generování a zachytávání provozu, následně seznam vytvořených pravidel pro generování a statistika vybraných rozhraní.
2013
15/19
Obrázek 21: Průvodce vytvoření paketu
Ostinato obsahuje propracovaného průvodce pro vytváření paketů. Jeho možnosti jsou na obrázku 21. Veškeré volby, které se v této části průvodce provedou, jsou pak blíže specifikovatelné v dalších částech průvodce. Na ukázku jsem vygeneroval paket pro „Ping request“ (obrázek 22).
Obrázek 22: Vygenerovaný paket „Ping request“
2013
16/19
Obrázek 23: Zachycený paket "Ping request"
Vygenerovaný paket je zachycen na obrázku 23. Jak je z obrázku patrné, paket vygenerovaný pomocí průvodce v software Ostinato je v pořádku. Výsledný provoz lze skládat z více paketů, pro každý paket lze nastavit počet odeslání a výsledně pro všechny pakety pak rychlost odesílání v P/s. Ostatní Open Source řešení genrování síťového provozu mají podobný rozsah jako námi testovaný software Ostinato, nebo se jedná pouze o jednoduché rozšíření síťového monitorovacího softwaru.
2013
17/19
3 Závěr Na směrovačích firmy MikroTik jsme pomocí integrovaných nástrojů „Traffic generator“ a „Bandwidth test“, které jsou součástí firmwaru RouterOS, vyzkoušeli a ověřili možnosti generování síťového provozu. Nástroj „Traffic generator“ umožňuje posílat uživatelsky definované „surové“ (RAW) pakety, nebo lze pomocí průvodce jednoduše vytvořit vzorové pakety s různými hlavičkami a obsahem dat. Jsou k dispozici hlavičky MAC, IP, VLAN, UDP. Tento nástroj není schopen generovat provoz na TCP vrstvě. Generování provozu TCP i UDP na směrovačích MikroTik lze provést pomocí nástroje „Bandwidth test“, ale jedná se o test propustnosti s prakticky žádnou možností editace obsahu generovaných paketů. Výhodou implementace nástrojů pro generování provozu přímo do firmware směrovače je jejich snadné spuštění na již existující síti bez výraznějších zásahů. Nevýhodou jsou omezené možnosti nastavení. Námi vybraný a vyzkoušený Open Source software Ostinato nabízí poměrně široké možnosti generování síťového provozu. Umožňuje generovat nejpoužívanější protokoly a editovat jejich obsah. Oproti nástrojům v RouterOS nabízí širší možnosti nastavení jednotlivých generovaných protokolů a má snadnou rozšiřitelnost o další generovatelné protokoly. Nevýhodou je, že je potřeba mít dodatečné PC, na kterých bude daný software pro generování provozu nainstalován, problematické u rozsáhlejších sítí. Nástroje nabízené firmwarem Cisco Pagent IOS, pro generování síťového provozu, jsme neměli možno otestovat, ale dle informací, ukázky získané z projektu o Pagent IOS, a skutečnosti že se jedná o firmware pro směrovače přímo k tomuto účelu vytvořeného, lze předpokládat, že se bude jednat o řešení podobných schopností, jaké nabízí softwarové Open Source řešení, i když dle specifikací nelze generovat provoz na 2. vrstvě OSI modelu. Nevýhodou je, že pro generování provozu na směrovačích Cisco je potřeba, aby byl na něm zmíněný speciální firmware nahrán. Tento firmware není standardně přístupný pro veřejnost, ale je určen pro vnitřní potřeby společnosti Cisco.
Obrázek 24: Fyzické provedení testovací konfigurace
2013
18/19
4 Použitá literatura [1.] MikroTik RouterOS. [online]. [cit. 2013-05-04]. Dostupné z: http://www.mikrotik.com/software.html [2.] MikroTik RouterOS: Traffic Generator. [online]. [cit. 2013-05-04]. Dostupné z: http://wiki.mikrotik.com/wiki/Manual:Tools/Traffic_Generator [3.] MikroTik RouterOS: Bandwidth test. [online]. [cit. 2013-05-04]. Dostupné z: http://wiki.mikrotik.com/wiki/Manual:Tools/Bandwidth_Test [4.] Cisco: Pagent IOS. [online]. [cit. 2013-05-04]. Dostupné z: http://www.ciscoconsole.com/tag/pagent-ios/ [5.] HRUBÝ, Přemysl. HRU221. Generátor sítového provozu. Pagent IOS. [online]. [cit. 2013-05-04]. Dostupné z: http://wh.cs.vsb.cz/sps/images/0/0d/Pagen_text.pdf [6.] Ostainato: Packet/Traffic Generator and Analyzer. [online]. [cit. 2013-05-04]. Dostupné z: http://code.google.com/p/ostinato/ [7.] MikroTik logo. Dostupné z: https://www.mikrotik.com/logo/ [8.] Cisco logo. Dostupné z: http://www.cisco.com/web/services/it-case-studies/ciscocompany.html
2013
19/19