3x-ui Admin Guide
Теория VPN

Туннелирование и инкапсуляция

Теория VPN. Глава 3 из 38.

Туннелирование и инкапсуляция

Цель

Объяснить, как VPN и proxy-стек переносят трафик через промежуточную сеть и почему туннелирование не равно автоматической безопасности.

Теория

Туннелирование — это передача одного сетевого потока внутри другого. Исходный пакет или поток помещается в новый транспортный контекст, доставляется до удаленной точки и затем обрабатывается так, как будто он пришел через отдельный логический канал.

Инкапсуляция отвечает за упаковку данных, а защита канала — за конфиденциальность, целостность и проверку подлинности. В разных технологиях эти слои могут быть объединены или настраиваться отдельно.

История

Идея туннелирования появилась из необходимости соединять удаленные сети через общую инфраструктуру. Со временем к классическим site-to-site и remote-access сценариям добавились proxy-стек, TLS-обертки, транспорты поверх UDP, WebSocket, gRPC и QUIC-подобные подходы.

Архитектура

Упрощенный путь трафика выглядит так:

1. Приложение создает исходный трафик. 2. Клиент VPN или proxy перехватывает этот трафик. 3. Данные упаковываются в формат выбранного протокола. 4. Внешний транспорт доставляет поток до сервера. 5. Сервер распаковывает данные и отправляет их дальше по правилам маршрутизации.

В Xray-подобных системах этот путь часто описывается как цепочка inbound, routing и outbound.

Туннелирование и инкапсуляция
Туннелирование и инкапсуляция

Настройка

При проектировании туннеля нужно определить:

  • какой трафик должен попадать в туннель;
  • какой транспорт будет использоваться;
  • где завершается защищенный канал;
  • как сервер решает, куда отправлять распакованный трафик;
  • какие данные должны оставаться вне туннеля.

Разбор параметров

  • encapsulation — способ упаковки исходных данных.
  • outer transport — внешний транспорт, видимый сети между клиентом и сервером.
  • inner traffic — полезная нагрузка внутри туннеля.
  • mtu — эффективный размер пакета с учетом накладных расходов.
  • keepalive — механизм поддержания соединения через NAT и firewall.
  • multiplexing — объединение нескольких логических потоков внутри одного

соединения, если поддерживается стеком.

Практический пример: если HTTP-запрос приложения отправляется через защищенный туннель, промежуточная сеть видит внешний транспорт до VPN-сервера, но не должна видеть внутренний HTTP-поток при корректной криптографической защите.

СлойЧто видит клиентЧто видит промежуточная сетьЧто видит сервер
Внутренний трафикИсходный запрос приложенияНе должен быть доступенРаспакованный поток
Внешний транспортСоединение до VPN-сервераАдрес, порт, транспортВходящее соединение
ЗащитаНастройки клиентаМетаданные соединенияПроверка клиента

Типовые ошибки

  • считать, что сам факт туннеля всегда скрывает содержимое;
  • не учитывать накладные расходы и проблемы MTU;
  • отправлять DNS вне туннеля при ожидании полной маршрутизации;
  • использовать TCP-поверх-TCP без понимания влияния на задержки;
  • забывать, что firewall видит внешний транспорт, а не внутренний трафик.

Безопасность

Безопасность туннеля зависит от криптографического слоя, аутентификации, актуальности реализации и защиты ключей. Если трафик только инкапсулирован, но не защищен, промежуточная сеть может видеть или изменять данные.

Чек-лист

  • Определен внутренний трафик туннеля.
  • Определен внешний транспорт.
  • Проверена защита канала.
  • Учтены MTU и накладные расходы.
  • Проверены DNS и маршрутизация.
  • Описаны ограничения для firewall и NAT.