Принцип работы и применение протокола Netflow. Зачем же нужен NetFlow? • Сетевой протокол NetFlow был разработан в конце прошлого века компанией Cisco. Изначально он использовался как программа-распределитель пакетов данных для оптимизации работы маршрутизаторов, однако с течением времени она была заменена на более эффективную программу. Тем не менее, такой функционал, как сбор полезной статистики по использованию сетевого трафика и поныне оставляет Netflow актуальным. Правда, специализация этого протокола уже не соответствует исходной. Тем не менее, Netflow обладает функционалом, который невозможно реализовать, применяя альтернативные сетевые технологии. • Является фактическим промышленным стандартом и поддерживается не только оборудованием Cisco, но и многими другими устройствами (в частности, Juniper, ZTE и Enterasys). Также существуют свободные реализации для UNIX-подобных систем. • Существует несколько версий протокола, наиболее распространёнными из которых являются версии 5 и 9. На основе версии 9 также был разработан открытый стандарт под названием IPFIX (Internet Protocol Flow Information eXport, экспорт информации о потоках IP) Функции NetFlow • Система постоянного наблюдения за работой сетевых приложений и действиями пользователей; • Сбор и учет информации об использовании сетевого трафика; • Анализ и планирование развития сети; • Распределение и управление сетевым трафиком; • Изучение вопросов сетевой безопасности; • Хранение собранных посредством телеметрии данных и их итоговый анализ; IPFIX • Internet Protocol Flow Information Export (IPFIX) относится к протоколу IETF, который схож с Netflow в том смысле, что он позволяет сетевым специалистам собирать и анализировать информацию о потоках от сетевых устройств. • IPFIX не пользуется популярностью в сетевом сообществе и был создан исключительно с целью определения способов форматирования и передачи IPинформации от экспортера к сборщику. Он основан на Netflow версии 9 и поддерживается многими производителями, включая Cisco Systems, Solera, VMware, Citrix и многих других. Архитектура netflow Архитектура системы строится на сенсоре, коллекторе и анализаторе: • — Сенсор собирает статистику по проходящему через него трафику. Сенсоры имеет смысл ставить в «узловых точках» сети, например, на граничных маршрутизаторах сегментов сети. • — Коллектор осуществляет сбор информации от сенсоров. Полученные данные он сбрасывает в файл для дальнейшей обработки. Различные коллекторы сохраняют данные в различных форматах. • — Анализатор, или система обработки, считывает эти файлы и генерирует отчеты в форме, более удобной для человека. Эта система должна быть совместима с форматом данных, предоставляемых коллектором . В современных системах коллектор и анализатор часто объединены в одну систему. Архитектура netflow • Обычно коллектор и анализатор являются частями одного программного комплекса, работающего на сервере. Разновидностей ПО коллектор/анализатор множество, платные и бесплатные, под Windows и Unix-системы. • Нужно сразу уяснить — коллектор и стоящий за ним анализатор являются «пассивными» элементами системы. Сенсор шлет на коллектор отчеты о трафике, коллектор принимает, анализатор анализирует, и заполняет свою базу данных на сервере. По сути, при поднятом сервере, нам не нужно вручную подключать устройства, подпадающие под мониторинг, на сервере. Пока сенсор шлет отчеты, коллектор их принимает, анализатор регистрирует. Если сенсор выключен, он «исчезает» из текущей «он-лайн» статистики. Описание протокола NetFlow использует UDP или SCTP для передачи данных о трафике коллектору. Как правило, коллектор слушает порт 2055, 9555 или 9995. Сенсор выделяет из проходящего трафика потоки, характеризуемые следующими параметрами: • Адрес источника; • Адрес назначения; • Порт источника для UDP и TCP; • Порт назначения для UDP и TCP; • Тип и код сообщения для ICMP; • Номер протокола IP; • Сетевой интерфейс (параметр ifindex SNMP); • IP Type of Service. Потоком считается набор пакетов, проходящих в одном направлении. Когда сенсор определяет, что поток закончился (по изменению параметров пакетов, либо по сбросу TCP-сессии), он отправляет информацию в коллектор. В зависимости от настроек он также может периодически отправлять в коллектор информацию о все еще идущих потоках. Описание протокола NetFlow V9 • Версия 9 также поддерживает дополнительные поля, такие как заголовки IPv6, метки потоков MPLS и адрес шлюза BGP. Некоторые сенсоры могут также поддерживать номер автономной системы. • Если используется UDP, то потерянная из-за проблем с сетью запись не будет получена коллектором. Коллектор может определить потери пакетов по значениям номера записи, которые по стандарту должны быть возрастающими. • Если сенсором выступает сетевое устройство (маршрутизатор или коммутатор), то для экономии ресурсов NetFlow включают только для тех интерфейсов, на которых хотят собирать статистику. • Для экономии ресурсов процессора также применяется «sampled NetFlow». В этом случае сенсор анализирует не все, а каждый n-ый пакет, где n может быть заданным административно или выбираемым случайным образом. При использовании sampled NetFlow получаемые значения являются не точными, а оценочными. Чем отличаются версии NetFlow: v5, v9, Flexible NetFlow и IPFIX • NetFlow v5: это наиболее популярный из всех рассматриваемых здесь форматов. Он идеален, если вы просто необходимо знать IP-адреса и номера портов источника и приемника, а также количество байтов передаваемых данных. Что отличает NetFlow v5 от его предшественников, так это добавление BGP-информации автономных систем и номеров последовательностей потоков. Единственное ограничение v5 заключается в том, что он позволяет экспортировать только входные (ingress) потоки на интерфейсе. Большинство устройств Cisco, которые работают под управлением IOS 11.1 и выше, поддерживают v5. • NetFlow v9: Это следующая версия после v5. Кроме традиционных данных v5, добавляется расширенная информация для поддержки различных технологий, такие как Multi-cast, IPSec и Multi Protocol Label Switching (MPLS).Эти расширения появились в основном благодаря поддержке экспорта выходных (egress) потоков. Эта версия поддерживается IOS 12.4 и выше. • Flexible NetFlow: Основная разница между NetFlow v9 и Flexible NetFlow - это возможность выборочного экспорта данных. Вы можете выбрать, какую информацию о потоках вы хотите экспортировать. Именно поэтому появился термин "flexible". Благодаря своей поддержки DPI (Deep Packet Inspection) он поддерживает мониторинг видео-трафика, VoIP и NBAR (Network Based Application Recognition). Кроме того, он работает с неограниченным количеством коллекторов, поддерживает IPv6 и многое другое. Большая часть последних версий Cisco IOS поддерживает Flexible NetFlow. • IPFIX: Этот формат является продолжением NetFlow v9 и предлагается Cisco в качестве стандарта экспорта информации об IP-потоках. Некоторые вендоры уже приняли IPFIX Настройка • Разберем конфигурацию сенсора при настройке на Cisco: Router_NF# conf t Router_NF(config)# ip flow-export destination 192.168.0.1 9996 Router_NF(config)# ip flow-export destination 10.10.0.1 9996 Router_NF(config)# ip flow-export version 9 • В конфигурационном режиме указываем адреса коллектора и порты, куда отправлять статистику, указываем версию протокола NetFlow. В сложной сети можно иметь два интерфейса коллектора, если есть какието ограничения маршрутизации между сегментами Настройка Router_NF(config)# ip flow-cache timeout active 1 • Указываем, как часто обновлять кэш NetFlow данными о трафике еще активной сессии Router_NF(config)# ip flow-cache timeout inactive 15 • Указываем время, в течение которого если в существующем потоке не передаются данные, то он закрывается, и информация о нем записывается в кэш, а затем передается на коллектор Настройка Router_NF(config)# ip flow-export source FastEthernet 0/0 Router_NF(config)# ip flow-export source vlan4 Router_NF(config)# ip flow-export source Port-channel1.2 • Источники отчета о трафике, статистика будет собираться с них. На стороне анализатора будут отдельно промониторены и интерфейс, и VLAN, и Portchannel ip access-list standard iacl-snmp remark ACL for SNMP access to device permit 192.168.0.1 permit 10.10.0.1 deny any log Добавим ACL Настройка snmp-server group snmp v1 access iacl-snmp snmp-server group snmp v2c access iacl-snmp snmp-server community ******** **** iacl-snmp snmp-server ifindex persist snmp-server trap-source Loopback0 snmp-server enable traps tty • Настраиваем snmp для правильного распознавания имен интерфейсов Настройка • Наконец дошло до интерфейса: Router_NF(config)# interface FastEthernet 0/0 Router_NF(config-if)# ip flow egress Router_NF(config-if)# ip flow ingress • Указываем, какой трафик будет учитываться, входящий в интерфейс или исходящий из него? Если исходящий, то ip flow egress, если входящий, то ip flow ingress • Или Router_NF(config-if)# ip route-cache flow • «ip route-cache flow» может использоваться только для основного интерфейса, а «ip flow ingress» — это расширение для использования для сабинтерфесов. Функционал NetFlow Subinterface Support позволяет включать NetFlow для каждого сабинтерфейса. В сценарии, когда ваша сеть содержит множество сабинтерфейсов, а вам необходимо собирать записи только с некоторых, вы можете тонко настроить сбор информации только с определенных сабинтерфейсов Примеры решений • Также приведем несколько самых популярных сетевых анализаторов, работающих под протоколом NetFlow: • Solarwinds NetFlow Traffic Analyzer – мощный инструмент для анализа динамики трафика в сети. Программа осуществляет сбор, накопление и анализ данных, выводя их в удобном для пользователя формате. При этом можно проанализировать поведение трафика за определенные временные промежутки. Для ознакомления на сайте производителя доступна бесплатная 30-дневная версия • Flowmon – программа, предоставляющая комплекс инструментов для изучения пропускной способности сети, нагрузки на сеть в определенные периоды времени, а также обеспечения безопасности сети от DDOS-атак Примеры решений • PRTG Network Monitor - универсальное решение для сбора, хранения и обработки данных о поведении сети. В отличие от других подобных программ, данный инструмент работает на основе сенсоров – логических единиц, отвечающих за сбор данных по определенным аспектам изучаемого устройства. • ManageEngine NetFlow Analyzer – схожая с остальными по функционалу программа. Её выделяют из ряда других такие возможности, как гибкая настройка аналитики, а так же возможность мониторить поведение сети из любого места, благодаря приложению для телефона.