Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| dpi:dpi_components:utilities:ipfixreceiver [2018/02/14 10:54] – lexx26 | dpi:dpi_components:utilities:ipfixreceiver [2018/12/10 18:30] (текущий) – удалено lexx26 | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ====== Утилита приема IPFIX потоков данных ====== | ||
| - | ===== Введение ===== | ||
| - | Утилита предназначена для приема потока данных от устройств по протоколу IPFIX и сохранением данных в виде файла для последующей обработки их другими средствами. | ||
| - | |||
| - | ===== Инсталляция и обновление ===== | ||
| - | ==== CentOS6 ==== | ||
| - | |||
| - | - подключите репозитарий VAS Experts аналогично п.1 инструкции [[dpi_10_update|установки DPI]]. | ||
| - | - установите ipfixreceiver: | ||
| - | - проверьте изменения в конфигурационных файлах на соответствие версии см. раздел " | ||
| - | |||
| - | ==== CentOS7 ==== | ||
| - | - подключите репозиторий VAS Experts аналогично п.1 инструкции [[dpi: | ||
| - | - установите репозиторий epel < | ||
| - | - установите репозиторий forensics < | ||
| - | rpm -Uvh https:// | ||
| - | - установите ipfixreceiver: | ||
| - | - проверьте изменения в конфигурационных файлах на соответствие версии см. раздел " | ||
| - | |||
| - | ===== Важные изменения в версии 1.0.3 по отношению к 1.0.2 ===== | ||
| - | - изменен конфигурационный файл в части преобразования IP адресов, | ||
| - | - сохранение информации в файл вынесено в отдельный процесс, | ||
| - | - введен параметр buffer_size - размер буфера обмена между процессом приема и записи в файл, используется в разделе [dump], по умолчанию значение параметра 100000 записей (ориентировано на 20Гбит трафика или 25 000 сессий в сек). Если к-во сессий в секунду значительно меньше, | ||
| - | |||
| - | ===== Файлы поставки ===== | ||
| - | - примеры конфигурации: | ||
| - | / | ||
| - | / | ||
| - | - файлы программы располагаются в директории: | ||
| - | - вспомогательные файлы: | ||
| - | используется в утилите для получения текстового имени протокола</ | ||
| - | - ссылки на исполняемый модуль: | ||
| - | |||
| - | ===== Дополнительные настройки ОС ===== | ||
| - | - настройте iptables для приема внешних данных\\ Для работы ipfixreceiver' | ||
| - | protocol=tcp | ||
| - | host=212.12.11.10 | ||
| - | port=1500</ | ||
| - | - настройте ротацию логов\\ Пример ротации для лог файла / | ||
| - | / | ||
| - | rotate 5 | ||
| - | missingok | ||
| - | notifempty | ||
| - | compress | ||
| - | size 10M | ||
| - | daily | ||
| - | copytruncate | ||
| - | nocreate | ||
| - | postrotate | ||
| - | endscript | ||
| - | }</ | ||
| - | - Настройте удаление старых файлов. Например удаление старых архивов (более 31 дня) с записями о сессиях запакованных gzip:\\ < | ||
| - | |||
| - | ===== Параметры запуска программы ===== | ||
| - | Утилита ipfixreceiver имеет следующие параметры запуска : | ||
| - | < | ||
| - | где | ||
| - | start - запуск в режиме сервиса | ||
| - | stop - останов сервиса | ||
| - | state - состояние работы сервиса | ||
| - | restart - перезапуск сервиса | ||
| - | -v - вывести информацию о версии | ||
| - | -f <config file> - указать файл конфигурации для запуска сервиса | ||
| - | |||
| - | Пример: | ||
| - | ipfixreceiver start -f / | ||
| - | </ | ||
| - | ===== Конфигурация ===== | ||
| - | |||
| - | По умолчанию используется файл конфигурации / | ||
| - | : | ||
| - | |||
| - | ==== Служебные разделы ==== | ||
| - | - loggers - определяет используемые лог идентификаторы | ||
| - | - handlers - определяет используемые обработчики для сохранения лога | ||
| - | - formatters - определяет используемые форматы для лога | ||
| - | |||
| - | ==== logger_root ==== | ||
| - | - level - определяет уровень логирования (верхний уровень)\\ Возможные значения:< | ||
| - | CRITICAL | ||
| - | ERROR - включая ошибки | ||
| - | WARNING | ||
| - | INFO - включая информацию | ||
| - | DEBUG - включая отладочные | ||
| - | NOTSET | ||
| - | </ | ||
| - | - handlers - используемые обработчики сообщений\\ Пример: | ||
| - | ==== handler_ipfixreceiverlogger ==== | ||
| - | - class - класс обработчика\\ Пример: | ||
| - | - level - уровень сообщений < | ||
| - | - formatter - наименование формата сообщений< | ||
| - | - args - параметры обработчика < | ||
| - | ==== formatter_ipfixreceiverlogger ==== | ||
| - | - format - описание формата сообщения\\ Пример: | ||
| - | где | ||
| - | %(name)s | ||
| - | %(levelname)s - уровень сообщения (' | ||
| - | %(asctime)s | ||
| - | %(message)s | ||
| - | </ | ||
| - | - datefmt - описание формата даты\\ Пример: | ||
| - | ==== connect ==== | ||
| - | - protocol - протокол (tcp или udp). < | ||
| - | - host - IP или имя сервера. < | ||
| - | - port - номер порта. < | ||
| - | ==== dump ==== | ||
| - | - rotate_minutes - период в минутах, | ||
| - | - processcmd - команда которая будет запущена по окончании ротации файла, параметр имя файла с путем к нему.< | ||
| - | - dumpfiledir - директория куда будут сохраняться файлы с принятыми данными. < | ||
| - | - buffer_size - размер буфера обмена между процессом приема и записи в файл, по умолчанию значение параметра 100000 записей (ориентировано на 20Гбит трафика или 25 000 сессий в сек). Если к-во сессий в секунду значительно меньше, | ||
| - | |||
| - | ==== InfoModel ==== | ||
| - | Блок описывает получаемые данные по IPFIX протоколу. | ||
| - | - InfoElements - параметр с описанием элементов информационной модели для IPFIX < | ||
| - | packetDeltaCount, | ||
| - | protocolIdentifier, | ||
| - | session_id, | ||
| - | где, | ||
| - | session_id - наименование поля из описания IPFIX см. разделы | ||
| - | 43823 - уникальный номер организации (enterprise number) | ||
| - | 1 - уникальный номер поля | ||
| - | UINT64 - тип поля | ||
| - | True - использовать обратный порядок байт (endian). Значения - True или пусто. | ||
| - | </ | ||
| - | Типы полей: | ||
| - | ^ Type ^ Length | ||
| - | | OCTET_ARRAY | ||
| - | | UINT8 | 1 | unsigned8 | ||
| - | | UINT16 | ||
| - | | UINT32 | ||
| - | | UINT64 | ||
| - | | INT8 | 1 | signed8 | ||
| - | | INT16 | 2 | signed16 | ||
| - | | INT32 | 4 | signed32 | ||
| - | | INT64 | 8 | signed64 | ||
| - | | FLOAT32 | ||
| - | | FLOAT64 | ||
| - | | BOOL | 1 | boolean | ||
| - | | MAC_ADDR | ||
| - | | STRING | ||
| - | | SECONDS | ||
| - | | MILLISECONDS | ||
| - | | MICROSECONDS | ||
| - | | NANOSECONDS | ||
| - | | IP4ADDR | ||
| - | | IP6ADDR | ||
| - | |||
| - | Наименование полей и описание можно взять по ссылкам: | ||
| - | - [[statistics_ipfix|Шаблон экспорта Netflow в формате IPFIX]] | ||
| - | - [[li_ipfix|Шаблоны экспорта clickstream и SIP]] | ||
| - | - [[radmon_acct_ipfix|Шаблон экспорта AAA в формате IPFIX]] | ||
| - | |||
| - | |||
| - | Дополнительная информация: | ||
| - | [[https:// | ||
| - | ==== ExportModel ==== | ||
| - | определяет параметры модели для экспорта, | ||
| - | - Mode - тип используемого экспорта < | ||
| - | ==== ExportModelFile ==== | ||
| - | Описание модели экспорта File. | ||
| - | - Delimiter разделитель полей в строке ( \t - табуляция, | ||
| - | - ExportElements - описание полей которые будут сохранены в файл. < | ||
| - | login | ||
| - | | ||
| - | | ||
| - | host, decodehost | ||
| - | path, decodepath | ||
| - | | ||
| - | | ||
| - | где поля в каждой строке: | ||
| - | имя - наименование поля из информационной модели [InfoModel] (login, session_id и т.п.) | ||
| - | обработчик - процедура обработки поля перед выводом | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | | ||
| - | формат - описание формата для seconds, milliseconds. | ||
| - | | ||
| - | | ||
| - | </ | ||
| - | |||
| - | ==== Создаем сервис в Centos7 ==== | ||
| - | Создание сервиса в centos7 по шагам, название сервиса **ipfix1**, используемая конфигурация **/ | ||
| - | Создаем файл / | ||
| - | < | ||
| - | [Unit] | ||
| - | Description=ipfix test restart | ||
| - | After=network.target | ||
| - | After=syslog.target | ||
| - | |||
| - | [Service] | ||
| - | Type=forking | ||
| - | PIDFile=/ | ||
| - | ExecStart=/ | ||
| - | ExecStop=/ | ||
| - | ExecReload=/ | ||
| - | Restart=always | ||
| - | RestartSec=10s | ||
| - | |||
| - | [Install] | ||
| - | WantedBy=multi-user.target | ||
| - | </ | ||
| - | Выполняем: | ||
| - | systemctl enable ipfix1.service | ||
| - | systemctl start ipfix1.service | ||
| - | systemctl daemon-reload | ||
| - | |||
| - | Проверяем: | ||
| - | systemctl status ipfix1.service -l | ||
| - | :!:**не забудьте проверить поднятие сервиса после перезагрузки** | ||
| - | |||
| - | ===== Проблемы и решения ===== | ||
| - | - как получить версию утилиты? | ||
| - | - можно ли на один порт отправлять IPFIX потоки с разных DPI?\\ Да. Единственное в записываемом потоке их будет не различить. | ||
| - | - как понять, | ||
| - | - все проверено, | ||
| - | - с DPI идет большое количество сессий (более 2 млн сессий/ | ||