Перейти к содержанию

Обзор

·2 минуты·
Сеть 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-нода сама инициирует подключение к управляющему кластеру
mTLSMutual TLS — двусторонняя аутентификация по сертификатам
VLESSЛегковесный прокси-протокол семейства Xray
gRPCRPC-фреймворк на базе HTTP/2
DPIDeep Packet Inspection — глубокий анализ сетевых пакетов
Join-токенОдноразовый секрет для регистрации нового участника в сети