Кіріспе

Байланыс протоколы

NetFlow – Cisco маршрутизаторларында 1996 жыл шамасында пайда болған, интерфейске кіретін немесе шығатын IP желілік трафикті жинау мүмкіндігін ұсынатын мүмкіндік. NetFlow арқылы алынған деректерді талдау арқылы желі әкімшісі трафиктің бастапқы және соңғы нүктелерін, қызмет класын және қосымша жүктемелердің себептерін анықтай алады. Типик ағын мониторингі (NetFlow қолданып) үш негізгі компоненттен тұрады:

Ағын экспорттаушы: пакеттерді ағындарға біріктіріп, ағын жазбаларын бір немесе бірнеше ағын жинақтағыштарға экспорттайды. Ағын жинақтағыш: ағын экспорттаушыдан алынған ағын деректерін қабылдау, сақтау және алдын ала өңдеуге жауапты. Талдау қолданбасы: кіргізуді анықтау немесе трафик профильдеу сияқты жағдайларда алынған ағын деректерін талдайды.

Хаттаманың сипаттамасы

NetFlow қолдауын көрсететін маршрутизаторлар мен коммутаторлар, NetFlow қосылған барлық интерфейстердегі IP трафигінің статистикасын жинап, кейіннен осы статистиканы кем дегенде бір NetFlow коллекторына – әдетте трафик талдауын жүзеге асыратын серверге NetFlow жазбалары түрінде экспорттай алады.

Жазбаларды экспорттау

Маршрутизатор ағынның аяқталғанын анықтағанда ағын жазбасын шығарады. Ол мұны ағынды ескіру арқылы іске асырады: маршрутизатор қолданыстағы ағын үшін жаңа трафик көргенде, ескіру санағышын қайта орнатады. Сондай-ақ, TCP ағынындағы TCP сеансының аяқталуы маршрутизатордың ағынды тоқтатуына себеп болады. Маршрутизаторларды ағын әлі де жалғасып жатқанда да, белгілі бір уақыт аралығында ағын жазбасын шығару үшін конфигурациялауға болады.

Пакеттерді тасымалдау протоколы

NetFlow жазбалары дәстүрлі түрде пайдаланушы Datagram протоколы (UDP) арқылы экспортталады және NetFlow коллекторы арқылы жиналады. NetFlow коллекторының IP-дарегі және UDP-кіреберіс порты жіберуші маршрутизаторда конфигурациялануы тиіс. Көбінесе UDP порт 2055 қолданылады, бірақ 9555 немесе 9995, 9025, 9026 және т.б. сияқты басқа да мәндерді пайдалануға болады. Тиімділік үшін маршрутизатор әдетте экспортталған ағым жазбаларын сақтамайды, сондықтан егер желілік тығырылғандықтан немесе пакет бұзылғандықтан NetFlow пакеті жойылса, онда барлық жазбалар қайта келтірілмейді. UDP протоколы маршрутизаторға жоғалту туралы хабарламайды, сондықтан ол пакеттерді қайта жіберу мүмкін емес. Бұл, әсіресе NetFlow v8 немесе v9 нұсқаларында маңызды мәселе болуы мүмкін, себебі олар көптеген пакеттерді немесе ағындарды бір жазбаға біріктіре алады. Бір UDP пакетінің жоғалтылуы кейбір ағындардың статистикасына елеулі әсер етуі мүмкін. Сондықтан, NetFlow-тың кейбір заманауи жүзеге асырылымдары пакеттерді экспорттау үшін Stream Control Transmission Protocol (SCTP) протоколын қолданады, бұл пакеттердің жоғалтылуына қарсы қорғауды қамтамасыз етеді және кез келген байланысты жазба экспортталмас бұрын NetFlow v9 үлгілерінің алынғанын кепілдейді. TCP-ның NetFlow үшін қолайлы еместігін ескеру қажет, өйткені пакеттердің қатаң реті артық буферлеуге және кешігуге әкелуі мүмкін. SCTP-ның мәселесі – ол әрбір NetFlow коллекторы мен NetFlow экспорттайтын әрбір маршрутизатор арасындағы өзара әрекеттесуді талап етеді. Егер маршрутизатор көптеген NetFlow коллекторларымен жұмыс істеуге тиіс болса, ал NetFlow коллекторы көптеген маршрутизаторлармен жұмыс істеуге тиіс болса, әсіресе олардың кейбіреулері ақаулық немесе техникалық қызмет көрсету салдарынан қолжетімсіз болған жағдайда, өнімділік шектеулері болуы мүмкін. SCTP тиімді болмауы мүмкін, егер NetFlow бірнеше тәуелсіз коллекторларға экспортталуы керек болса, олардың кейбіреулері кез келген уақытта тоқтатылатын тест серверлері болуы мүмкін. UDP желілік тармақтарды немесе L2 немесе L3 айналдыруды пайдалана отырып, NetFlow пакеттерін оңай көшіруге мүмкіндік береді. Қажет болған жағдайда, қарапайым күйсіз жабдық NetFlow UDP пакеттерінің түменгі мекенжайын сүзуге немесе өзгертуге болады. NetFlow экспорты көбінесе желінің негізгі байланыстарын пайдаланатындықтан, пакеттердің жоғалтылуы көбінесе елеусіз болады. Егер ол орын алса, көбінесе желі мен NetFlow коллекторлары арасындағы байланыста болады.

Интерфейстер

NetFlow әдетте NetFlow-қа қатысатын маршрутизатор компоненттерінің жүктемесін шектеу немесе экспортталатын NetFlow жазбаларының санын азайту мақсатымен интерфейс бойынша қосылады. NetFlow көбінесе кіретін IP интерфейсі арқылы алынған барлық пакеттерді тіркеп алады, бірақ кейбір NetFlow жүзеге асырулары пакетті NetFlow бақылай ала ма, жоқ па, дегенді анықтау үшін IP сүзгілерін пайдаланады. Кейбір NetFlow жүзеге асырулары шығатын IP интерфейсіндегі пакеттерді бақылауға да рұқсат береді, бірақ мұны сақтандырып қолдану керек: NetFlow қосылған кез келген кіретін интерфейстен NetFlow қосылған кез келген интерфейске барлық ағындар екі рет есептелуі мүмкін.

Нұсқалар

VersionCommentv1 Бірінші іске асырылған нұсқа, қазір ескірген және тек IPv4-ке шектелген (IP маскасы мен AS нөмірлері жоқ). v2Cisco ішкі нұсқасы, ешқашан жарияланбаған. v3Cisco ішкі нұсқасы, ешқашан жарияланбаған. v4Cisco ішкі нұсқасы, ешқашан жарияланбаған. v5 Ең көп қолданылатын нұсқа, әр түрлі өндірушілердің көптеген маршрутизаторларында (2009 жылғы жағдай бойынша) қолжетімді, бірақ тек IPv4 ағындарымен шектелген. v6 Cisco тарапынан қолдау көрсетілмейді. Капсулация туралы ақпарат (?). v7 V5 нұсқасына ұқсас, бастапқы маршрутизатор туралы мәліметтерімен. Негізінен (тек?) Cisco Catalyst коммутаторларында қолданылған. v8 Бірнеше агрегациялық форма, бірақ тек V5 нұсқасындағы деректерде бар ақпарат үшін. v9Template Based, кейбір жаңа маршрутизаторларда (2009 жылдан бастап) қолжетімді. Көбінесе IPv6, MPLS немесе тіпті BGP nexthop-пен қарапайым IPv4 сияқты ағындарды есептеу үшін қолданылады. v10 IPFIX-ті анықтау үшін қолданылады. IPFIX NetFlow негізінде құрылғанмен, v10 NetFlow-қа қатысы жоқ.

NetFlow және IPFIX

NetFlow бастапқыда Cisco компаниясымен іске асырылды және стандарттау жолында болмаған "ақпараттық" құжатта сипатталды: RFC 3954 – Cisco Systems NetFlow Services Export Version 9. NetFlow протоколының өзі Internet Protocol Flow Information eXport (IPFIX) протоколымен алмастырылды. NetFlow Version 9 іске асырылуының негізінде дамытылған IPFIX, IETF стандарттау жолында RFC 5101 (RFC 7011-мен ескірген), RFC 5102 (RFC 7012-мен ескірген) және т.б. сияқты 2008 жылы жарияланған құжаттарды қамтиды.

Қолдау

Өндіруші және түрі Модельдер NetFlow нұсқасы Іске асыру туралы түсініктемелер Cisco IOS XR маршрутизаторлары CRS, ASR9000 ескі 12000 v5, v8, v9 Желілік картадағы CPU-да жұмыс істейтін бағдарламалық қамтамасыз ету IPv6 және MPLS толық қолдауы бар Cisco IOS маршрутизаторлары 10000, 7200, ескі 7500 v5, v8, v9 Маршрут процессорда жұмыс істейтін бағдарламалық қамтамасыз ету IPv6 немесе MPLS қолдауы үшін соңғы модель және IOS талап етіледі Cisco Catalyst коммутаторлары 7600, 6500, 4500 v5, v8, v9 ACL үшін арналған арнайы аппараттық TCAM. Жоғары деңгейдегі модельдерде (RSP720 және Sup720) IPv6 қолдауы, бірақ PCF картасына ең көп дегенде 128K немесе 256K ағын. Cisco Nexus коммутаторлары 5600, 7000, 7700 v5, v9 Арнайы аппараттық TCAM, ACL үшін де қолданылады. 512K ағынға дейін. IPv4/IPv6/L2 қолдауы. MPLS қолдау көрсетілмейді Juniper мұражай маршрутизаторлары M сериясы, T сериясы, MX сериясы DPC бар v5, v8 Маршруттау машинасының бағдарламалық қамтамасыз етілімінде жұмыс істейді, jflow деп аталады IPv6 және MPLS қолдау көрсетілмейді Juniper мұражай маршрутизаторлары M сериясы, T сериясы, MX сериясы DPC бар v5, v8, v9 Сервистік PIC-те жұмыс істейтін бағдарламалық қамтамасыз ету, аппараттық jflow немесе үлгілік деп аталады MS DPC, MultiService PIC, AS PIC2-де IPv6 немесе MPLS қолдауы бар Juniper маршрутизаторлары MX сериясы MPC 3D, T4000 үшін FPC5 v5, IPFIX Аппараттық (trio чипсеті), inline jflow деп аталады IPv6 үшін JUNOS 11.4R2 (артқа қайтару мақсаты) қажет, MPLS қолдауы белгісіз, MPC3E 12.3-ке дейін қосылмайды, дұрыс емес басталу уақыты өрісі дұрыс емес деректер өтімділігіне әкеледі Nokia маршрутизаторлары 7750SR v5, v8, v9, v10 IPFIX Орталық процессор модулінде жұмыс істейтін бағдарламалық қамтамасыз ету IOM3 желілік карталары немесе жақсырақ болса IPv6 немесе MPLS қолдауы Huawei маршрутизаторлары NE5000E NE40E/X NE80E v5, v9 Сервистік карталарда жұмыс істейтін бағдарламалық қамтамасыз ету IPv6 немесе MPLS қолдауы белгісіз Enterasys коммутаторлары S сериясы және N сериясы v5, v9 Арнайы аппараттық IPv6 қолдауы белгісіз Flowmon зондтары Flowmon Probe 1000, 2000, 4000, 6000, 10000, 20000, 40000, 80000, 100000 v5, v9, IPFIX Бағдарламалық немесе аппараттық үдетілген IPv6 және MPLS толық қолдауы, сымдық жылдамдық Nortel коммутаторлары Ethernet Routing Switch 5500 сериясы (ERS5510, 5520 және 5530) және 8600 (шассиге негіделген) v5, v9, IPFIX Желілік картадағы CPU-да жұмыс істейтін бағдарламалық қамтамасыз ету IPv6 толық қолдауы PC және серверлер Linux FreeBSD NetBSD OpenBSD v5, v9, IPFIX fprobe, ipt netflow, pflow, flowd, Netgraph ng netflow немесе softflowd сияқты бағдарламалық қамтамасыз ету Қолданылатын бағдарламалық қамтамасыз етуге байланысты IPv6 қолдауы VMware серверлері vSphere 5. x v5, IPFIX (>5.1) Бағдарламалық қамтамасыз ету IPv6 қолдауы белгісіз Mikrotik RouterOS RouterOS 3. x, 4. x, 5. x, 6. x v1, v5, v9, IPFIX (>6.36RC3) Бағдарламалық қамтамасыз ету және Routerboard аппараттық құралдары v9 қолданылғанда IPv6 қолдауы бар. Қазіргі уақытта RouterOS BGP AS нөмірлерін қамтымайды.

Cisco-ның NetFlow қауіпсіздік оқиғаларын тіркеу

Cisco ASA 5580 өнімдерінің қолданысқа енгізілуімен бірге ұсынылған NetFlow Security Event Logging, жоғары өнімділік орталарында қауіпсіздік телеметриясын тиімді жеткізу үшін NetFlow v9 өрістері мен үлгілерін пайдаланады. NetFlow Security Event Logging жүйелік журналдаудан артық масштабталу мүмкіндігіне ие, сонымен қатар журналға түскен оқиғалардың бірдей деңгейдегі толықтығы мен ұсақтығын қамтамасыз етеді.

Жеке детекторларға негізделген бақылау

NetFlow-ты жеке NetFlow зондтарын пайдалану арқылы жинау, маршрутизаторлар мен коммутаторлардан ағын жинаудың баламасы болып табылады. Бұл тәсіл маршрутизаторға негізделген NetFlow мониторингінің кейбір шектеулерін жеңуге мүмкіндік береді. Зондтар бақыланатын желіге TAP немесе SPAN порты арқылы пассивті құрылғы ретінде түйіндемелі түрде қосылады. Тарихи тұрғыдан алғанда, NetFlow мониторингін арнайы зондта маршрутизаторға қарағанда іске асыру оңай. Дегенмен, бұл тәсілдің де кейбір кемшіліктері бар: бақылау қажет әрбір байланыста зондтарды орнату қажет, бұл қосымша аппараттық құралдарға, орнатуға және техникалық қызмет көрсетуге байланысты қосымша шығыстарды тудырады. Зондтар маршрутизатордың хабарламасындай жеке кіріс және шығыс интерфейсі туралы ақпаратты хабарламайды. Зондтар маршрутизацияға қатысты NetFlow өрістерін, мысалы AS нөмірлерін немесе IP маскаларын сенімді түрде хабарлауда қиындықтарға тап болуы мүмкін, себебі олар маршрутизатор сияқты нақты бірдей маршрутизациялық ақпаратты қолдануы күмәнді. Жоғарыда аталған кемшіліктерді шешудің ең оңай жолы – маршрутизатордың алдына пакеттерді түсіретін құрылғыны орнату және маршрутизатордан барлық NetFlow шығысын түсіру. Бұл әдіс үлкен көлемдегі NetFlow деректерін сақтауға мүмкіндік береді (әдетте көп жылдық деректер) және желіні қайта конфигурациялауды қажет етпейді. NetFlow-ты арнайы зондтардан жинау маңызды байланыстарды бақылауға жақсы сәйкес келеді, ал маршрутизаторлардағы NetFlow желідегі трафик туралы кең көрініс береді, оны сыйымдылықты жоспарлау, есеп жүргізу, өнімділікті бақылау және қауіпсіздік үшін пайдалануға болады.

Тарих

NetFlow бастапқыда Cisco маршрутизаторлары үшін Cisco пакеттік коммутациялау технологиясы болды, ол 1996 жылы IOS 11.x нұсқасында іске асырылды. Ол бастапқыда Cisco 7000, 7200 және 7500 маршрутизаторларында бағдарламалық қамтамасыз ету ретінде жүзеге асырылды, онда ол Cisco Fast Switching-ке қарағанда жақсартылған нұсқа болып саналды. Netflow-ты Cisco компаниясынан Даррен Керр мен Барри Бруин ойлап тапты (АҚШ патенті № 6,243,667). Бұл идеяның мәні – ағынның алғашқы пакеті NetFlow коммутациялық жазбасын жасау болды. Бұл жазба ағынның мерзімі біткенге дейін сол ағынның барлық келесі пакеттері үшін қолданылатын еді. Тек ағынның алғашқы пакетіне ғана ең нақты сәйкес келетін маршрутты табу үшін маршрут кестесін тексеру қажет болатын. Бұл бағдарламалық қамтамасыз етуде, әсіресе Forwarding ақпараттық базасы жоқ ескі нұсқаларда, қымбат операция болып табылады. NetFlow коммутациялық жазбасы іс жүзінде маршрут кэшінің бір түрі болды, ал IOS-тің ескі нұсқалары NetFlow кэшін ip route cache деп атауды жалғастырды. Бұл технология жергілікті желілер үшін тиімді болды. Бұл әсіресе трафиктің бір бөлігі ACL арқылы сүзгіленуі керек болғанда маңызды еді, себебі ACL тек ағынның алғашқы пакетін бағалауы керек болатын. NetFlow коммутациясы үлкен маршрутизаторлар үшін, әсіресе Интернет магистральдық маршрутизаторлары үшін қолайсыз болып шықты, онда бір мезгілдегі ағындардың саны жергілікті желілердегіден әлдеқайда маңыздырақ болды, және трафиктің кейбір түрлері көптеген қысқа мерзімді ағындарды тудыратын, мысалы, Домендік атаулар жүйесінің сұраныстары (қорғау мақсатында бастапқы порты кездейсоқ болатын). Коммутациялық технология ретінде NetFlow 1995 жылы Cisco Express Forwarding технологиясымен алмастырылды. Бұл алғаш рет Cisco 12000 маршрутизаторларында пайда болды, кейіннен Cisco 7200 және Cisco 7500 маршрутизаторлары үшін NetFlow коммутациясын озық IOS нұсқасымен алмастырды. 2012 жылғы мәліметтер бойынша, NetFlow коммутациясына ұқсас технологиялар әлі де көптеген өрт қабырғаларында және бағдарламалық қамтамасыз етудегі IP маршрутизаторларында қолданылуда. Мысалы, Linux жүйесінде қолданылатын Netfilter фреймворкінің conntrack мүмкіндігі.