Gymterview
middle

Что такое VPN? Какие типы VPN существуют?

VPN (Virtual Private Network) — технология, создающая зашифрованный туннель между устройствами через публичную сеть (Интернет), позволяя передавать данные так, будто устройства находятся в одной локальной сети, даже если они физически разнесены.

Аналогия из жизни: VPN — это закрытый подземный тоннель между двумя зданиями, проложенный под оживлённой улицей. Снаружи никто не видит, что вы несёте по тоннелю, и даже не знает, что вы идёте именно в то здание.

Зачем нужен VPN

  • Безопасность — шифрование всего трафика при использовании публичного Wi-Fi
  • Удалённый доступ — подключение к корпоративной сети из дома (Remote Access VPN)
  • Объединение офисов — Site-to-Site VPN между филиалами (одна виртуальная сеть)
  • Обход ограничений — доступ к ресурсам, ограниченным по географии
  • Конфиденциальность — скрытие реального IP-адреса и активности от провайдера

Принцип работы (туннелирование)

Пример
Исходный пакет:
[IP-заголовок (src: 192.168.1.10, dst: 10.0.0.5)][Данные]

         ↓ VPN: шифрование + инкапсуляция

VPN-пакет:
[Внешний IP (src: 203.0.113.5, dst: 198.51.100.1)][VPN-заголовок][Зашифрованный исходный пакет]

Исходный пакет полностью шифруется и помещается внутрь нового пакета с новыми IP-заголовками. Промежуточные маршрутизаторы видят только внешние IP-адреса и не могут прочитать содержимое.

Типы VPN по назначению

Тип Описание Пример
Remote Access VPN Отдельный пользователь подключается к корпоративной сети Сотрудник из дома → офис
Site-to-Site VPN Два офиса/сети соединяются постоянным туннелем Офис в Москве ↔ Офис в Питере
Client-to-Client VPN Два устройства соединяются напрямую через VPN P2P-соединение

Протоколы VPN

IPSec (Internet Protocol Security):

  • Работает на сетевом уровне (L3)
  • Два режима: транспортный (шифрует только данные) и туннельный (шифрует весь пакет)
  • Протоколы: ESP (шифрование + аутентификация), AH (только аутентификация)
  • IKE (Internet Key Exchange) для согласования ключей
  • Широко используется для Site-to-Site VPN в корпоративных сетях
  • Может быть сложен в настройке и проблематичен за NAT

OpenVPN:

  • Open-source решение
  • Работает поверх TCP или UDP (обычно UDP, порт 1194)
  • Использует TLS для обмена ключами, OpenSSL для шифрования
  • Гибкая конфигурация, кроссплатформенность
  • Хорошо проходит через NAT и firewall (в том числе через TCP/443, маскируясь под HTTPS)

WireGuard:

  • Современный, минималистичный протокол (~4000 строк кода ядра vs ~100 000 у OpenVPN)
  • Работает поверх UDP
  • Использует современную криптографию: Curve25519, ChaCha20, Poly1305, BLAKE2s
  • Высокая производительность и низкая задержка
  • Встроен в ядро Linux (с версии 5.6)
  • Проще в настройке, чем IPSec и OpenVPN
  • Нет понятия «соединение» — stateless по дизайну (Cryptokey Routing)

Сравнение протоколов VPN

Свойство IPSec OpenVPN WireGuard
Уровень OSI L3 L3/L4 (user space) L3 (kernel)
Скорость Высокая Средняя Очень высокая
Код Сложный ~100K строк ~4K строк
Настройка Сложная Средняя Простая
NAT traversal Проблематичен Хорошо Хорошо
Аудит Сложен из-за объёма Средний Простой

Для Java-разработчика

  • При работе через VPN приложение подключается к ресурсам (БД, микросервисы) по их внутренним (приватным) IP-адресам как будто они в одной сети
  • VPN может влиять на MTU — из-за дополнительных заголовков пакеты могут фрагментироваться. При проблемах с большими пакетами стоит проверить MTU
  • В Kubernetes часто используются сетевые решения (CNI-плагины: Calico, Flannel, Cilium), работающие по принципу VPN/overlay-сети
  • При развёртывании на AWS/GCP VPN используется для связи on-premise инфраструктуры с облаком (AWS VPN Gateway, GCP Cloud VPN)

Вывод

VPN — это технология создания защищённых туннелей через публичные сети. Выбор протокола зависит от требований: IPSec — для корпоративных Site-to-Site, OpenVPN — для универсального Remote Access, WireGuard — для максимальной производительности и простоты.

На собеседовании: объясните принцип туннелирования (инкапсуляция + шифрование) и назовите основные протоколы. Часто спрашивают в контексте DevOps: как организован доступ к закрытым ресурсам (VPN + bastion host) и как работает overlay-сеть в Kubernetes.