PaFoS

PaFoS (Packet Flow Sensor) — это сервис, который принимает зеркалированный трафик на выделенный порт, сэмплирует все поступающие на выделенный интерфейс пакеты.

Интеграция в сеть

Для работы PaFoS требуется:

  • Выделенный интерфейс для приема зеркалированных пакетов (monitoring interface). Весь входящий трафик на этот интерфейс либо поступает в PaFoS, либо сбрасывается.
  • Один или несколько интерфейсов для управления и отправки sFlow в Collector. PaFoS не управляет этими интерфейсами, маршрутизацию выполняет система.

При наличии нужных интерфейсов сервис может быть развернут как на машине с Collector, так и на отдельной машине.

Системные требования

  • Linux с ядром 5.18+
  • Docker v23.0.0+

Установка

Docker Compose

Для установки на машине с Collector предпочтительный вариант — использование Docker Compose. Потребуется Collector версии v25.10 и выше.

  1. Перейдите в директорию /srv/collector

  2. Установите системные настройки сервиса через переменные окружения в файле .env

  3. Разрешите запуск сервиса pafos, добавив следующие строки в docker-compose.override.yml:

    services:
      pafos:
        scale: 1
  4. Запустите сервис

    docker-compose up -d

Plain Docker

Для установки сервиса на выделенную машину можно использовать следующую команду:

docker run -d \
  --name pafos \
  --network host \
  --cap-add=NET_RAW \
  --cap-add=NET_ADMIN \
  --cap-add=BPF \
  --cap-add=SYS_RESOURCE \
  -e PAFOS_SAMPLING_RATE=<rate> \
  -e PAFOS_HEADER_SIZE=<size> \
  -e PAFOS_MONITORING_INTERFACE=<interface> \
  -e PAFOS_EXPORTER_ADDRESS=<exporter_address> \
  -e PAFOS_COLLECTOR_ADDRESS=<collector_address> \
  docker.mitigator.ru/collector/pafos:<version>

Системные настройки

Системные настройки задаются через переменные окружения сервиса pafos. Чтобы их изменение вступило в силу, нужно перезапустить сервис.

PaFoS можно настроить с помощью следующих переменных окружения:

  • PAFOS_SAMPLING_RATE (по умолчанию 1000): частота семплирования зеркалированного трафика.
  • PAFOS_HEADER_SIZE (по умолчанию 80): размер заголовка пакета, передаваемого в sFlow.
  • PAFOS_MONITORING_INTERFACE (по умолчанию dummy0): имя интерфейс для приема зеркалированных пакетов (monitoring interface).
  • PAFOS_EXPORTER_ADDRESS (по умолчанию не задано, формат host:port): адрес, с которого отправляется sFlow.
  • PAFOS_COLLECTOR_ADDRESS (по умолчанию не задано, формат host:port): адрес, на который отправляется sFlow.

Настройка Collector для приема sFlow

Чтобы получать sFlow по зеркалированному трафику в Collector нужно произвести дополнительную настройку.

  1. В разделе Источники Flow добавьте новый источник
  2. Задайте Название для источника (например, PaFoS)
  3. Укажите IP-адрес источника согласно значению PAFOS_EXPORTER_ADDRESS
  4. Укажите Семплирование согласно значению PAFOS_SAMPLING_RATE
  5. Если порт в PAFOS_COLLECTOR_ADDRESS отличается от 6343, укажите Порт коллектора
  6. Примените настройки