Что такое 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.