Режим и ресурсы захвата

Файл /opt/alertixnta/config/ethercap.json содержит общие параметры, controlSection, массив адаптеров и настройки парсеров. Если присутствует объект controlSection.capture, режим берётся из capture.mode; значение captureMode в этом случае не определяет активный режим.

Таблица. Выбор механизма захвата

ЗначениеМеханизмКогда использовать

afpkt

AF_PACKET; исходный режим

Удобен для первоначальной настройки через стандартный сетевой стек Linux.

afxdp

AF_XDP

Требует поддержки XDP адаптером; не требует привязки к драйверу DPDK.

dpdk

DPDK

Требует соответствующего пакета, hugepages и предварительной привязки адаптера к совместимому драйверу.

Таблица. Параметры controlSection

ПараметрЗначенияНазначение и особенности

flowCount

Целое ≥ 1; 4

Количество потоков захвата. Не должно превышать число выделенных для захвата ядер.

flowBuffCount

Целое ≥ 1; 1024

Количество буферов на поток.

flowBuffSize

Байты ≥ 4096; 65536

Размер одного буфера. Увеличение потребляет дополнительную RAM.

captureMode

afpkt / afxdp / dpdk; afpkt

Режим, если вложенного capture нет. Неизвестное значение приводит к afpkt.

controlIf

Строка; пустая

Имя интерфейса управления, исключаемого из захвата.

ipSessions

true / false; true

Учёт IP-сессий.

tcpSessions

true / false; true

Учёт TCP-сессий.

udpSessions

true / false; true

Учёт UDP-сессий.

ip4Fragments

true / false; true

Сборка фрагментированных IPv4-пакетов.

ip6Fragments

true / false; false при отсутствии

Сборка IPv6-фрагментов; в поставляемом файле ключ может отсутствовать.

ndpiEngine

true / false; false

Классификация через nDPI. Включается отдельно от нативных парсеров.

nativeParsers

true / false; true

Общий выключатель нативных парсеров.

luaParsers

true в поставке; false при отсутствии

Общий выключатель Lua-парсеров.

trafficRecordSessions

true / false; false

Разрешает запись сессий по recordingRules[].

Объём буферов захвата равен flowCount × flowBuffCount × flowBuffSize. При значениях 4 × 1024 × 65536 он составляет 256 МиБ. Это только буферы захвата: память сессий, IPC и анализатора учитывается дополнительно. Увеличение буферов сглаживает краткий всплеск, но не устраняет постоянное отставание обработки.

Таблица. Параметры привязки и hugepages

ПараметрЗначенияНазначение и особенности

cpuSet верхнего уровня

Строка cpuset, например 5-7

Привязка службы к ядрам. Значение должно соответствовать существующим ядрам; изменение требует перезапуска.

controlSection.capture.mode

afpkt / afxdp / dpdk

Имеет приоритет над captureMode.

controlSection.capture.cpuSet

Например 0-3

Привязка потоков захвата; имеет приоритет над верхним cpuSet.

controlSection.capture.hugePages.enabled

true / false; false

Разрешает подготовку hugepages.

controlSection.capture.hugePages.count

Целое; 1024

Число страниц по 2 МиБ на каждый узел NUMA. Это 2 ГиБ на NUMA-узел при 1024 страницах.

controlSection.capture.hugePages.mount

Путь; /home/ethersensor/huge

Точка монтирования. Подготовка выполняется сценарием sensor-ipc при запуске.

Для перехода на DPDK установите предназначенный для него пакет, подготовьте драйвер и привязку только адаптера захвата, задайте hugePages и режим dpdk, затем перезапустите sensor.target. Проверьте MAC, driver_name и bus_info портов в ethcap.log и включите нужные записи networkAdapters. Настройка JSON сама по себе не привязывает сетевой адаптер к vfio-pci или igb_uio.