Протокол является промышленным стандартом, и его поддерживают не только устройства Cisco, но и многие другие. Это позволяет использовать его для сбора статистики с DPI-платформы.
Кратко о NetFlow
Netflow позволяет анализировать сетевой трафик на уровне сеансов, делая запись о каждой транзакции TCP/IP, что предоставляет довольно подробную статистику. На текущий момент существуют две версии Netflow – 5 и 9. На основе версии 9 был разработан открытый стандарт под названием IPFIX. Также в этой версии поддерживаются дополнительные поля, такие как заголовки IPv6, метки потоков MPLS и адрес шлюза BGP.
Для использования протокола NetFlow необходимы следующие компоненты:
- Сенсор – собирает статистику по проходящему через него трафику. Обычно это L3-коммутатор или маршрутизатор, хотя можно использовать и отдельно стоящие сенсоры, получающие данные путем зеркалирования порта коммутатора.
- Коллектор – собирает получаемые от сенсора данные и помещает их в хранилище.
- Анализатор – выполняет анализ собранных коллектором данных и формирует пригодные для чтения человеком отчеты (часто в виде графиков).
Сенсор выделяет из трафика наборы пакетов, проходящие в одном направлении, – потоки. В коллектор отправляются завершенные или текущие потоки с настроенной периодичностью.
Собранная информация имеет вид записей, содержащих следующие параметры (для версии 5):
- номер версии протокола
- номер записи
- входящий и исходящий сетевой интерфейс
- время начала и конца потока
- количество байт и пакетов в потоке
- адрес источника и назначения
- порт источника и назначения
- номер протокола IP
- значение Type of Service
- для TCP-соединений – все наблюдаемые в течение соединения флаги
- адрес шлюза
- маски подсети источника и назначения.
Из коллектора данные поступают на анализатор (систему обработки и визуализации), который должен понимать формат входящего файла от коллектора и показывать содержащуюся в нем информацию в виде отчетов и графиков.
NetFlow для DPI
С систем DPI достаточно экспортировать статистику по протоколам и направлениям в формате NetFlow 5, так как он наиболее распространен и поддерживается большинством бесплатных и коммерческих средств для сбора и анализа статистики.
Передача DPI-информации в формате NetFlow 5 имеет ряд особенностей:
- Для передачи информации об используемом протоколе используется поле dstport (номер порта). Когда это возможно, используется номер порта, закрепленный за протоколом ассоциацией IANA, но для протоколов со свободным номером (торренты, скайп и т. п.) выделен специальный номер в верхнем диапазоне (49152–65534), зарезервированном IANA для приватных портов. Если протокол определить не удалось, ему назначается номер порта 65535.
- Статистика по протоколам передается в агрегированном виде, то есть DPI накапливает статистику по протоколу, объединяя информацию по разным сессиям, а потом с заданной периодичностью передает ее на коллектор. Это позволяет существенно снизить объем передаваемой информации.
- Информация о направлениях передается в поле dst_as (номер автономной системы).
- Статистика по направлениям передается в агрегированном виде, то есть DPI накапливает статистику по направлению (номеру AS), объединяя информацию по разным сессиям, а потом с заданной периодичностью передает ее на коллектор. Это позволяет существенно снизить объем передаваемой информации.
Одним из наиболее популярных способов получать и анализировать информацию с платформы DPI является связка:
- демон-коллектор, который слушает порт, собирает данные и пишет в файлы
- дамп, который читает и выводит собранные nfcapd-данные
- визуализатор, который является графическим интерфейсом для данных nfdump.
Настройка DPI сводится к указанию следующих параметров:
- Включение системы сбора и экспорта статистики (по протоколам, по направлениям, для биллинга, полная статистика по сессиям).
- Сетевой интерфейс, через который будет отправляться netflow со статистикой.
- Периодичность экспорта данных.
- IP-адрес и номер порта коллектора (или нескольких коллекторов для разных типов данных).
Чтобы иметь возможность построить отчеты по трафику посещения сайтов, по абонентам системы с динамической выдачей адресов, связать данные по сессиям и объемам с метаданными, переданными в рамках сессии, необходимо использовать протокол IPFIX (дальнейшее развитие NetFlow-протокола версии 9). Для сбора информации в формате IPFIX подойдет любой универсальный IPFIX-коллектор, который понимает шаблоны, или утилита IPFIX Receiver.
Для установки NfSen потребуется компьютер с установленной CentOS 6 или выше. Требуемое место на диске – от 250 МБ до 1,5 ГБ на каждый день хранения в зависимости от настроек. Объем оперативной памяти от 1G. Однако NfSen не рекомендуется ставить на сервер с DPI-платформой: подготовка отчетов требовательна к ресурсам CPU, что может негативно отразиться на производительности DPI-платформы. Установка NfSen приводит к установке веб-сервера Apache, а ее настройка сводится к включению автозапуска и открытию портов на firewall.
Помимо графиков с помощью NfSen можно строить отчеты за произвольные периоды, по протоколам и направлениям.
Анализ информации о трафике – это первый шаг на пути оптимизации и улучшения качества услуг, предоставляемых операторами связи. Отчеты и графики показывают реальное потребление полосы пропускания, самые загруженные направления и самых «жадных» потребителей. Данные сведения позволяют производить грамотные настройки приоритетов, заранее выявить приложение или пользователя с наибольшей нагрузкой на полосу пропускания, увидеть тренды и защитить сеть от перегрузки, ограничив скорость.