Плоскость данных
Содержание
внутри региона"] Entry["Entry-нода
внутри региона"] Core["Core-нода
вне региона"] Internet["Интернет"] Client -->|"VLESS + gRPC
TLS 1.3"| Entry Entry -->|"VLESS + gRPC
TLS 1.3"| Core Core --> Internet style Client fill:#64748b,color:#fff,stroke:#475569 style Entry fill:#0891b2,color:#fff,stroke:#0e7490 style Core fill:#1d4ed8,color:#fff,stroke:#1e40af style Internet fill:#374151,color:#fff,stroke:#1f2937
Топология «ядро-периферия» #
Ядро сети образовано Core-нодами, которые связаны между собой (mesh). Периферия — Entry-ноды — подключается к ядру, но не связана между собой.
Для передачи данных Entry-нода может быть связана с несколькими Core-нодами, но лишь с небольшой частью от общего числа Core-нод. Это ограничение реализует принцип минимальной связности: при компрометации Entry-ноды раскрывается лишь малая часть ядра сети.
Маскировка трафика #
На каждом участке сети трафик неотличим от легитимной HTTPS-активности:
| Участок | Что видит наблюдатель | Реальность |
|---|---|---|
| Клиент → Entry | HTTPS-запросы к обычному сайту | VPN-туннель (VLESS + gRPC) |
| Entry → Core | gRPC-вызовы к API микросервисов | VPN-туннель (VLESS + gRPC) |
На обоих участках:
- TLS 1.3 handshake — стандартный, неотличимый от обычного;
- валидный сертификат Let’s Encrypt;
- при обращении без VLESS-заголовков сервер отдает сайт-прикрытие (HTTP 200 OK).
Защита от активного зондирования #
На каждом узле сети в плоскости данных сервер Xray расположен за веб-сервером. При обращении на любой URL без правильных VLESS-заголовков веб-сервер возвращает сайт-прикрытие. Наблюдатель не может отличить «секретный путь» от «обычной страницы» — нет характерных ошибок, редиректов или отказов.
Протокольный стек #
Let's Encrypt"] gRPC["gRPC (HTTP/2)"] VLESS["VLESS"] end TLS --- gRPC gRPC --- VLESS style TLS fill:#7c3aed,color:#fff,stroke:#6d28d9 style gRPC fill:#2563eb,color:#fff,stroke:#1d4ed8 style VLESS fill:#1d4ed8,color:#fff,stroke:#1e40af
| Уровень | Технология | Назначение |
|---|---|---|
| Шифрование | TLS 1.3 | Шифрование канала, валидный сертификат |
| Транспорт | gRPC (HTTP/2) | Мультиплексирование, маскировка под API |
| Протокол | VLESS | Легковесный прокси-протокол |
Рассмотрев альтернативы, gRPC выбран как единственный транспорт:
- устойчив к обнаружению (в отличие от XHTTP);
- высокая производительность (в отличие от WebSocket);
- трафик идентичен легитимным gRPC API микросервисов.
Динамическая ротация путей #
Core-ноды периодически генерируют новые случайные gRPC-пути на участке Entry → Core. Это затрудняет статистический анализ трафика. Клиентские пути при этом не затрагиваются.