Могу ли я использовать DPDK в качестве модуля захвата пакетов для приложения сетевого мониторинга?

Мой пассив network monitoringприложению требуется, чтобы пакеты перехватывались с сетевого интерфейса (с более высокой скоростью передачи пакетов). Модуль захвата пакетов должен иметь возможность вызывать функцию мониторинга при захвате каждого пакета (а также записывать пакет в pcap файл).

Я думал об использовании в качестве модуля захвата пакетов в моем приложении для мониторинга (поскольку мы используем pcap_loop и pfring_loop в libpcap и pfring соответственно), но я не уверен, является ли это одним из вариантов использования или предназначен для использования в таком виде ?.

Итак, мои вопросы ... Могу ли я использовать DPDK выполнить мои требования ?, Если да, как начать ?.

ОС: Linux. Карнальная
версия: 4.
Версия DPDK: Последняя стабильная версия.
Захват на физическом устройстве.
Приложение захвата имеет привилегии root и будет использоваться сетевым администратором (как часть пассивного обнаружения активов).
Я хочу использовать DPDK, потому что он поддерживает захват со скоростью до 10 Гбит / с.

Спасибо.

2 ответа

Основываясь на обновлениях и пояснениях в комментариях, запрос Can one replace an existing application which PF_RING API calls with DPDK API which is written in C?. Простой ответ - да, это возможно .

Вот как следует начать

  1. определить платформу (желательно Linux / BSD, windows 21.02 все еще в работе)
  2. определить список поддерживаемых процессоров
  3. Определите сетевую карту для использования из СПИСКА сетевых адаптеров DPDK.
  4. Настройте среду Linux с помощью Linux Enviroment
  5. Изучите базовый пример / скелет для использования basicfwd
  6. получить начало заголовка Ethernet для пакета с помощью DPDK API rte_pktmbuf_mtod. В папке DPDK / examples есть много примеров, которые делают то же самое.
  7. Вызов логики функции обработки пакетов между rx_burst и tx_burst примера / скелета.

Более новые версии libpcap могут сами использовать DPDK, по крайней мере, в Linux. Libpcap в вашей системе может быть настроен или не настроен на его использование. (Существуют также версии libpcap, модифицированные для использования PF_RING.)

Другие вопросы по тегам