Метафора и реальность
"Туннель" — образ. Технически — это encapsulation: пакет оборачивается в пакет. Внешний пакет ходит по обычной сети, внутренний скрыт от наблюдателей и доставляется только на ВПН-сервер, где разворачивается обратно.
Как работает encapsulation
Возьмём пример. Ты пингуешь google.com:
- Оригинальный пакет: source IP — твой телефон, destination IP — google.com, payload — ICMP ping.
- ВПН шифрует payload + headers: внутренний пакет (включая адреса) шифруется.
- Создаётся новый внешний пакет: source IP — твой телефон, destination IP — ВПН-сервер, payload — шифрованный оригинал.
- Внешний пакет идёт по сети: провайдер видит "трафик от тебя к ВПН-серверу", не к google.com.
- ВПН-сервер получает внешний: расшифровывает payload, достаёт оригинальный пакет.
- Сервер форвардит оригинал: меняет source IP на свой, отправляет в публичный интернет к google.com.
- Ответ возвращается: google.com шлёт ответ на IP ВПН-сервера. Сервер пакует обратно и шлёт тебе через туннель.
Режимы туннеля
Full tunnel (по умолчанию)
Весь сетевой трафик устройства идёт через ВПН-туннель. Браузер, мессенджеры, фоновые синки — всё. Максимальная защита, максимальная простота.
Split tunnel
Только часть трафика через ВПН. Можно настроить per-app (на Android — конкретные приложения через ВПН, остальные напрямую) или per-destination (некоторые сайты через ВПН, остальные мимо). См. детали.
Виды туннелей по слою OSI
- Layer 2 (link layer): туннель проходит Ethernet-фреймы. Редко для consumer VPN, чаще для site-to-site.
- Layer 3 (network layer): туннель проходит IP-пакеты. Стандарт для большинства VPN (WireGuard, OpenVPN TUN-режим, IPsec).
- Layer 4-7 (application): SSL/TLS-уровневые туннели типа OpenVPN TAP. Реже встречаются.
MTU и фрагментация
Любой Ethernet-фрейм имеет максимум 1500 байт (MTU). Когда ВПН добавляет свои headers (~80 байт), завёрнутый пакет может превысить лимит — придётся фрагментировать.
Решение: ВПН-клиенты понижают MTU интерфейса (типично до 1380-1420 байт) чтобы encapsulated пакеты всё ещё влезали. Большинство клиентов делают это автоматически.