NetFlow срещу sFlow
В мрежите за комутация на пакети данните се разбиват на пакети (съставени от заглавка и полезен товар), преди да бъдат предадени по цифрова мрежа. Данните в заглавката се използват от мрежовия хардуер за насочване на пакета към неговата дестинация, където полезният товар се извлича и използва от операционна система, приложен софтуер или протоколи от по-висок слой. Когато поредица от пакети пътува от източник до дестинация, това се нарича пакетен поток или мрежов поток, или просто поток. Потокът е еднопосочен набор от пакети, споделящи общи атрибути като IP адрес на източник и местоназначение, портове на източник и местоназначение, размер в байтове и тип услуга, между другото.
Мрежовите администратори наблюдават потока на пакетите в своята мрежа, като използват инструменти за анализ на потока, за да извлекат онези атрибути, които им казват естеството на данните, техния източник и дестинация, наред с други. Това им дава необходимата видимост за идентифициране на необичайни модели на трафик и несъвместими приложения, устройства или потребители; както и да проследите първопричината за проблеми с производителността. Мониторингът на мрежата, базиран на потока, осигурява значителни предимства пред другите мониторинг на мрежата методи, защото улавя по-подробна полезна информация за състава на мрежовия поток. И тъй като възможността за наблюдение на потока вече е вградена функция в повечето модерни мрежови съоръжения, това го прави значително по-евтино и по-лесно за внедряване.
NetFlow и sFlow са двата ключови протокола, към които мрежовите администратори често се обръщат за мрежов мониторинг, базиран на потока. Повърхностно изглежда, че тези протоколи предоставят подобни възможности, но също така се различават по толкова много начини. В тази статия ще разгледаме тези два протокола за мрежово наблюдение, базирани на потока. Надяваме се, че това ще ви насочи в процеса на избор на правилния за вашата среда.
Какво е NetFlow?
NetFlow е патентован протокол на Cisco, въведен на устройства на Cisco, като рутери, за да може да наблюдава мрежовия трафик и да извлича данни за трафика, когато влиза или излиза от интерфейс. Netflow се опитва да идентифицира потоци от свързани мрежови пакети, вместо да третира всеки поотделно. Това помага за по-доброто разбиране на контекста на мрежовите дейности. NetFlow е подобно на наблюдение на модели на трафик и събиране на полезна статистика на натоварена магистрала. Например NetFlow може да ни каже колко превозни средства или какъв тип превозни средства са пътували от точка А до точка Б.
Чрез анализиране на данните, предоставени от NetFlow, мрежовият администратор може да разбере източника и местоназначението на мрежовия трафик, вида на услугата, злонамерения IP и модели на трафик, наред с други.
Как работи NetFlow

NetFlow работи, като следва прост процес на агрегиране, съхранение, сортиране и анализ на данни за потока.
Архитектурата на системата за мониторинг NetFlow се състои от следните ключови елементи:
- Износител на потокОбединява пакети в потоци и експортира записи на потоци към NetFlow колектори.
- Колектор на потокаКолекторите са базирани на софтуер или хардуер устройства, отговорни за получаване, съхраняване и предварителна обработка на данни за потока, доставени от експортера на потока. Той включва кеш или база данни, използвани за съхраняване на NetFlow данни, след като пакетите са били прегледани.
- Анализатор на потокаТова са инструменти, използвани за анализиране на получените данни за потока, които след това осигуряват по-задълбочена видимост на естеството на данните.
Когато устройства като рутери, които поддържат NetFlow, получават поток от пакети, тези пакети се проверяват за набор от атрибути. След това тези атрибути или статистически данни за мрежовия трафик се извличат на всички интерфейси, където NetFlow е активиран. Веднъж извлечени, рутерът ги експортира като NetFlow записи към NetFlow колектори за съхранение и предварителна обработка. Това може да е посветено Инструмент за анализатор на Netflow или пълен пакет за управление на мрежата, който приема NetFlow като допълваща функция.
Рутерът ще експортира записи на потока, когато определи, че потокът е завършен. NetFlow използва техника, известна като вземане на проби, за да намали обема на записите на потока, експортирани от мрежови устройства. Записите на потока не съдържат действителните данни, които съставляват потока. Те са просто метаданни – данни, които се използват за описание на данните, които се съдържат в потока.
Защо да използвате NetFlow?
NetFlow позволява на мрежовите администратори и персонала на NOC да визуализират моделите на трафик в цялата мрежа, да профилират използването на мрежата и ресурсите на приложението от страна на потребителя, да открият колко трафик е свързан със сърфиране в мрежата и други дейности по време на работното време, да научат кога и колко често потребителите имат достъп до приложение в мрежата и идентифициране на проблеми с производителността на мрежата. Интелигентността, събрана от статистиката на NetFlow, може също да се използва за предвиждане и планиране на растеж на мрежата.
По-важното е, че статистическите данни на NetFlow се използват и от екипите по сигурността и SOC, за да забележат промени в поведението на мрежата или да идентифицират необичайни модели на трафик, които могат да доведат до нарушение на сигурността . Данните на NetFlow могат да разкрият къде се консумират най-много мрежови ресурси. Някои злонамерени дейности, като изходящ спам и източване на данни, източват мрежови ресурси, така че ако има пикове на ресурси в необичайни области, това може да е указател към основен проблем със сигурността.
Ограничения на NetFlow
NetFlow предоставя много предимства на екипа на мрежовия администратор, особено в областта на видимостта, планирането и сигурността на мрежовия трафик. Въпреки това има няколко ограничения, които трябва да знаете:
- Въздействие върху производителносттаNetFlow има въздействие върху производителността на устройствата, където е внедрен. Целият трафик, който преминава през вашата мрежа, трябва да бъде обработен във вашия NetFlow кеш и след определен момент вашето устройство може да изпита проблеми с производителността.
- Ограничен износУстройствата Cisco NetFlow ви позволяват само да експортирате два потока към два NetFlow колектора. Пренасочването на потоци само към по-малко колектори, отколкото е необходимо за правилно управление и отстраняване на неизправности в мрежата, може да повлияе на видимостта. за правилно управление и отстраняване на неизправности в мрежата.
- ЛатентностЕдин от проблемите с NetFlow е забавянето във времето между трафика, преминаващ през вашата мрежа, и способността ви да го видите и осмислите. Това забавяне може да бъде до 5 минути. В контекста на компютрите и мрежите отрицателното въздействие на това забавяне може да бъде значително, особено в мрежи, където достъпността и производителността са от първостепенно значение.
Какво е sFlow?
sFlow от InMon Corporation е протокол за вземане на проби от пакети, използван за запис на статистически, инфраструктурни, маршрутизиращи и други метаданни за трафика, преминаващ през мрежово устройство с активиран sFlow. Буквата „s“ в sFlow означава „проба“ или „вземане на проби“ и е ключова за разбирането на sFlow и как се различава от NetFlow. Вземането на проби е неразделна част от sFlow. Подобно е на правене на произволни моментни снимки или вземане на проби от превозни средства, пътуващи от точка А до точка Б в даден период. SFlow е проектиран да извършва експортиране на поток чрез произволно вземане на проби от пакети и базирано на времето вземане на проби от мрежови интерфейси, а не чрез разглеждане на всеки пакет. Това му позволява да постигне мащабируемост, което го прави идеален за използване във високоскоростни мрежи поради способността му за мащабиране.
Като позволява на мрежовите администратори да получат дълбока видимост в използването на мрежата и активните маршрути на сложни и високоскоростни мрежи, sFlow предоставя данните, необходими за ефективен контрол и управление на използването на мрежата, като гарантира, че мрежовите услуги работят оптимално. sFlow се поддържа от множество производители на мрежови устройства и доставчици на софтуер за управление на мрежата като IBM, HP, Cisco, Dell, Alcatel-Lucent, Aruba и множество други.
Как работи sFlow

Системата sFlow се състои от множество устройства, извършващи два типа вземане на проби: произволно вземане на проби от пакети и базирано на времето вземане на проби от броячи. Извадката от пакети и информация за брояч, наричани съответно проби от потока и броячи, се изпращат като sFlow дейтаграми към централен сървър, работещ със софтуер, който анализира и отчита мрежовия трафик; колектора sFlow.
Архитектурата на системата за мониторинг на sFlow се състои от следните ключови компоненти:
- sFlow агентФункция, присвоена на мрежови устройства като комутатори и рутери, които събират информация от изходящите пакети и препращат пробите.
- sFlow CollectorФункция, назначена за преглед на информацията за всеки създаден агент sFlow.
Износителят на sFlow събира префикси от произволни проби от всички пакети, преминаващи през наблюдавания интерфейс. Въз основа на определена честота на вземане на проби, средно 1 от n брой пакети се взема на случаен принцип. След това износителят събира всеки избран пакет с броячи на устройства и го изпраща към колектора sFlow. Този тип вземане на проби може да не ви даде високо ниво на точност, но предоставя важна информация, от която се нуждаете, за да вземете информирани решения. Устройството не кешира никакви данни или пакети с извадки, като по този начин намалява използването на ресурси. Това гарантира, че производителността не е възпрепятствана и улеснява мащабирането до високоскоростни мрежи.
Защо да използвате sFlow?
Мрежата генерира трафик. Протоколът sFlow предлага на мрежовите администратори възможността да улавят и наблюдават този трафик за необичайни модели. sFlow прави тези необичайни модели на трафик видими с подробна информация в подкрепа на усилията за реагиране и коригиращи действия. sFlow може да се използва за откриване на претоварени връзки и идентифициране на източника на трафика и свързаното приложение, устройство или потребител.
Информацията за пренасочване на sFlow може да се използва за профилиране на най-активните маршрути и вида на потоците, пренасяни от тези маршрути. Разбирането на маршрутите и специфичните потоци, които те носят, прави по-лесно да разберете кога да оптимизирате маршрутизирането, за да подобрите свързаността и производителността. Според официалната документация на sFlow, „когато sFlow се използва за изграждане на подробна история на трафика, се установява базова линия на нормално поведение, от която могат да бъдат открити аномалии и идентифицирана подозрителна дейност“.
sFlow ограничения
По-долу са някои от известните ограничения на протокола sFlow.
- Съвместимост на устройствотоПреди да имате пълна видимост на това, което се случва във вашата мрежа, всяко мрежово устройство във вашата среда трябва да е съвместимо с sFlow. Ако броят на поддържаните sFlow устройства е ограничен, това допълнително ще отслаби качеството на вашите резултати. Преди да приемете sFlow като протокол за наблюдение на потока, уверете се, че устройствата във вашата мрежова инфраструктура могат да поддържат протокола sFlow.
- Липса на задълбочена видимостЗа разлика от NetFlow, sFlow не предоставя детайлен изглед на ниво пакет. Използването на извадка означава, че се улавят само произволно избрани пакети, а не всички предадени пакети. В зависимост от честотата на дискретизация, това оставя големи пропуски във вашата видимост и намалява шансовете ви за откриване на злонамерен трафик. Това прави sFlow неподходящ в мрежи, където се изискват задълбочен анализ и видимост.
- точностВ зависимост от дефинираната честота на вземане на проби могат да се получат ненадеждни и неточни данни за проби. За да получите точно отчитане, трябва да се уверите, че честотата на дискретизация е достатъчно висока.
Използвана техника | Обединява пакети в потоци и ги експортира като NetFlow записи към колектор. | Технология за вземане на проби—случайно вземане на проби от пакети и базирано на времето вземане на проби от броячи |
Департамент на видимост | Улавя и обработва повече данни, което води до по-голяма видимост. | Използването на извадка означава, че се улавят само произволно подбрани пакети, а не всички предадени пакети, което оставя големи пропуски във вашата видимост. |
Мащабируемост | NetFlow взема предвид всеки пакет, което го прави по-малко мащабируем и по-малко подходящ за високоскоростни мрежи | Не отчита всеки пакет, което го прави по-мащабируем и подходящ за високоскоростни мрежи |
точност | Улавянето и обработването на повече данни означава по-голяма точност и надеждност. | В зависимост от дефинираната честота на вземане на проби, може да пропуснете важна информация, което може да доведе до неточни данни за извадката. |
производителност | Възможно е да възникнат проблеми с производителността поради голямото търсене на мрежови и изчислителни ресурси | Минимално въздействие върху производителността |
Латентност | NetFlow може да има по-високи нива на латентност в сравнение с sFlow | sFlow има по-ниска латентност от NetFlow |
Поддръжка на доставчика | Най-вече Cisco | Множество доставчици |
Кеш памет | Поддържа се | Не се поддържа |
Таблица 1.0 | sFlow срещу NetFlow: таблица за сравнение на характеристиките
Избор между NetFlow и sFlow
Сега, след като разгледахме двата протокола за наблюдение на потока в детайли, горещият въпрос в устните на много мрежови администратори е: Кой протокол е по-добър? Кое да използвам? Е, наистина няма категоричен отговор. Това, което пасва идеално от гледна точка на характеристики и функционалност за една организация, може да не пасва на друга. Трябва да имате предвид някои фактори като видимост, производителност, точност и латентност, наред с други. Искате ли да имате задълбочена картина за цялата мрежа на това, което се случва във вашата мрежа, или просто сте добре с важните неща? Между точност и производителност – кое е по-важно за вашия бизнес? Удобни ли сте с няколко минути латентност? Вашата мрежа от устройства от нисък или висок клас ли е?
Обикновено sFlow изисква по-малко мрежови и изчислителни ресурси от NetFlow. Така че за малки и средни предприятия и по-малки мрежи, които използват устройства от нисък клас, sFlow може да е по-подходящ в такива среди, за да минимизира проблемите с производителността. Въпреки че NetFlow може да събира повече информация и да осигурява по-голяма видимост, той може да страда от по-високо ниво на латентност от sFlow. Всички огромни данни, уловени от NetFlow, може да не са необходими в по-малки мрежи и мрежовият анализатор може да не е в състояние да обработи всички данни.
Много мрежи са разнородни по състав – съдържат устройства от множество доставчици. Така че един ключов фактор, който трябва да имате предвид, е какъв протокол поддържа вашето мрежово оборудване? Ако някое от вашето оборудване поддържа едното, но не и другото, тогава има смисъл да изберете това, което вече се поддържа във вашата мрежа. Ако вашата мрежова инфраструктура поддържа както NetFlow, така и sFlow, можете да обмислите използването и на двата, за да получите най-доброто от двата свята.