Инвариант — не «лучшая практика», а свойство, которое
обязано выполняться всегда. Каждое из шести придумано под конкретный сценарий отказа:
падает провайдер, падает наша панель, компрометируется узел, уходит инженер.
01
Data plane автономен
DNS-серверы и почтовые узлы выполняют свой цикл — включая обновление
DANE/TLSA — без обращения к панели.
Панель задаёт конфигурацию и собирает телеметрию; она не стоит на пути письма.
Сценарий: панель недоступна → почта и DNS работают
02
Управление — только egress
Защищённое соединение с hub всегда инициирует сам узел. Входящие
административные порты не публикуются; открыты только сервисные порты,
которые нужны DNS- и почтовому трафику.
Сценарий: сканирование административной поверхности → нет цели
03
DNS не привязан к одному провайдеру
Provider-agnostic схема: зона живёт
у облачного провайдера и одновременно на собственных
BIND-узлах в регионах СНГ,
с переключением. Ни один провайдер не является обязательным.
Сценарий: отказ или блокировка провайдера → зона отвечает
04
Control plane отделён от data plane
Разные системы, разные отказы, разные права. Компрометация интерфейса
управления не означает автоматического контроля над трафиком —
и наоборот.
Сценарий: инцидент в панели → трафик не затронут
05
Доступ — deny by default
Ничего не разрешено, пока не разрешено явно. Права на трансфер зоны выводятся
из инвентаря узлов, а не раздаются вручную, и снимаются автоматически,
когда узел перестаёт проходить аттестацию.
Сценарий: узел выведен из строя → доступ отозван сам
06
Нет единой точки отказа
Два почтовых шлюза с разделением по весу MX,
несколько авторитативных серверов, два контура размещения. Каждый элемент,
отказ которого остановил бы сервис, задублирован —
это и есть отсутствие SPOF.
Сценарий: отказ узла или площадки → сервис продолжает