18 Inteligentní analyzátor NetFlow
V rámci projektu jsme vytvořili modulárně řešený distribuovaný systém NetFlow Monitor, který umožňuje vyhodnocování síťového provozu zpracováním NetFlow statistik exportovaných ze směrovačů. Monitor umožňuje analýzu provozu téměř v reálném čase, inteligentní filtraci, agregaci a statistické vyhodnocení dat. Dále poskytuje multikriteriální selekci dat na úrovni jednotlivých datových toků (například podle zdrojové/cílové IP adresy, použitého protokolu, portů apod.
Celý systém je rozdělen na tři bloky:
- výkonné jádro systému - NetFlow Collector,
- uživatelské rozhraní - NetFlow Monitor,
- odesílaní varovných zpráv - NetFlow Event.
18.1 NetFlow Collector
Prvá část je kompletně napsána v programovacím jazyce C a vykonává vlastní zpracování přijatých dat. Vytvořená distribuce podporuje NetFlow export verze 1, 5, 6 a 7. NetFlow Collector dále podporuje jednoduché moduly.
Jednou částí je modul NetFlow Forwarder pro přesměrování datového toku na jiný cíl(e). Tento modul zajistí přeposílání NetFlow rámců na jednu či více jiných IP adres nebo portů. Dalším modulem je filtr vstupních dat, který pro svoji funkci používá vstupní přístupové seznamy (ACL) - tedy od koho lze NetFlow exporty přijímat.
Důležitým modulem je část vlastního ukládání přijímaných a zpracovaných NetFlow exportů do databáze. Náplní modulu export je kromě ukládání dat z vnitřní vyrovnávací paměti do databáze MySQL také agregace jednotlivých informací o datovém toku. Celý systém ukládání informací o datových tocích je navržen tak, že do hodinových tabulek jsou ukládány neagregované informace a z nich jsou dále vytvářeny tabulky denní, týdenní, měsíční a roční s agregovanými informacemi.
Počet jednotlivých tabulek je teoreticky omezen jen dostupným diskovým prostorem, lze jej však omezit i konfiguračně. Například lze definovat, že chceme mít přístupné hodinové tabulky za poslední 3 dny, dále denní tabulky s agregovanými daty za posledních 14 dnů, týdenní za posledních 6 týdnů a měsíční za poslední dva roky.
Model rozdělení tabulek na tabulky s agregovanými a neagregovanými informacemi je výhodný pro různé uživatelské pohledy. Pro správce sítě je často důležité si zobrazit detailní informaci o tom, co se na síti v uplynulé hodině dělo na úrovni jednotlivých datových toků. Pro tento případ je vhodné nahlédnout do hodinové tabulky. Jindy je zase důležité mít celkový přehled o trendech sítě, například jaké je procentuální zastoupení protokolů v rozsahu dne, týdne či měsíce. Tyto přehledy je lepší zobrazovat z připravených denních, týdenních či měsíčních tabulek.
18.2 NetFlow Monitor
Druhá část systému pro zpracování NetFlow statistik je napsána v programovacím jazyce PHP. Jejím cílem je uživatelsky přívětivým způsobem prezentovat naměřené hodnoty, vytvářet grafy a statistiky a v neposlední řadě umožnit jednoduchou konfiguraci NetFlow Collectoru ovládanou prostřednictvím WWW.
V prvém pololetí roku 2003 jsme přepracovali rozhraní systému s využitím původního jádra z minulého roku. Podstatou NetFlow Monitoru je jednoduché webové rozhraní umožňující komfortní manipulaci s naměřenými statistikami. Nové webové rozhraní obsahuje šest hlavních nabídek: Main, Profiles, Archive, Statistics, Options a Help.
Obrázek 18.1: Ukázka statistiky "rozložení objemu přenesených dat"
Nabídka Main obsahuje dvě hlavní funkce pro vyhledávání informací o datovém toku (Overview a Full Search), dále informace o komunikujících stranách, autonomních systémech a také seznam generovaných grafů, který lze kdykoliv exportovat nebo vytisknout. V nabídce Profiles jsou uživatelsky definované předpřipravené dotazy. Přes nabídku Archive lze zálohovat jednotlivé tabulky nebo konfiguraci systému. V položce Statistics najdete volby pro informace o stavu jednotlivých procesů, velikosti a stavu jednotlivých tabulek, databáze apod. Nabídka Options obsahuje nastavení celého systému. Lze vytvářet uživatele, nastavovat přístupová práva, přidávat nové collectory apod. V nabídce Help jsou zkrácené informace o postupu instalace, o verzi distribuce, licenční podmínky apod.
Protože celý systém je navržen pro distribuovanou architekturu, je nutné nastavit pro každý NetFlow Collector položku NetFlow Unit. Pod pojmem NetFlow Unit je myšlen jeden samostatný server. Pod jednou NetFlow Unit může být spuštěno více NetFlow Collectorů. Při nastavení NetFlow Collectoru se specifikuje port, na němž jsou přijímány NetFlow exporty ze směrovačů a dále počet tabulek, které se mají uchovávat.
Obrázek 18.2: Ukázka statistiky "rozložení použitých L4 portů (aplikací)"
NetFlow Monitor podporuje 18 různých statistik, mezi nimiž je například přehled přenesených bytů, 10 nejaktivnějších strojů, rozložení protokolů a L4 portů. Všechny statistiky lze definovat pro celou síť nebo podsíť, pro vybranou stanici, apod.
18.3 NetFlow portál
Během roku 2003 jsme dokončili práce na novém portálu, který informuje o novinkách ve vývoji NetFlow Monitoru. Portál nyní umožňuje otestovat software (nyní jsou monitorovány dva směrovače OSR7600 se zahraniční konektivitou a jeden páteřní směrovač GSR12000). Po vyplnění formuláře lze také stáhnout celou distribuci přímo z portálu. Portál najdete na adrese netflow.cesnet.cz. Pro možnost širšího použití nabízíme dvě verze, jednu pro doporučovaný systém Debian Linux, druhou pro ostatní linuxové distribuce.
Obrázek 18.3: Nový portál netflow.cesnet.cz
18.4 Závěr
Během roku 2003 jsme vytvořili použitelnou finální verzi monitorovacího systému NetFlow Monitor. V současné době používá NetFlow Monitor více jak 1000 organizací z více než 60 zemí po celém světě. Nejčastějšími uživateli jsou poskytovatelé připojení (ISP), univerzity a telekomunikační společnosti. Distribuce je šířena pod GNU GPL licencí.
|
|
obsah |
následující
|