Failover и регенерация
Содержание
Что считается компрометацией ячейки #
Признаки компрометации:
- Клиенты ячейки массово теряют подключение.
- Core-ноды ячейки сохраняют heartbeat с управляющим кластером (phone-home работает).
- Трафик Entry → Core для данного SNI-домена прерывается.
Переключение клиентов (failover) #
Переключение происходит через subscription-механизм — прозрачно для пользователя.
Клиент получает новую конфигурацию при плановом обновлении подписки. В случае экстренной необходимости — обновление можно запустить вручную в клиентском приложении.
Резервный доступ и квоты #
Живые ячейки предоставляют участникам скомпрометированной ячейки временный резервный выход. Каждый участник самостоятельно устанавливает квоту трафика, которую он готов выделить другим участникам сети.
Учёт ведётся управляющим кластером. Резервный доступ предоставляется в пределах установленных квот.
Процесс регенерации ячейки #
Шаги подробно #
1. Фиксация инцидента Управляющий кластер обнаруживает массовую потерю клиентских соединений в ячейке X. Heartbeat от Core-нод сохраняется — компрометация именно на уровне SNI-домена.
2. Уведомление Telegram-бот уведомляет участников ячейки X об инциденте и предоставляет инструкции.
3. Временный резервный доступ Управляющий кластер переключает клиентов ячейки X на резервные ячейки через subscription-сервис. Пользователи сохраняют доступ к сети.
4. Подготовка новой инфраструктуры Каждый участник ячейки X самостоятельно:
- Арендует новый сервер (в новой локации или у нового провайдера).
- Получает новый join-токен от администратора.
- Запускает контейнер, проходит онбординг.
5. Формирование новой ячейки Администратор выбирает новый SNI-домен и объединяет зарегистрированные Core-ноды в новую ячейку X'.
6. Миграция клиентов Subscription-сервис обновляет конфигурации клиентов ячейки X → конфигурации ячейки X’. Пользователи получают обновление при плановом обновлении подписки.
7. Вывод старой инфраструктуры Старые Core-ноды выводятся из оборота. Их сертификаты отзываются. Старый SNI-домен больше не используется.
Устойчивость управляющего кластера #
Управляющий кластер остаётся доступным на протяжении всего процесса регенерации — он не входит в скомпрометированную ячейку. Три сервера кластера с HA etcd обеспечивают работу subscription-сервиса и Telegram-бота даже при потере одного сервера.
Сводная таблица #
| Этап | Кто действует | Инструмент |
|---|---|---|
| Обнаружение | Управляющий кластер | Мониторинг heartbeat |
| Уведомление | Telegram-бот | Автоматически |
| Переключение клиентов | Subscription-сервис | Автоматически |
| Новые серверы | Участники | Docker + join-токен |
| Новая ячейка | Администратор | Управляющий кластер |
| Миграция | Subscription-сервис | Автоматически |