Режим и ресурсы захвата
Файл /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.
Эта страница была полезна?
Спасибо за отзыв!
Спасибо, мы учтём это для улучшения документации.