Обзор
Содержание
Сеть Sigil Gate состоит из трёх независимых компонентов: управляющего кластера, входного слоя и выходного слоя. Компоненты взаимодействуют только через сертификаты — никакого сетевого доверия по умолчанию.
Компоненты сети #
| Компонент | Роль | Плоскость | Владелец |
|---|---|---|---|
| Управляющий кластер | CA, etcd, сервисная инфраструктура | Управление | Администратор сети |
| Входной слой | Приём клиентских подключений, роутинг на Core | Данные | Участники (K8s worker nodes) |
| Выходной слой | Выход в интернет, phone-home регистрация | Данные | Участники (собственные серверы) |
graph TD
Mgmt["Управляющий кластер\n(K8s + etcd + CA)"]
Entry["Входной слой\n(K8s кластер)"]
Core1["Core-нода A\n(участник 1)"]
Core2["Core-нода B\n(участник 2)"]
Core3["Core-нода C\n(участник 3)"]
Client["Клиент"]
Internet["Интернет"]
Client -->|"VLESS + gRPC\nTLS 1.3"| Entry
Entry -->|"mTLS"| Core1
Entry -->|"mTLS"| Core2
Entry -->|"mTLS"| Core3
Core1 --> Internet
Core2 --> Internet
Core3 --> Internet
Mgmt -->|"K8s"| Entry
Core1 -->|"phone-home"| Mgmt
Core2 -->|"phone-home"| Mgmt
Core3 -->|"phone-home"| Mgmt
style Mgmt fill:#7c3aed,color:#fff,stroke:#6d28d9
style Entry fill:#0891b2,color:#fff,stroke:#0e7490
style Core1 fill:#1d4ed8,color:#fff,stroke:#1e40af
style Core2 fill:#1d4ed8,color:#fff,stroke:#1e40af
style Core3 fill:#1d4ed8,color:#fff,stroke:#1e40af
style Client fill:#64748b,color:#fff,stroke:#475569
style Internet fill:#374151,color:#fff,stroke:#1f2937
Принципы #
- Нулевое доверие — узлы не доверяют друг другу по умолчанию. Всё взаимодействие через mTLS с сертификатами от единственного CA — управляющего кластера.
- Федеративность — выходной слой состоит из независимых узлов, принадлежащих разным участникам. Сеть масштабируется за счет участников без увеличения операционной нагрузки на администратора.
- Независимость слоёв — входной и выходной слои масштабируются независимо. Количество входных и выходных узлов не обязано совпадать.
- Устойчивость к DPI — трафик на каждом участке сети неотличим от легитимной HTTPS-активности.
- Ячеистая топология — сеть разделена на ячейки. Компрометация ячейки изолирована и не затрагивает остальные.
Путь трафика #
Клиент → Entry-под (K8s) → Core-нода (участника) → Интернет
Входной слой принимает соединение, определяет целевую Core-ноду клиента по данным из etcd и проксирует трафик через mTLS. Выходная нода направляет трафик в интернет от своего IP.
Глоссарий #
| Термин | Определение |
|---|---|
| Управляющий кластер | Три сервера с K8s control plane, HA etcd и CA; центр управления сетью |
| Входной слой | K8s-кластер из Entry-подов; принимает клиентские подключения |
| Core-нода | Сервер участника; выходная точка в интернет |
| Ячейка | Группа Core-нод, разделяющих один SNI-домен |
| Phone-home | Модель, при которой Core-нода сама инициирует подключение к управляющему кластеру |
| mTLS | Mutual TLS — двусторонняя аутентификация по сертификатам |
| VLESS | Легковесный прокси-протокол семейства Xray |
| gRPC | RPC-фреймворк на базе HTTP/2 |
| DPI | Deep Packet Inspection — глубокий анализ сетевых пакетов |
| Join-токен | Одноразовый секрет для регистрации нового участника в сети |