Экспорт информации о потоках IP
Экспорт информации о потоках IP (англ. Internet Protocol Flow Information Export, IPFIX) — протокол IETF, а также название рабочей группы IETF, определяющей этот протокол. Он был создан для стандартизации универсального формата экспорта информации о потоках Интернет-протокола с маршрутизаторов, сетевых зондов и других устройств, используемых системами агрегации, учёта и биллинга, а также средствами управления сетью для предоставления таких сервисов, как измерение, учёт и биллинг. Стандарт IPFIX определяет, каким образом информация о потоках IP должна быть оформлена и передана от экспортёра к коллектору[1]. Ранее многие операторы сетей передачи данных использовали проприетарную технологию NetFlow от Cisco Systems для экспорта сведений о потоках трафика.
Требования к стандарту IPFIX были сформулированы в оригинальном RFC 3917. Версия 9 протокола NetFlow от Cisco стала основой для IPFIX. Базовые спецификации IPFIX определены в RFC 7011-RFC 7015 и RFC 5103.
Архитектура
Ниже представлена типовая архитектура передачи информации в системе IPFIX:
Экспортёр IPFIX Коллектор
O--------------------------->O
|
| Дом наблюдения
|
Процесс учёта #1 | Процесс учёта #2
O----------------O----------------O Процесс учёта #3
| | |
| Точка наблюдения #1 | Точка наблюдения #2 | Точка наблюдения #3
v | |
---- IP-трафик ---> | |
v |
------- Больше IP-трафика ---> |
v
--------------------- Ещё больше IP-трафика --->
Набор процессов учёта собирает пакеты данных в одной или нескольких точках наблюдения, при необходимости фильтрует их и агрегирует информацию по ним. Затем экспортёр объединяет точки наблюдения в домен наблюдения и передаёт сведения посредством протокола IPFIX на коллектор. Экспортёры и коллекторы состоят во многие-ко-многим отношении: один экспортёр может отправлять данные нескольким коллекторам, а один коллектор принимать данные от многих экспортёров[2].
Протокол
Аналогично протоколу NetFlow, в IPFIX под потоком понимается любое количество пакетов, зафиксированных в определённом временном промежутке и обладающих рядом одинаковых свойств, например: один и тот же источник, тот же получатель, тот же протокол. С помощью IPFIX такие устройства, как маршрутизаторы, могут информировать централизованную станцию мониторинга о своём представлении о поведении большей сети.
IPFIX является push-протоколом, то есть каждый отправитель периодически отправляет сообщения IPFIX на настроенных получателей без участия самого получателя.
Формат данных в сообщениях IPFIX во многом определяется отправителем. IPFIX сообщает получателю структуру отправляемых сообщений с помощью специальных шаблонов. Отправитель также может использовать определяемые пользователем типы данных, поэтому протокол легко расширяем и адаптируем к разным сценариям.
В качестве транспортного протокола по умолчанию в IPFIX предпочтён протокол управления передачей потоков (SCTP), однако может использоваться и протокол управления передачей (TCP) или протокол пользовательских дейтаграмм (UDP).
Пример
Простая информационная таблица, передаваемая через IPFIX, может выглядеть так:
Источник Назначение Пакетов ------------------------------------------ 192.168.0.201 192.168.0.1 235 192.168.0.202 192.168.0.1 42
Эти данные будут отправлены в следующем сообщении IPFIX:
| Биты 0..15 | Биты 16..31 |
|---|---|
| Версия = 0x000a | Длина сообщения = 64 байта |
| Метка времени экспорта = 31 декабря 2005, 23:59:60 | |
| Порядковый номер = 0 | |
| Идентификатор домена наблюдения = 12345678 | |
| Set ID = 2 (Шаблон) | Длина набора = 20 байт |
| Идентификатор шаблона = 256 | Количество полей = 3 |
| Тип = sourceIPv4Address | Длина поля = 4 байта |
| Тип = destinationIPv4Address | Длина поля = 4 байта |
| Тип = packetDeltaCount | Длина поля = 4 байта |
| Set ID = 256 (Набор данных использует шаблон 256) |
Длина набора = 28 байт |
| Запись 1, поле 1 = 192.168.0.201 | |
| Запись 1, поле 2 = 192.168.0.1 | |
| Запись 1, поле 3 = 235 пакетов | |
| Запись 2, поле 1 = 192.168.0.202 | |
| Запись 2, поле 2 = 192.168.0.1 | |
| Запись 2, поле 3 = 42 пакетов | |
Как видно из примера, сообщение содержит заголовок IPFIX и два набора: один набор шаблонов, описывающий структуру соответствующего набора данных, и непосредственно набор данных, содержащий сами значения. При передаче IPFIX через протокол, поддерживающий состояние сеанса (TCP или SCTP), набор шаблонов не требует повторной передачи — он кэшируется коллектором. Однако при изменении шаблона, открытии нового сеанса или при использовании безсеансового UDP набор шаблонов должен быть передан заново.
Примечания
Литература
- Hofstede, Rick; Celeda, Pavel; Trammell, Brian; Drago, Idilio; Sadre, Ramin; Sperotto, Anna; Pras, Aiko (2014). “Flow Monitoring Explained: From Packet Capture to Data Analysis with NetFlow and IPFIX”. IEEE Communications Surveys & Tutorials [англ.]. 16 (4): 2037—2064. DOI:10.1109/COMST.2014.2321898. Дата обращения 2024-06-01.
Ссылки
- Страница статуса IPFIX
- Устав рабочей группы IPFIX
- Введение в IPFIX на сайте Network World
- RFC3954 — NetFlow Version 9
- RFC3955 — Кандидатные протоколы для экспорта информации о потоках IP (IPFIX)
- RFC5103 — Двунаправленный экспорт потоков с использованием IPFIX
- RFC5153 — Руководство по реализации IPFIX
- RFC5470 — Архитектура для IPFIX
- RFC5471 — Руководство по тестированию IPFIX
- RFC5472 — Применимость IPFIX
- RFC5473 — Уменьшение избыточности в отчётах IPFIX и PSAMP
- RFC7011 — Спецификация протокола IPFIX для обмена информацией о потоках IP
- RFC7012 — Информационная модель IPFIX
- RFC7013 — Руководство для авторов и рецензентов элементов информации IPFIX
- RFC7014 — Методики выбора потоков
- RFC7015 — Агрегация потоков для протокола IPFIX
- Библиотека для парсинга, сбора и экспорта сообщений IPFIX
- Открытый корпоративный коллектор IPFIX
- Анимация принципа NetFlow/IPFIX
- Что такое IPFIX и отличия от Netflow


