}w!"#$%&'()+,-./012345<ya MASARYKOVA UNIVERZITA FAKULTA INFORMATIKY Analýza distribuce sít ového provozu na více výpočetních jader pomocí HW testovacích přístrojů BAKALÁŘSKÁ PRÁCE Libor Horák Brno, podzim 2012
Prohlášení Prohlašuji, že tato bakalářská práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. Libor Horák Vedoucí práce: Ing. Štěpán Friedl ii
Poděkování Chtěl bych poděkovat vedoucímu mé práce Ing. Štěpánu Friedlovi a Ing. Viktoru Pušovi za odborné vedení, ochotu a cenné rady, které mi pomohly při sepisování této práce. Dále pak děkuji Ing. Jiřímu Novotnému za velkou vstřícnost a kolegům pracujícím na projektu Liberouter za pomoc při testování. V neposlední řadě pak mé rodině a přátelům za jejich podporu. iii
Shrnutí Cílem této bakalářské práce je porovnání odolnosti Netflow sond proti útoku při využití distribuce sít ového provozu mezi více jader procesoru za pomoci sít ové karty s hardwarovou akcelerací HANIC, která je vyvíjena v rámci projektu Liberouter. Nejprve je popsán princip technologie NetFlow, dále samotná sít ová karta HANIC a poté následuje rozbor RFC dokumentů týkajících se testování sít ových zařízení. V další části jsou popsány hardwarové testovací přístroje. Na závěr se práce věnuje testování a porovnání NetFlow sond a jejich chování při útoku. iv
Klíčová slova Liberouter, HANIC, FPGA, COMBOv2, NetFlow, test propustnosti, NetFlow sonda v
Obsah 1 Úvod................................ 2 2 Technologie NetFlow...................... 3 2.1 Tok v počítačových sítích.................. 3 2.2 NetFlow Exportér...................... 4 2.2.1 FlowMon...................... 4 2.2.2 Softflowd...................... 4 2.2.3 fprobe........................ 5 2.3 NetFlow kolektor...................... 5 3 Sít ová karta s hadwarovou akcelerací HANIC........ 6 3.1 Architektura......................... 6 3.2 Distribuce provozu mezi jádra procesoru........ 7 3.3 Vícejádrové procesory................... 8 4 Rozbor RFC dokumentů o testování sít ových zařízení... 10 4.1 RFC 1242........................... 10 4.2 RFC 2544........................... 11 5 Hadwarové testovací přístroje................. 13 5.1 TC2000............................ 13 5.2 AX4000............................ 14 5.3 Analýza běžného sít ového provozu........... 14 5.4 Útok DDoS.......................... 15 5.5 Test propustnosti karty HANIC.............. 16 6 Závěr................................ 17 A Popis zařízení použitých při testování............ 20 1
1 Úvod V posledních letech se rychlost počítačových sítí rapidně zvyšuje. V současnosti jsou běžně nasazeny 1 Gbps a 10 Gbps technologie a již začala implementace technologie 100 Gbps. Se zvyšující se šířkou pásma počítačových sítí roustou i nároky na zpracování a analýzu sít ového provozu. Příkladem systémů dotčených těmito nároky jsou firewally, zařízení pro detekci a prevenci vniknutí nebo systémy pro monitorování sít ových toků. Stále se zyvšující požadavky na výpočetní výkon, nejen v obalsti sítí, způsobily i změny v architektuře počítačových procesorů. Přístup použití jednoho silného procesoru nahradil jiný, který na jeden čip umístil více procesorových jader. Aby aplikace pro analýzu sít ového provozu mohly využít výkon vícejádrových procesorů, musí svoji práci paralelně rozdělit na jednotlivá jádra. Nejefektivnějším způsobem jak toho dosáhnout je hardwarová akcelerace. Vývojem vysokorychlostních sít ových zařízení s hardwarovou akcelerací se zabývá projekt Liberouter [3]. Sít ové prvky toho projektu jsou postaveny na programovatelných FPGA 1 čipech. Jedním z těchto zařízení je i sít ová karta s hardwarovou akcelerací HANIC[6], která umožňuje zpracování sít ového provozu až o rychlosti 10 Gbps a jeho rozdělení mezi procesorová jádra. Předkládaná práce je rozdělena na pět hlavních částí. V první části je popsán princip technologie NetFlow [5] a jsou vysvětleny pojmy jako IP tok, NetFlow exportér nebo NetFlow kolektor. V druhé části je popsána sít ová karta s hadwarovou akcelerací HANIC a rozdělení sít ového provozu mezi více jader procesoru. V následující části je proveden rozbor RFC 2 dokumentů týkajících se testování sít ových zařízení. Čtvrtá část popisuje hardwarové testovací přístroje.. Praktická část je věnována vlastním testům sit ové karty HANIC a NetFlow sond FlowMon [15], fprobe [1] a Softflowd [11] a vyhodnocení jejich chování. 1. Field-programmable gate array 2. Request for Comments 2
2 Technologie NetFlow Tato kapitola popisuje princip technologie NetFlow [5]. S touto technologíí úzce souvisí pojmy jako tok, NetFow exportér a NetFlow kolektor, kterými se v tato kapitola také zabývá. Technologii NetFlow vyvinula firma Cisco na začátku 90. let 20. století. Byla navržena jako prostředek pro sledování sít ového provozu na základě IP toků. Původním záměrem jejího využití bylo účtování za poskytnuté služby, ale v současnosti je tato technologie využívána zejména pro monitorování počítačových sítí a zajištění jejich bezpečnosti nebo pro plánování zátěže počítačových sítí. Obrázek 2.1: Princip technologie NetFlow 2.1 Tok v počítačových sítích Definic IP toku existuje mnoho. Pro účely této práce budeme za tok považovat jednosměrnou sekvenci paketů se společnými vlastnostmi, která prošla sít ovým zařízením za určitý čas. Společnými vlastnostmi, které definují, že paket je součástí určitého toku, rozumíme tuto pětici údajů: zdrojová a cílová IP adresa, použitý protokol (TCP, UDP apod.) a čísla zrojového a cílového portu. Mimo tyto údaje obsahují zaznamenané informace o tocích, tzv. NetFlow data, detailní informace jako počet paketů, součet bajtů, časové známky, ToS (Type 3
2. TECHNOLOGIE NETFLOW of service), vstupní a výstupní rozhraní apod.. Tyto informace poskytují přehled o vlastnostech pozorovaných toků, rozložení sít ového provozu nebo o chování uživatelů. 2.2 NetFlow Exportér NetFlow exportér, často označován jako NetFlow sonda, monitoruje příchozí pakety na pozorovaném sít ovém zařízení a vytváří statistiky toků. Tyto informace, označované jako NetFlow data, odesílá na NetFlow kolektor prostřednictvím UDP paketů. V současnosti nejrozšířenějšími verzemi NetFlow jsou verze 5 a 9. NetFlow verze 9 [9] umožňuje práci se šablonami a struturu dat odesílaných na NetFlow kolektor, je možné uživatelsky definovat. Původně byly NetFlow exportéry navrženy pro použití v Cisco směrovačích, kam přinášely funkce NetFlow ve formě přídavného NetFlow modulu. Toto řešení však nabízely pouze poměrně drahé zařízení a následkem této cenové náročnosti se začaly objevovat softwarová řešení založená na klasickém PC vybaveného sít ovou kartou. V následující části je uvedeno, a krátce představeno, několik NetFlow sond. 2.2.1 FlowMon Sonda FlowMon [15] je vyvíjena v rámci projektu Liberouter [3]. Jedná se o pasivní sít ové monitorovací zařízení určené pro sledování provozu vysokorychlostních sítí. Sonda umožňuje nashromážděné informace o sít ovém provozu exportovat na NetFlow kolektor a to ve formátech NetFlow verze 5 a 9 nebo ve formátu IPFIX. 2.2.2 Softflowd Softflowd [11] je open-source softwarový NetFlow exportér vydávaný pod BSD licencí, který je schopen nasbírané informace o IP tocích odeslat na Netflow kolektor ve formátech NetFlow verze 1, 5 a 9. 4
2. TECHNOLOGIE NETFLOW 2.2.3 fprobe NetFlow exportér fprobe [1] je open-source softwarový nástroj dostupný pod GNU licencí, který sbírá a zpracovává informace o sít ovém provozu a tyto informace posílá na NetFlow kolektor ve formátu NetFlow verze 5. 2.3 NetFlow kolektor NetFlow kolektor je aplikace, která přijímá NetFlow data z jednoho nebo více exportérů. Přijatá data zpracuje a získané informace uloží. Údaje mohou být před uložením agregovány, což značně zredukuje jejich objem. Příkladem NetFlow kolektoru je open-source řešení, jež je založeno na sadě nástrojů NFDUMP [10]. 5
3 Sít ová karta s hadwarovou akcelerací HA- NIC Hardware Accelerated Network Interface Card (HANIC) je sít ová karta s hardwarovou akcelerací vyvíjená v rámci projektu Liberouter [3]. Hlavní funkcí tohoto zařízení je distribuce sít ového provozu mezi procesorová jádra. HANIC rozděluje příchozí provoz mezi několik softwarových rozhraní, přiřemž každé z těchto rozhraní může mít přiděleno vlasní jádro procesoru pro zpracování dat. [2] Tato vlastnost navíc umožňuje zachovat mapování toku na konkrétní jádro, což je velmi důležité zejména pro aplikace, které s toky pracují jako jsou např. NetFlow nástroje. 3.1 Architektura Pro implementaci hardwarové akcelerace je pro účely této práce využita karta COMBO-LX155T [6, 16] z rodiny COMBOv2 [14]. Karta je složena z mateřské karty COMBO-LXT, vybavené příslušným firmwarem, a karty COMBOI-10G2 zajišt ující dvojici 10Gbps Ethernetových rozhraní. Samotnou akceleraci provádí FPGA 1 čip Virtex5. Karta je připojena do počítače pomocí PCI Express x8. Na Obrázku 3.1 je zachycena architektura hardwarové akcelerace. Paket je přijat do vstupního bufferu, kde je mu přidělena časová známka. Dále paket postupuje do modulu HFE (Header Field Extractor), který vyjme jeho hlavičku. Následně modul Mask vybere z jednotlivých polí hlavičky pouze ty, které jsou relevantní pro danou aplikaci. Typicky pole obashující IP adresy, protokol nebo čísla portů. Poté modul pro výpočet hashe spočítá na základě vybraných polí hlavičky kontrolní součet CRC. Tento hash je použit jako idetifikátor procesorového jádra, na kterém bude paket zpracován, a je firmwarem karty přidán ve formě specifické hlavičky před původní paket. Takto upravené pakety z obou vstupních bufferů vstupují do slučovacího modulu Binder. V posledním kroku jsou pakety určené konkrétnímu jádru přeneseny do bufferu v operační paměti. Každé jádro má svůj vlastní buffer, čímž se minimalizuje riziko kolize ve 1. Field-programmable gate array 6
3. SÍŤOVÁ KARTA S HADWAROVOU AKCELERACÍ HANIC vyrovnávací paměti procesoru. Komunikaci mezi operační pamětí a FPGA akcelerátorem zajišt uje DMA modul.[22] Kromě zmiňované distribuce provozu mezi více jader tato karta také umožňuje zkracování paketů [2], které je možné s výhodou využít např. pro NetFlow aplikace, kde jsou zkoumány pouze hlavičky paketů. Obrázek 3.1: Architektura hardwarové akcelerace 3.2 Distribuce provozu mezi jádra procesoru Jak již bylo zmíněno výše, pro identifikaci procesorového jádra, na kterém bude paket zpracován, je používán hash. Toto číslo může mít velikost tři bity, v případě distribuce mezi osm jader, nebo čtyři bity pro případ distribuce mezi šestnáct jader. Díky tomu, že hashovací fuknce vždy vrací stejnou hodnotu pro pakety patřící do určitého toku, je zajištěno mapování konkrétního toku na konkrétní jádro. Pro výpočet hashe mohou být použity následující údaje z hlavičky paketu. Verze IP protokolu Zdrojová a cílová IP adresa Protokol vyšších vrstev Zdrojový a cílový TCP/UDP port 7
3. SÍŤOVÁ KARTA S HADWAROVOU AKCELERACÍ HANIC 3.3 Vícejádrové procesory S rostoucími nároky na výpočetní výkon a současnému přiblížení k fyzikálním limitům dosavadního přístupu ke zvyšování výkonu, došlo na přelomu století ke změně konceptu procesoru jako jedné výkonné výpočetní jednotky. Nahradila jej architektura vícejádrových procesorů, které obsahují více výpočetních jednotek na jednom čipu. Aby aplikace pro analýzu sít ového provozu mohly využít výkon vícejádrových procesorů, musí svoji práci paralelně rozdělit na jednotlivá jádra procesoru. Toho se dá dosáhnout několika způsoby. U výpočetních úkolů, které jsou lehce rozdělitelné, může každé jádro zpracovávat všechna data, ale přitom provést pouze část z požadovaného úkolu. Toto zřetězené zpracování je zobrazeno na obrázku 3.2. Tento přístup však není vhodný pro obecné použití a ve většině případů jej nelze použít. Obrázek 3.2: Zřetězené zpracování Vhodným obecným přístupem je ponechání výpočetního úkolu v nezměněném stavu, přičemž každé procesorové jádro provede požadovaný úkol pouze nad částí dat v ideálním případě tak, že dojde k rozdělení sít ového provozu na několik částí podobné velikosti. Rozdělení sít ového provozu mezi procesorová jádra však nemůže být provodeno náhodně, protože většina aplikací zpracovává příchozí pakety na úrovni toků (např. TCP spojení).všechny pakety patřící k určitému toku proto musí být vždy přiřazeny stejnému jádru. Distribuce sít ového provozu na úrovni toků obvykle zahrnuje inspekci každého příchozího paketu, dále extrakci specifických polí z hlavičky paketu (např. zdrojových a cílových adres nebo portů) a nakonec přiřazení paketu určitému jádru. [22] Takováto distribuce paketů však v současnosti není dostupná ani na úrovni operačnícho systému a ani ji nepodporují běžně dostupné levné sít ové karty. Proto si musí aplikace rozdělování paketů mezi 8
3. SÍŤOVÁ KARTA S HADWAROVOU AKCELERACÍ HANIC jednotlivá jádra procesoru zajišt ovat ve vlastní režii. Příkladem je přístup zobrazený na obrázku 3.3. Jedno procesorové jádro zajišt uje distribuci paketů mezi ostatní jádra, která již slouží k samotnému výpočtu požadovaného úkolu. Obrázek 3.3: Paralelní distribuce paketů bez akcelerace Tento přístup softwarové distribuce však výkonnostně nestačí pro vysokorychlostní sítě operujících s rychlostmi 10 Gbps a výššími. Tato skutečnost vedla k vytvoření hardwarově akcelerované distribuce paketů mezi jádra, který je zobrazen na obrázku 3.4. Obrázek 3.4: Distribuce paketů za pomoci hardwarové akcelerace 9
4 Rozbor RFC dokumentů o testování sít ových zařízení Tato kapitola je věnována rozboru RFC dokumentů týkajících se testů sít ových zařízení. Vytvářením RFC na toto téma se zabývá skupina BMWG 1 vrámci IETF 2. Prvním důležitým dokumentem je RFC 1242 [21], ve kterém jsou definovány základní pojmy používané v pozdějších RFC. Na tento dokument navazuje RFC 1944[17], který byl posléze nahrazen RFC 2544[18], kde byly definovány základní metodiky testování. Tyto dokumenty aktualizuje RFC 6201[13] defiující pojem čas zotavení a příslušné testy chování zařízení v případě nutnosti jeho restartu. Obecný přehled RFC dokumentů podal Jan Vykopal ve své bakalářské práci[19], a proto se budu na tomto místě zabývat pouze RFC, které jsou účelné pro téma této práce. HANIC je specifické zařízení, proto v uvedených RFC nenajdeme testy na míru tohoto nástroje. Je ovšem možné využít několika obecných testů. 4.1 RFC 1242 Jak již bylo nastíněno výše, tento dokument definuje základní pojmy používané při testech sít ových zařízení. Toto RFC reflektuje potřebu jednoznačně definovaných pojmů užívaných při testování sít ových zařízení a snaží se tak předcházet možným desinterpretacím v této oblasti. V následující části jsou zmíněny vybrané pojmy, Konstatní zatížení Tato metrika je definována jako provoz obsahující rámce konstantní velikosti, posílané do testovaného zařízení danou neměnící se rychlostí. Ikdyž se podobné podmínky v reálném provozu téměř nevyskytují, lze tuto hodnotu využít např. k testům srovnávajícím výkon zařízení od různých výrobců. Ztrátovost Procento provozu, které mělo být testovaným zařízením 1. Benchmarking Methodology Working Group 2. Internet Engineering Task Force 10
4. ROZBOR RFC DOKUMENTŮ O TESTOVÁNÍ SÍŤOVÝCH ZAŘÍZENÍ zpracováno, ale kvůli nedostatku zdrojů ke zpracování nedošlo. Tato hodnota může být využita při vyjádření výkonu sít ového zařízení v přetíženém stavu. Propustnost Maximální míra provozu (typicky vyjádřená v bitech za sekundu), při které testované zařízení vykazuje nulovou ztrátovost. Tato hodnota je důležitá, protože významné zpoždění v komunikaci může být zůsobeno i ztrátou pouze jednoho paketu. 4.2 RFC 2544 Jak bylo zmíněno výše, tento dokument nahrazuje RFC 1944. S pojmy definovanými v RFC 1242 je možné nastínit obsah RFC 2544. Úvod dokumentu je věnován jeho cíli, jímž je poskytnutí několika testů pro získání a prezentaci údajů o výkonnosti sít ových zařízení jejich výrobci tak, aby byla usnadněna orientace spotřebitelů na trhu. Tyto sjednocené testy by měly přispět ke ztížení možnosti udávat tendenční výsledky měření tak, aby došlo k zamlčení určitých parametrů zařízení a výrobce tak neuváděl spotřebitele v omyl. V další části jsou popsány možnosti zapojení testovaných a testovacích přístrojů v závislosti na typu použitých médií a dostupnosti testovacích zařízení. Dále jsou uvedeny požadavky na postup přípravy testovaného zařízení. To musí být nainstalováno a nakonfigurováno podle dodané uživatelské dokumentace. Veškerá nastavení je třeba provést před zahájením testu. Report z testu musí tuto konfiguraci obsahovat. Následující čast je věnována formátu a délkám testovacích rámců. Pro účely tohoto textu jsou relevantní pouze hodnoty pro Ethernet a to v délce 64, 128, 256, 512, 1024, 1280 a 1518 bajtů. Před samotným popisem testů jsou zmíněny obecné zásady jejich provádění. Základní postup při testování je tento. Po korektním zapojení a konfiguraci testovaného zařízení zapneme generátor provozu a odešleme všechny plánované testovací pakety. Po odeslání vyčkáme dvě sekundy a vyhodnotíme výsledky. Před dalším testem vyčkáme minimálně pět sekund kvůli stabilizaci testovaného zařízení. Každý z dílčích testů by měl trvat nejméně 60 sekund. Vzhledem k tomu, že některé testy vyžadují opakované provedení dílčích 11
4. ROZBOR RFC DOKUMENTŮ O TESTOVÁNÍ SÍŤOVÝCH ZAŘÍZENÍ testů, dokument umožňuje zkrácení pod hranici 60 sekund, ale za podmínky, že konečné výsledky musí být ověřeny na intervalu plné délky. Dále následují popisy jednotlivých testů, ze kterých jsem vybral dva nejvíce podstatné, test propustnosti a test ztrátovosti. Test propustnosti Tento test je určen ke zjištění propustnosti definované v RFC 1242. Postup při testu je následující. Do testovaného zařízení odešleme rámce zamýšlené velikosti a počtu. Zjistíme kolik rámců testované zařízení odeslalo zpět. Pokud se počty rámců nerovnají, snížíme rychlost. Jako efektivní přístup RFC navrhuje binární vyhledávání 3. Výsledek měření by měl být ve formě grafu, kde jsou na ose x délky rámců a na ose y rychlost v rámcích za sekundu. Graf by měl také kromě samotných výsledků měření obsahovat také maximální teoretickou propustnost. Za nejpodstatnější hodnotu je považována propustnost při užití rámců nejkratší možné délky. Test Ztrátovosti Cílem tohoto testu je zjištění ztrátovosti podle definice z RFC 1242. Test by měl začít odesláním provozu rychlostí, která odpovídá maximálnímu zatížení linky. Pokud testované zařízení zpracuje všechny rámce, ztrátovost je nulová. V případě že je ztrátovost nenulová, vypořítáme její hodnotu jako procentuální podíl počtu zpracovaných rámců vzhledem k odeslaným rámcům. Dalším krokem je odeslání provozu o rychlosti 90%. Takto postupně snižujeme rychlost po 10% intervalech, dokud výsledkem dvou po sobě následujících měření není nulová ztrátovost. Výsledky měření by měly opět být ve formě grafu, kde na ose x je procentuální zatížení linky a na ose y ztrátovost vyjádřená v procentech. Do jednoho grafu mohou být vyneseny ztrátovosti pro různé delky rámců. Ikdyž jsou testy uvažovány v laboratorních podmínkách byly skupině BMWG pro tyto účely přiděleny IP adresy od organizace IANA 4 v rozsahu 198.18.0.0 5 až 198.19.255.255. Smyslem opatření je minimalizovat riziko konfliktů adres při neúmyslném úniku testovacího provozu do prostředí reálné sítě. 3. Půlení intervalů v každé iteraci 4. Internet Assigned Numbers Authority 5. V původním RFC 2544 je uvedena chybná adresa 192.18.0.0 [12] 12
5 Hadwarové testovací přístroje Pod pojmem hardwarové testovací přístroje rozumíme zařízení, pomocí kterých je možné testovat funkčnost sít ových prvků. Jedná se o nástroje, které jsou shcopny generovat nadefinovaný sít ový provoz obsahující požadované typy paketů včetně jejich obsahu. Tento provoz je možné poslat na testované zařízení a otestovat tak jeho chování. Případně umožňují provoz od testovaného zařízení zachytit, analyzovat a zjistit, zda odesílá to, co je od něj očekáváno. Testovací přístroje se skládají z chassi, do něhož jsou zapojeny samotné testovací karty, a ovládacího softwaru. Tyto karty se od sebe mohou odlišovat počtem portů, použitým rozhraním (nejčastěji optický nebo metalický kabel), pomocí kterého jsou propojeny s testovaným zařízením, nebo rychlostí, při níž jsou shopny pracovat (např. 1 Gbps nebo 10 Gbps). Ovládací software je bud přítomen na samotném testovacím zařízení nebo se nachází na jiném počítači. Pak je nutné ovládat testovací přístroj za pomoci vzdáleného přístupu. Tento software je nejčastěji vytvořen pro Windows a má grafické uživatelské prostředí, kde je možné vše pohodlně nastavit. Alternativou je potom skriptovací rozhraní v jazyce Tcl umožňující automatizované nastavování. Projekt Liberouter disponuje několika takovými zařízeními. Podrobně se jimi zabýval Kamil Veselý ve své bakalářské práci [20], já je na tomto místě jen krátce představím. 5.1 TC2000 Prvním hardwarovým testovacím přístrojem, kterému se budu věnovat je zařízení nesoucí název Spirent Test Center 2000, zkráceně TC2000, a pochází od britské telekomunikační společnosti Spirent Communications [4]. Chassi vlastněné projektem Liberouter je vybaveno dvěma kartami. První disponuje dvojicí portů schopných pracovat až rychlostí 10 Gbps a druhou, disponující dvanácti porty o rychlosti 1 Gbps. Zařízení je možné ovládat přes grafické uživatelské prostředí nebo pomocí Tcl API. Generátor umožňuje nastavování velkého množství hlaviček různých protokolů a samotného obsahu paketů bud jako řetězec zanků nebo v hexadecimální podobě. Dále je možné nastavit 13
5. HADWAROVÉ TESTOVACÍ PŘÍSTROJE délky jednotlivých paketů a také délky mezipaketových mezer. Pro účely testování v rámci této práce, sloužil jako generátor sít ového provozu právě tento testovací přístroj. 5.2 AX4000 Druhé zařízení je také dílem společnosti Spirent Communications a je pojmenováno AX4000. Tento nástroj je o několik let starší. Chassi obsahuje opět dvojici karet. První z nich je vybavena dvěma porty pracujících s rychlostí až 10 Gbps a druhá obsahuje šest portů umožňujících rychlost 1 Gbps. Zařízení lze také ovládat přes grafické uživatelské prostředí nebo pomocí Tcl API. 5.3 Analýza běžného sít ového provozu Tato část je věnována analýze běžného sít ového provozu. Souslovím "běžný provoz" je na tomto místě myšlen provoz bez masivních útoků na analyzovanou sít, tedy sít ový provoz, který je z velké většiny tvořen relevantními požadavky aplikací a uživatelů. Abychom vůbec s analýzou mohli začít, je nutné vyjít z nějakého záznamu takového sít ového provozu. Veřejně dostupné záznamy měření sít ového provozu dává k dispozici např. projekt MAWI (Measurement and Analysis on the WIDE Internet) [8], který se zaměřuje na dlouhodobé měření provozu v rozlehlých sítích ve východní Asii. K analýze jsem si vybral záznam měření z 29.11.2012[7]. Pro účely této práce budeme tento záznam považovat za běžný provoz a budeme z něj později vycházet při simulování běžného provozu pomocí hardwarového testovacího přístroje. Nejdůležitějšími paramatery pro nás budou následující údaje: Počet toků = 1940345 Počet paketů = 33434620 Průměrný počet paketů na tok = 17,23 Distribuce délek paketů v provozu (na obrázku 5.1) 14
5. HADWAROVÉ TESTOVACÍ PŘÍSTROJE Obrázek 5.1: Distribuce délek paketů v sít ovém provozu 5.4 Útok DDoS Útok DDoS (Distributed Denial of Service) má za cíl zahltit sít ový provoz tak, že nakonec dojde k znepřístupnění služby, proti které je útok veden, z důvodu zahlcení výpočetních prostředků sít ových prvků a následnému zahazování paketů. V této práci se zaměřuji na porovnání odolnosti pasivních NetFlow exportérů vůči DDoS útoku na sít kterou monitorují. Ideální stav by byl samozřejmě takový, že NetFlow exportér bude zvládat monitorovat a poskytovat údaje i během útoku a přinášet tak o něm cenné informace. Útok bude simulován hardwarovým testovacím přístrojem, který bude generovat velké množství toků. Každý tok bude sestávat pouze z jednoho krátkého paketu o délce 64 B. 15
5.5 Test propustnosti karty HANIC 5. HADWAROVÉ TESTOVACÍ PŘÍSTROJE Následující část je věnována výsledkům testu propustnosti sít ové karty s harwarovou akcelerací HANIC. Test propustnosti byl proveden na základě RFC 2544 [18]. V průběhu testu byly použity následující délky paketů: 64, 128, 207, 256, 313, 512, 726, 1024, 1280 a 1518 B. Konfigurace hostitelského počítače je uvedena v příloze A. Jako generátor provozu byl použit hardwarový testovací přístroj Spirent TC2000, který generoval provoz o šířce pásma 10 Gbps. Každá z uvedených délek paketů byla generována po dobu jedné minuty. Jak je patrné z obrázku 5.2 sít ová karta HANIC díky hardwarové akceleraci bezproblémů zvládá zpracovat provoz při zátěži 10 Gbps a to i v případě velkého počtu krátkých paketů. Obrázek 5.2: Test propustnosti HANICu při zátěži 10 Gbps 16
6 Závěr V rámci sepsání této práce jsem nastudoval technologii NetFlow a seznámil se s oblastí pasivních monitorovacích NetFlow exportérů, které jsem zmínil v první části práce. Dále jsem se zabýval distribucí sít ového provozu mezi více jader procesoru a nastudoval architekturu a funkcionalitu sít ové karty s hardwarovou akcelerací HANIC. Také jsem prostudoval základní RFC dokumenty týkající se testování sít ových zařízení a provedl jejcih rozbor. Dále jsem se zabýval hardwarovými testovacími zařízeními a krátce je popsal. Na rozhraní teoretické a praktické části práce jsem se věnoval analýze běžného sít ového provozu a útokům, které jej mají za cíl narušit nebo úplně znemožnit. V praktické části jsem otestoval propustnost sít ové karty s hardwarovou akcelerací HANIC. 17
Literatura [1] fprobe - NetFlow probe [online, cit. 2012-11-29]. URL: http: //fprobe.sourceforge.net/. [2] HANIC handbook [online, cit. 2012-11-15]. URL: http:// canti.liberouter.org/hanic/handbook.html. [3] Internetové stránky projektu Liberouter [online, cit. 2012-11-15]. URL: http://www.liberouter.org. [4] Internetové stránky společnosti Spirent Communications [online, cit. 2012-11-29]. URL: http://www.spirent.com. [5] Introduction to Cisco IOS NetFlow - A Technical Overview [online, cit. 2012-11-29]. URL: http://www.cisco.com/ en/us/prod/collateral/iosswrel/ps6537/ps6555/ ps6601/prod_white_paper0900aecd80406232.html. [6] Liberouter.org - Cards [online, cit. 2012-11-15]. URL: https: //www.liberouter.org/?page_id=1156. [7] MAWI Working Group Traffic Archive - traffic trace info[online, cit. 2012-11-29]. URL: http://mawi.wide.ad.jp/mawi/ samplepoint-f/2012/201211291400.html. [8] MAWI Working Group Traffic Archive [online, cit. 2012-11-29]. URL: http://mawi.wide.ad.jp/mawi/. [9] NetFlow Version 9 Flow-Record Format [online, cit. 2012-11-29]. URL: http://www.cisco.com/en/us/ technologies/tk648/tk362/technologies_white_ paper09186a00800a3db9_ps6601_products_white_ Paper.html. [10] NFDUMP - NetFlow processing tools [online, cit. 2012-11-29]. URL: http://nfdump.sourceforge.net/. [11] Softflowd - fast software NetFlow probe [online, cit. 2012-11-29]. URL: http://www.mindrot.org/projects/softflowd/. 18
6. ZÁVĚR [12] Bradner S.; Dubray K.; McQuaid J.; Morton A. RFC 6815: Applicability Statement for RFC 2544: Use on Production Networks Considered Harmful, November 2012. [13] Asati R.; Pignataro C.; Calabria F.; Olvera C. RFC 6201: Device Reset Characterization, March 2011. [14] Novotný J.; Žádník M. COMBOv2 Hardware Accelerators for High-Speed Networking. XILINX Academic Forum, San Jose, USA, 2008. Dostupné online, URL: http://wp.liberouter.org/wp-content/uploads/ 2012/05/COMBOV2-2008-02-10-Academic_Forum.pdf. [15] Žádník M.; Polčák L.; Lengál O.; Elich M.; Kramoliš P. FlowMon for Network Monitoring. Technical Report 20/2010, CESNET, Praha, 2010. [16] Čeleda P.; Krejčí R.; Barienčík J.; Elich M.; Kalíček V. HAMOC Hardware-Accelerated Monitoring Center. Technical Report 9/2010, CESNET, Praha, 2010. [17] Bradner S.; McQuaid J. RFC 1944: Benchmarking Terminology for Network Interconnection Devices, May 1996. Obsoleted by RFC 2544. [18] Bradner S.; McQuaid J. RFC 2544: Benchmarking Terminology for Network Interconnection Devices, March 1999. [19] Vykopal Jan. Metody testování výkonu prvků sít ové infrastruktury. Bakalářská práce, Masarykova Univerzita, 2006. [20] Veselý Kamil. Skriptovací rozhraní pro hardwarové testery sít ového provozu. Bakalářská práce, Masarykova Univerzita, 2008. [21] Bradner S. RFC 1242: Benchmarking Terminology for Network Interconnection Devices, July 1991. [22] Puš V.; Dedek T.; Martínek T. Hardware-accelerated Distribution of Network Traffic among Processor Cores. Technical Report 15/2010, CESNET, Praha, 2010. 19
A Popis zařízení použitých při testování Generátor Zařízení, které sloužilo jako generátor TCP/IP provozu. Testovací zařízení: Spirent Test Center 2000 Testovací software: Tcl library TC2000 Hostitelský počítač Počítač, na kterém byly nainstalovány a postupně otestovány všechny NetFlow sondy. Název stroje: mossel.liberouter.org Počet prosecosrů: 1 Počet jader: 4 Procesor: Intel(R) Xeon(TM) E5420 2.50 GHz Oprační systém: Linux 2.6.32 Základní deska: Supermicro X7DB8 Kapacita paměti: 2 GB COMBO karta: ComboLX155T / ComboI-10G2 S/N ComboLX155T: 8100325 S/N ComboI-10G2: 8100379 20