Предполагается размещать все файлы в рабочем каталоге /srv/mitigator
:
mkdir -p /srv/mitigator
cd /srv/mitigator
Поместить базовую конфигурацию Docker Compose в рабочий каталог:
wget https://docs.mitigator.ru/dist/docker-compose.yml
Скачать базовый файл переменных и сохранить его под именем
.env
:
wget https://docs.mitigator.ru/dist/env -O /srv/mitigator/.env
В файле .env
задать:
VERSION
).ARCH
).DATA_PLANE_NR_POLICIES
).MITIGATOR_OWN_NAME
, обязательно).MITIGATOR_HOST_ADDRESS
, обязательно).TZ
).TOKEN
).Подробно эти настройки описаны внутри файла-примера.
Для максимальной производительности Mitigator´а нужно использовать сборку, оптимизированную под архитектуру и набор инструкций процессора целевой машины.
В файле .env
должна быть строка вида:
ARCH=haswell
Доступные варианты:
nehalem
- для SSE4.2,sandybridge
- для AVX,haswell
- для AVX2 и новее.Свой процессор можно найти в каталоге Intel, микроархитектура указана в
строке Code Name. Для большинства современных процессоров подойдет haswell
.
Необходимо создать файл data-plane.conf
, описывающий параметры запуска обработчика
пакетов:
touch data-plane.conf
Файл настроек по умолчанию пустой. Править его требуется только если нужно указать настройки, отличные от выбранных автоматически. Описание настроек.
Порты в приложении называются ext0
, int0
, ext1
, int1
и т.д. ext
— порты
внешней сети, int
— порты внутренней (защищаемой) сети. Объединяются в ext-int пары по
индексу в названии. ext-int пары портов используются для маршрутизации трафика в схеме
включения «в разрыв». В схеме включения «on-a-stick» ext-int пары не используются и могут
быть любыми.
Если порты не заданы в настройках, используются все порты в системе, доступные DPDK. В таком случае, порты перечисляются в порядке возрастания их PCI-адресов. ext-int пары портов формируются только для портов с общей NUMA-ноды.
Если порядок перечисления портов по умолчанию не совпадает с физическим подключением линков, либо требуется ограничить список используемых портов, порты можно настроить явно:
ext0: 04:00.1
int0: 04:00.0
ext1: 84:00.1
int1: 84:00.0
Перед запуском Mitigator´а отведенные ему сетевые порты должны быть под управлением драйвера, выбранного при подготовке системы.
Для систем под управлением systemd предлагается выполнять привязку перед запуском службы Mitigator´а (см. следующий пункт).
Загрузить скрипт привязки и сделать его исполняемым:
wget https://docs.mitigator.ru/dist/dpdk-devbind \
-O /usr/local/bin/dpdk-devbind
chmod +x /usr/local/bin/dpdk-devbind
Создать каталог /etc/systemd/system/mitigator.service.d
:
mkdir -p /etc/systemd/system/mitigator.service.d
В нем разместить файл nics.conf
такого вида:
[Service]
ExecStartPre=/usr/local/bin/dpdk-devbind -b vfio-pci 04:00.0 04:00.1 84:00.0 84:00.1
Драйвер и PCI-адреса заменить на необходимые.
Mitigator запускается командой docker-compose up -d
.
Для систем под управлением systemd предлагается настроить готовую службу:
Разместить файл службы Mitigator´а:
wget https://docs.mitigator.ru/dist/mitigator.service \
-O /etc/systemd/system/mitigator.service
Настроить автозапуск Mitigator´а:
systemctl enable mitigator
При первом запуске или обновлении нужно совершить вход в хранилище образов со своими учетными данными:
docker login docker.mitigator.ru
Запустить Mitigator:
systemctl start mitigator
При первом запуске понадобится некоторое время для загрузки
образов. Процесс можно наблюдать в выводе docker-compose logs -f
или, для systemd:
journalctl -u mitigator -f
Спустя некоторое время, web-интерфейс Mitigator´а будет доступен по адресу интерфейса управления.
После установки и запуска настроить систему для её стабильной и безопасной работы.