Internet Protocol Flow Information eXport (IPFIX) - это рабочая группа IETF. Она была создана вследствие необходимости в общем, универсальном стандарте экспорта данных IP-потоков из маршрутизаторов, проб (зондов) и др. устройств, которые используются контрольными и учетными системами, а также системами сетевого управления для управления различными сервисами. Стандарт IPFIX должен определять, как информация о IP-потоках должна форматироваться и передаваться от экспортера к коллектору. До сих пор большинство аналитических и управляющих систем использовали для этого разработанный Cisco стандарт NetFlow или CFlow , разработанный компанией Juniper Networks. Требования к стандарту IPFIX приведены в RFC 3917. Рабочая группа выбрала в качестве основы для IPFIX стандарт NetFlow v9. Рабочая группа представила на рассмотрение спецификацию протокола IPFIX в IESG на утверждение в 2006 г.
Архитектура
На схеме ниже показана типичная архитектура информационных потоков в архитектуре IPFIX:
Экспортер IPFIX Коллектор O------------------------------------->O | | Точка наблюдения v ---- IP-трафик --->
Экспортер (маршрутизатор, коммутатор, и др.) собирает пакеты данных в точке наблюдения, опционально фильтрует их и агрегирует информацию об этих пакетах. Использую протокол IPFIX экспортер посылает эту информацию в коллектор. Экспортер и коллектор работают по принципу "многие-со-многими": один экспортер может пересылать данные в множество коллекторов и один коллектор может получать данные со многих экспортеров.
Протокол
Так же как протокол Netflow, IPFIX рассматривает поток как любое количество потоков, наблюдаемых в определенный слот времени и имеющие ряд общих свойств, т.е. "один источник, один приемник, один протокол". Используя IPFIX, устройства типа маршрутизатора могут информировать центральную систему мониторинга о характеристиках потенциально большей сети. IPFIX - это протокол "push", т.е. каждый отправитель будет периодически посылать сообщения IPFIX в сконфигурированные получатели без какого-либо взаимодействия с получателем. Структура данных в сообщениях IPFIX имеет достаточно большой размер и возможности расширения для получателя. Данные передаются получателю с помощью специальных шаблонов. Получатель может использовать определенные им самим типы данных в этих сообщениях, поэтому протокол легко расширяется и может быть адаптирован к различным сценариям. IPFIX предпочитает использовать Stream Control Transmission Protocol в качестве транспортного протокола, но может также использовать протоколы Transmission Control Protocol (TCP) или User Datagram Protocol (UDP).