NetFlow je síťový protokol navržený k zohlednění síťového provozu vyvinutý společností Cisco Systems . Jedná se de facto o průmyslový standard a je podporován nejen zařízeními Cisco, ale také mnoha dalšími zařízeními (zejména Juniper , ZTE a Enterasys ). Existují také bezplatné implementace pro systémy podobné UNIXu .
Existuje několik verzí protokolu, z nichž nejběžnější pro rok 2011 jsou verze 5 a 9. Na základě verze 9 byl vyvinut také otevřený standard s názvem IPFIX (Internet Protocol Flow Information eXport, IP flow information export ). [1] [2]
Ke shromažďování informací o provozu pomocí protokolu NetFlow jsou vyžadovány následující komponenty:
NetFlow používá UDP nebo SCTP k odesílání provozních dat do kolektoru. Kolektor obvykle naslouchá na portu 2055, 9555 nebo 9995.
Senzor vybírá proudy z projíždějícího provozu charakterizovaného následujícími parametry:
Tok je sbírka paketů, které cestují stejným směrem. Když senzor určí, že stream skončil (změnou parametrů paketu nebo resetováním TCP relace), odešle informace do kolektoru. V závislosti na nastavení může také periodicky odesílat informace o stále běžících tocích do kolektoru.
Shromážděné informace jsou odesílány jako záznamy obsahující následující parametry (pro verzi 5):
Verze 9 také podporuje další pole, jako jsou záhlaví IPv6 , popisky toku MPLS a adresa brány BGP . Některé senzory mohou také podporovat číslo autonomního systému .
Pokud je použit UDP, pak sběratel neobdrží záznam ztracený kvůli problémům se sítí. Kolektor může určit ztrátu paketů z hodnot vstupního čísla, které se podle standardu musí zvyšovat.
Pokud síťové zařízení (router nebo switch) funguje jako senzor, pak je NetFlow z důvodu úspory zdrojů povolen pouze pro ta rozhraní, na kterých chtějí shromažďovat statistiky.
"vzorkovaný NetFlow" se také používá k šetření zdrojů CPU. V tomto případě senzor neanalyzuje vše, ale každý n-tý paket, kde n lze nastavit administrativně nebo vybrat náhodně. Při použití vzorkovaného NetFlow nejsou získané hodnoty přesné, ale odhady.