A NetFlow a Cisco Systems által kifejlesztett hálózati forgalom figyelembevételére tervezett hálózati protokoll . Ez a de facto ipari szabvány, és nem csak a Cisco berendezések támogatják, hanem sok más eszköz is (különösen a Juniper , a ZTE és az Enterasys ). A UNIX - szerű rendszerekhez ingyenes implementációk is léteznek .
A protokollnak több verziója is létezik, amelyek közül 2011-re a legelterjedtebbek az 5-ös és a 9-es verziók. A 9-es verzió alapján egy nyílt szabványt is kidolgoztak IPFIX (Internet Protocol Flow Information eXport, IP flow information export ) néven. [1] [2]
A NetFlow protokoll használatával a forgalommal kapcsolatos információk gyűjtéséhez a következő összetevőkre van szükség:
A NetFlow UDP vagy SCTP segítségével küldi el a forgalmi adatokat a gyűjtőnek. A gyűjtő általában a 2055-ös, 9555-ös vagy 9995-ös porton figyel.
Az érzékelő streameket választ ki az áthaladó forgalomból , amelyet a következő paraméterek jellemeznek:
Az áramlás olyan csomagok gyűjteménye, amelyek ugyanabban az irányban haladnak. Amikor az érzékelő megállapítja, hogy az adatfolyam véget ért (a csomagparaméterek megváltoztatásával vagy a TCP munkamenet visszaállításával), információkat küld a gyűjtőnek. A beállításoktól függően időszakonként információkat küldhet a még futó áramlásokról is a gyűjtőnek.
Az összegyűjtött információkat a rendszer rekordként küldi el, amely a következő paramétereket tartalmazza (5-ös verzió esetén):
A 9-es verzió további mezőket is támogat, például IPv6 -fejléceket, MPLS -folyamatcímkéket és BGP - átjárócímeket . Egyes érzékelők autonóm rendszerszámot is támogathatnak .
Ha UDP-t használunk, akkor a hálózati problémák miatt elveszett rekordot nem kapja meg a gyűjtő. A gyűjtő a bemeneti szám értékéből tudja meghatározni a csomagveszteséget, amelynek a szabvány szerint növekednie kell.
Ha egy hálózati eszköz (router vagy switch) szenzorként működik, akkor az erőforrások megtakarítása érdekében a NetFlow csak azokon az interfészeken engedélyezett, amelyekről statisztikát szeretnének gyűjteni.
A "mintavételezett NetFlow"-t a CPU-erőforrások megtakarítására is használják. Ebben az esetben a szenzor nem mindent, hanem minden n-edik csomagot elemzi, ahol n beállítható adminisztratív úton vagy véletlenszerűen kiválasztható. A mintavételezett NetFlow használatakor a kapott értékek nem pontosak, hanem becslések.