Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версия | |||
| dpi:dpi_components:utilities:oldutility:ipfixreceiver [2023/09/01 07:55] – elena.krasnobryzh | dpi:dpi_components:utilities:oldutility:ipfixreceiver [2024/09/26 15:29] (текущий) – внешнее изменение 127.0.0.1 | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ====== ipfixreceiver ====== | + | ====== |
| + | ===== Введение ===== | ||
| + | |||
| + | Утилита предназначена для приема потока данных от устройств по протоколу IPFIX и сохранением данных в виде файла для последующей обработки их другими средствами. | ||
| + | |||
| + | ===== Инсталляция и обновление ===== | ||
| + | ==== CentOS6 ==== | ||
| + | |||
| + | - подключите репозиторий VAS Experts < | ||
| + | rpm -Uvh http:// | ||
| + | - установите ipfixreceiver: | ||
| + | - проверьте изменения в конфигурационных файлах на соответствие версии см. раздел " | ||
| + | |||
| + | ==== CentOS7 ==== | ||
| + | - подключите репозиторий VAS Experts < | ||
| + | rpm -Uvh http:// | ||
| + | - установите репозиторий epel < | ||
| + | - установка репозитория forencis: < | ||
| + | rpm -Uvh https:// | ||
| + | - установите ipfixreceiver: | ||
| + | yum -y install | ||
| + | yum -y install ipfixreceiver --disablerepo=forensics</ | ||
| + | - проверьте изменения в конфигурационных файлах на соответствие версии см. раздел " | ||
| + | |||
| + | ===== Важные изменения в версии 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 | ||
| + | }</ | ||
| + | - Настройте удаление старых файлов. Например, | ||
| + | |||
| + | ===== Параметры запуска программы ===== | ||
| + | Утилита 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 | ||
| + | |||
| + | Наименование полей и описание можно взять по ссылкам: | ||
| + | - [[dpi: | ||
| + | - [[dpi: | ||
| + | - [[dpi: | ||
| + | |||
| + | |||
| + | Дополнительная информация: | ||
| + | [[https:// | ||
| + | ==== ExportModel ==== | ||
| + | определяет параметры модели для экспорта, | ||
| + | - Mode - тип используемого экспорта < | ||
| + | ==== ExportModelFile ==== | ||
| + | Описание модели экспорта File. | ||
| + | - Delimiter разделитель полей в строке ( \t - табуляция, | ||
| + | - ExportElements - описание полей которые будут сохранены в файл. < | ||
| + | | ||
| + | | ||
| + | | ||
| + | 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 млн сессий/ | ||