Разделение управления и рабочего трафика
Введение
На машине модуля балансировки живут два разных потока:
- управление — установщик, доставка конфигураций, управление службой, SSH;
- рабочий трафик — балансировка, GSLB, проверки доступности серверов, анонсы маршрутов.
Разводить их по разным адресам и интерфейсам полезно по двум причинам. Отказ или перегрузка рабочей сети не должны лишать администратора управления машиной. И наоборот: сеть управления не должна быть достижима со стороны клиентов балансировщика.
Способ разделения выбирается один раз на всю установку и называется сетевым пресетом. Пресет задаётся в мастере установки на шаге Серверы либо параметром network_preset в файле конфигурации.
Пресеты
Одна сеть (combined) | Две сети (separated) | Две сети + VRF (isolated) | |
|---|---|---|---|
| Адреса на машине | один: управление и рабочий трафик по одному адресу | два: адрес управления и Data IP | два: адрес управления и Data IP |
| Порты агента и SSH | так, как настроено в самой ОС — установщик барьер не ставит | новые подключения на SSH и служебные порты агента принимаются только со стороны управления | так же, как в «двух сетях» |
| Маршрутизация | одна таблица на всё | одна таблица: сети разделены фильтром, а не маршрутами | data-интерфейс переносится в отдельный VRF — у рабочего трафика своя таблица маршрутизации |
| Что подготовить заранее | ничего сверх адреса управления | второй интерфейс с уже поднятым адресом | то же плюс ядро 5.15 и новее |
| Если Data IP не заполнить | поле не используется | машина поднимется как «одна сеть»: трафик пойдёт по адресу управления, барьер портов при этом ставится | установка не начнётся |
Рекомендуемый вариант — две сети: он даёт разделение без требований к версии ядра.
Установщик не назначает адреса и не создаёт интерфейсы: адрес рабочего трафика должен быть поднят на машине до установки. Установщик его только проверяет.
Что делает установщик
Барьер портов
В пресетах separated и isolated на каждой машине агента создаётся таблица nftables a5_baseline. Она разрешает новые подключения на SSH и служебные порты агента только с интерфейса управления и с петлевого интерфейса, а остальные считает и отбрасывает. Уже установленные соединения не затрагиваются.
Под барьер попадают порты 22, 50051 (gRPC агента), 50050 (HTTP агента) и 50090 (метрики агента). Если порты агента переопределены, барьер использует их значения.
Важно: барьер закрывает и SSH. После установки новые подключения к машине принимаются только со стороны управления. Если вы ходите на машину с другой стороны, перечислите нужные интерфейсы в параметре baseline_fw_extra_interfaces до установки.
Барьер реализуется службой 5a-baseline-fw с файлом правил /etc/5a/5a-baseline.nft.
Барьер можно не ставить — параметр baseline_fw_enabled: false. В пресете combined он не ставится никогда.
Отдельная таблица маршрутизации
В пресете isolated установщик дополнительно создаёт на машине VRF vrf-data с таблицей маршрутизации 5050 и подчиняет ему data-интерфейс. С этого момента рабочий трафик маршрутизируется отдельно от управления: разделение держится маршрутизацией, а не только пакетным фильтром.
Имя vrf-data и номер таблицы 5050 зарезервированы: VRF-профиль с таким именем или номером создать нельзя.
Перед настройкой установщик проверяет, что задан data_interface, что он существует на машине, что на нём не настроен адрес управления и что версия ядра не ниже 5.15. Любая непройденная проверка останавливает установку с указанием причины.
VRF создаёт служба 5a-data-vrf.
Совместимость с вашей автоматизацией
Все службы, которые ставит установщик, имеют префикс 5a-. Их список на машине:
systemctl list-units '5a-*'На машинах с ролью сетевого агента и на всех машинах пресета isolated установщик дополнительно кладёт файл /etc/systemd/networkd.conf.d/50-5a.conf: он запрещает systemd-networkd удалять маршруты и правила, созданные агентом.
Эти службы и файлы правятся только через установщик: ручные изменения будут перезаписаны при следующем запуске. Если на машинах работает ваша система управления конфигурацией, исключите их из-под её контроля — в первую очередь каталог /etc/systemd/networkd.conf.d/, куда пишут и другие средства.
Параметры конфигурации
Параметры задаются в файле конфигурации — общие для всех агентов в секции vars группы 5a-agent, индивидуальные у конкретного хоста.
network_preset— пресет:combined,separated(по умолчанию) илиisolated. Задаётся один на всю установку.management_address— адрес управления машиной. Если не задан, берётсяansible_host.management_interface— интерфейс управления. Если не задан, определяется по адресу управления; задавать явно нужно, только когда автоматическое определение ошибается.data_ip— адрес рабочего трафика. Если не задан, используется адрес управления.data_interface— интерфейс рабочего трафика. Обязателен для пресетаisolated.baseline_fw_enabled— ставить ли барьер портов. По умолчаниюtrue.baseline_fw_extra_interfaces— список интерфейсов, с которых барьер дополнительно пропускает подключения.data_vrf— имя VRF рабочего трафика для пресетаisolated. По умолчаниюvrf-data; менять стоит, только если устройство с таким именем на машине уже занято.
children:
5a-agent:
vars:
network_preset: isolated
hosts:
node1:
ansible_host: 172.27.1.20
data_ip: 10.10.10.11
data_interface: eth1
run_slb: true
run_net: true
slb_cluster_id: "slb-cluster-1"Проверка после установки
Режим, в котором поднялась машина, возвращает список сетевых агентов кластера:
GET /api/v1/clusters/{clusterId}/network_agentsВ ответе по каждому агенту есть поля network_mode (combined, separated, isolated либо unknown), data_vrf и kernel_version. Если ожидался isolated, а пришёл separated, значит машина поднялась без отдельной таблицы маршрутизации — проверьте data_interface и версию ядра.
Устройство vrf-data и подчинённый ему интерфейс видны и в интерфейсе системы, на вкладке Сеть → <сетевой агент> → Интерфейсы.
Смена пресета
Пресет один на всю установку. Чтобы его сменить, измените network_preset и повторно запустите установщик для агентов:
./install.sh agent /home/johndoe/.ssh/id_rsaУстановщик снимает то, что ставил сам: свои службы, VRF рабочего трафика с освобождением data-интерфейса и таблицу барьера. Адреса, интерфейсы и всё, что настроено вне установщика, остаётся без изменений.
Смену пресета планируйте как работы с перерывом обслуживания: она затрагивает адресацию и маршрутизацию всех машин установки. Проверьте после неё, что VRF-профили, сегменты которых опирались на data-интерфейс, по-прежнему настроены верно.
Дополнительные материалы
- Требования к серверам — что нужно подготовить до установки.
- Установка системы — файл конфигурации целиком.
- Установка через веб-интерфейс — выбор пресета в мастере.
- Виртуальная маршрутизация (VRF) — изолированные сети поверх рабочего трафика.