{{indexmenu_n>10}} ======IPFIX-балансировщик====== IPFIX-балансировщик работает на базе [[dpi:dpi_components:utilities:ipfixcol2]] Ключевая задача модуля — ретрансляция (репликация и балансировка) всех экспортируемых с DPI IPFIX-потоков данных о трафике (Fullflow/Clickstream/DNS flow): он принимает IPFIX от fastDPI и далее ретранслирует его на другие хосты согласно настройкам. Дополнительно может быть реализован режим записи. IPFIX-балансировщик оперирует порциями данных (сообщениями) при их распределении между узлами сбора данных (ресиверами/коллекторами). Имеет 2 основных режима распределения данных: - Режим **"RoundRobin"** разделяет (балансирует) поток IPFIX по одному сообщению на каждый указанный хост.\\ Отправляет одно сообщение на один узел приема → коллектор → отправляет следующее сообщение на следующий доступный хост приёма → коллектор и так по кругу пока не закончатся сообщения. - Режим **"All"** реплицирует поток IPFIX.\\ Копирует полученные сообщения от DPI, на все узлы приема — коллекторы. Позволяет работать как по UDP, так и по TCP, а также привязывать обработчик определенного типа трафика (Fullflow/Clickstream/DNS flow) к ядру CPU системы, обеспечивая тем самым распределение нагрузки между CPU. С помощью балансировщика можно выполнить: - Распределение трафика между узлами сбора и хранения данных, в случае работы QoE в режиме "Кластера", когда хранение данных выполняется на разных серверах. - Дублирование данных в режиме репликации, между узлами сбора и хранения, для решения вопроса отказоустойчивости или одновременного экспорта потока в разные направления, или между разными хостами приёма потока (Fullflow/Clickstream/DNS flow). - Перенаправлять поток (Fullflow/Clickstream/DNS flow) с DPI без изменения конфигурации и необходимого рестарта процесса fastdpi.\\ Когда поток данных экспортируется в балансировщик по адресу 127.0.0.1, запущенный на том же хосте, где и DPI.\\ При этом при изменении адреса назначения потока или адреса коллектора, необходимо выполнить эти изменения в файле конфигурации IPFIX-балансировщика и выполнить его рестарт, без влияния на обрабатываемый DPI-трафик. =====Управление===== Установка: yum install fast_ipfix_balancer :!: Модуль IPFIX-балансировщика рекомендуется устанавливать на тот же сервер, где установлен DPI. Остановка и перезапуск: ipfix-balancer-stop ipfix-balancer-restart Просмотр логов: journalctl -xe | grep IPFIXcol2 journalctl -f | grep IPFIXcol2 Определить, к какому CPU принадлежит процесс балансировки. CPU задается параметром ''IPFIX_xx_TASKSET'', описание в разделе [[dpi:dpi_components:ipfix_balancer#настройка|Работа в CLI → Настройка]]. ps -ax -o %cpu,psr,comm | grep ipfix =====Работа в GUI===== Лог-файлы IPFIX-балансировщика можно посмотреть в разделе "Администратор" → "Логи IPFIX-балансира" ====Добавление оборудования==== Для работы с IPFIX-балансировщиком необходимо завести подходящее оборудование. Для этого нужно: - Перейти в раздел Администратор → Оборудование; - Нажать на **+** над таблицей оборудования; - В появившемся окне выбрать тип оборудования — Сервер IPFIX-балансира;\\ {{:dpi:dpi_components:ipfix_balancer:equipment.png?nolink&500|}} - Заполнить остальные поля, сохранить оборудование. Подробное описание работы с разделом Оборудование — [[dpi:dpi_components:dpiui:user_guide:admin_section:equipment_management:list|]]. ====Сценарий 1. Репликация==== - В разделе Администратор → Конфигурация IPFIX-балансировщика выбрать сервер IPFIX и добавить ресивер (по нажатию на + над таблицей ресиверов); - :!: В поле “Балансир” выбрать значение “All”. - :!: Указать Тип порта, Субресиверы балансира, Тип субприемников балансира. - Параметрам Тип порта и Тип субприемников балансира рекомендуется задавать одинаковое значение. - Настроить остальные параметры ресивера. Их описание приведено в разделе [[:dpi:dpi_components:ipfix_balancer#описание_параметров|Описание параметров]]. **В результате получим два одинаковых потока на два разных хоста.** Пример настроек ресивера для сценария репликации: {{:dpi:dpi_components:ipfix_balancer:multiplexing.png?nolink&700|}} Логи IPFIX-балансировщика можно посмотреть в разделе Администратор → Логи IPFIX-балансира ====Сценарий 2. Балансировка==== - В разделе Администратор → Конфигурация IPFIX-балансировщика выбрать сервер IPFIX и добавить ресивер (по нажатию на + над таблицей ресиверов); - :!: В поле “Балансир” выбрать значение “RoundRobin”. - :!: Указать Тип порта, Субресиверы балансира, Тип субприемников балансира.\\ Параметрам Тип порта и Тип субприемников балансира рекомендуется задавать одинаковое значение. - Настроить остальные параметры ресивера. Их описание приведено в разделе [[:dpi:dpi_components:ipfix_balancer#описание_параметров|Описание параметров]]. **В результате получим равномерное распределение пакетов по всем хостам.** Пример настроек ресивера для сценария балансировки: {{:dpi:dpi_components:ipfix_balancer:balancing.png?nolink&700|}} Если включен один из режимов балансировки (All или RoundRobin), то начинает работать [[dpi:dpi_components:utilities:ipfixcol2|]] и субресиверы, на которые он отправляет пакеты. ====Сценарий 3. Режим записи==== - В разделе Администратор → Конфигурация IPFIX-балансировщика выбрать сервер IPFIX и добавить ресивер (по нажатию на + над таблицей ресиверов); - :!: В поле “Балансир” выбрать значение “Отключено”; - Настроить остальные параметры ресивера. Их описание приведено в разделе [[:dpi:dpi_components:ipfix_balancer#описание_параметров|Описание параметров]]. В этом случае работает IPFIX ресивер, пишет данные в файл и может делать экспорт IPFIX на IP-адреса, указанные в поле “Экспорт”. Настройка экспорта IPFIX на DPI описана в следующих разделах: * [[dpi:dpi_options:opt_statistics:statistics_ipfix|Нетфлоу]] * [[dpi:dpi_options:opt_li:li_ipfix|Кликстрим, DNS и т.д.]] Пример настроек ресивера для сценария записи: {{:dpi:dpi_components:ipfix_balancer:recording.png?nolink&700|}} =====Работа в CLI===== ====Настройка==== Файл конфигурации балансировщика находится по пути ''/var/fast_ipfix_balancer/backend/.env'' Конфигурация состоит из параметров формата ''IPFIX_xx_yy'', где: ''xx'' — тип потока: * ''FULLFLOW'' — Fullflow * ''CLICKSTREAM'' — Clickstream * ''DNSFLOW'' — DNS flow ''yy'' — имя параметра: * ''PORT_TYPE[0]'' — тип порта.\\ Возможные значения: * ''tcp'' (рекомендуется) * ''udp'' * ''PORT[0]'' — любой желаемый порт, он должен быть уникальным для каждого потока.\\ Значения по умолчанию: * ''1500'' для Fullflow * ''1501'' для Clickstream * ''ROTATE_MINUTES[0]'' — Период обращения дампа приемника или период загрузки данных в БД. Период поворота дампа для кликстрим должен быть больше или равен тому же периоду для фулфлоу. Когда дамп фулфлоу оборачивается, посылается сигнал HUP для синхронизации потоков. Не меняйте этот параметр без необходимости\\ Значение по умолчанию: * ''10'' минут для Fullflow * ''12'' минут для Clickstream * ''ROTATE_DELAY_SECONDS[0]'' — Ротация дампов в секундах. То же самое, что и ротация в минутах, только в секундах. Если это значение включено, значение в минутах игнорируется. * ''FW_MAX_QUEUE_SIZE[0]'' — Ротация по количеству записей в флоу. Работает одновременно с ротацией в минутах или секундах. * ''DUMP_INSERT_PROCESSES[0]'' — Ресивер(ы), на который(е) происходит экспорт данных.\\ Формат: ''10.0.0.2/9920/tcp,10.0.0.3/3440/udp''. * ''DPI_ID[0]'' — Номер DPI.\\ Значение по умолчанию: ''-1''.\\ Если значение равно ''-1'' или не указано, то номер DPI определяется порядком получателя в списке. * ''BALANCER[0]'' — Тип балансировщика.\\ Возможные значения: * ''RoundRobin'' — разделяет поток IPFIX * ''All'' — реплицирует поток IPFIX * ''BALANCER_SUB[0]'' — приемник(и), на который(е) происходит разделение или репликация данных.\\ Формат: ''10.0.0.2/9920,10.0.0.3/3440'' * ''BALANCER_SUB_PROTO[0]'' — Тип порта.\\ Возможные значения: * ''tcp'' (рекомендуется) * ''udp'' * ''TASKSET'' — Номер CPU в системе, на котором будет работать обработчик трафика. ====Пример конфигурационного файла==== # Fullflow распределяется между тремя QoE-серверами IPFIX_FULLFLOW_PORT_TYPE[0]=tcp IPFIX_FULLFLOW_PORT[0]=1500 IPFIX_FULLFLOW_BALANCER[0]=RoundRobin IPFIX_FULLFLOW_BALANCER_SUB[0]=10.19.3.21/1500,10.19.3.23/1600,10.19.3.24/1600 IPFIX_FULLFLOW_BALANCER_SUB_PROTO[0]=tcp IPFIX_FULLFLOW_BALANCER_TASKSET[0]=61 # Clickstream распределяется между двумя QoE-серверами: 10.19.3.21/10102 и 10.19.3.22/10102 IPFIX_CLICKSTREAM_PORT_TYPE[0]=tcp IPFIX_CLICKSTREAM_PORT[0]=1501 IPFIX_CLICKSTREAM_BALANCER[0]=RoundRobin IPFIX_CLICKSTREAM_BALANCER_SUB[0]=10.19.3.21/1501,10.19.3.23/1601 IPFIX_CLICKSTREAM_BALANCER_SUB_PROTO[0]=tcp IPFIX_CLICKSTREAM_BALANCER_TASKSET[0]=62 # DNS flow распределяется между двумя QoE-серверами: 10.19.3.21/10103 и 10.19.3.22/10103 IPFIX_DNSFLOW_PORT_TYPE[0]=tcp IPFIX_DNSFLOW_PORT[0]=1101 IPFIX_DNSFLOW_BALANCER[0]=RoundRobin IPFIX_DNSFLOW_BALANCER_SUB[0]=10.19.3.21/1101,10.19.3.23/2101 IPFIX_DNSFLOW_BALANCER_SUB_PROTO[0]=tcp IPFIX_DNSFLOW_BALANCER_TASKSET[0]=63 =====Описание параметров===== ^ Имя параметра в GUI ^ Имя параметра в CLI ^ Описание ^ Возможные значения и формат записи ^ Примечание ^ | Тип ресивера | FULLFLOW\\ CLICKSTREAM\\ DNSFLOW | Тип ресивера: Нетфлоу или Клистрим | Значения: \\ - Нетфлоу - ресивер для получения данных Нетфлоу \\ - Кликстрим - ресивер для получения данных Кликстрим | | | Тип порта | PORT_TYPE[0] | Тип протокола, по которому ресивер передает данные | Значения: \\ - TCP \\ - UDP | Рекомендуется использовать TCP | | Порт | PORT[0] | Порт, через который ресивер слушает трафик | Значения по умолчанию: \\ - 1500 для Нетфлоу\\ - 1501 для Кликстрим\\ \\ Можно указать любой порт. Главное, чтобы он отличался для каждого потока | | | Ротация **в минутах** | ROTATE_MINUTES[0] | Период обращения дампа приемника или период загрузки данных в БД | Значения по умолчанию:\\ - 10 минут для Нетфлоу\\ - 12 минут для Кликстрим\\ \\ Период поворота дампа для Кликстрим должен быть больше или равен тому же периоду для Нетфлоу. Когда дамп Нетфлоу оборачивается, посылается сигнал HUP для синхронизации потоков. | :!: Действует только в [[:dpi:dpi_components:ipfix_balancer#сценарий_3_режим_записи|режиме записи]]\\ **Не меняйте этот параметр без необходимости** | | Ротация **в секундах** | ROTATE_DELAY_SECONDS[0] | Период обращения дампа приемника или период загрузки данных в БД | | :!: Действует только в [[:dpi:dpi_components:ipfix_balancer#сценарий_3_режим_записи|режиме записи]]\\ Если это значение включено, значение в минутах игнорируется. | | Ротация **по флоу** | FW_MAX_QUEUE_SIZE[0] | Период обращения дампа приемника или период загрузки данных в БД | | :!: Действует только в [[:dpi:dpi_components:ipfix_balancer#сценарий_3_режим_записи|режиме записи]]\\ Работает одновременно с ротацией в минутах или секундах. | | Экспорт | DUMP_INSERT_PROCESSES[0] | Адреса ресиверов, куда экспортируются данные. | Формат: 10.0.0.2/9920/tcp,10.0.0.3/3440/udp | :!: Действует только в [[:dpi:dpi_components:ipfix_balancer#сценарий_3_режим_записи|режиме записи]] | | Идентификатор DPI | DPI_ID[0] | Добавляет в статистику ИД DPI. Для удобства просмотра статистики по определенному DPI | Значение по умолчанию: -1\\ \\ Если значение равно -1 или не указано, то номер DPI определяется порядком получателя в списке. | :!: Действует только в [[:dpi:dpi_components:ipfix_balancer#сценарий_3_режим_записи|режиме записи]] | | Балансир | BALANCER[0] | Тип балансировки | Значения: \\ - Отключено — отключает балансировку, включает режим записи\\ - RoundRobin — разделяет поток IPFIX\\ - All — реплицирует поток IPFIX | | | Субресиверы балансира | BALANCER_SUB[0] | Адреса субресиверов, на которые будут отправляться разделенные или реплицированные данные | Формат: 10.0.0.2/9920,10.0.0.3/3440 | :!: Действует в режимах [[:dpi:dpi_components:ipfix_balancer#сценарий_1_репликация|репликации]] и [[:dpi:dpi_components:ipfix_balancer#сценарий_2_балансировка|балансировки]] | | Тип субприемников балансира | BALANCER_SUB_PROTO[0] | Тип протокола, по которому ресивер передает данные на субресиверы | Значения: \\ - TCP \\ - UDP | :!: Действует в режимах [[:dpi:dpi_components:ipfix_balancer#сценарий_1_репликация|репликации]] и [[:dpi:dpi_components:ipfix_balancer#сценарий_2_балансировка|балансировки]]\\ Рекомендуется использовать TCP | | Балансир авто | | Вариант создания и запуска субресиверов | Значения:\\ - Отключено — субресиверы нужно прописать вручную\\ - Включено — субресиверы создаются и запускаются автоматически | Если QoE и IPFIX-балансировщик установлены на разных серверах, рекомендуется устанавливать значение “Отключено” |