IKEv2 (Internet Key Exchange version 2) — протокол управления ключами для IPsec-туннелей, стандартизированный в RFC 7296 (2014). Выполняет три задачи: аутентификацию участников, согласование криптографических параметров (шифр, хеш, DH-группа) и управление Security Association (SA) — логическим описанием параметров зашифрованного соединения.
Как работает IKEv2
Соединение устанавливается в две фазы:
- IKE_SA_INIT — клиент и сервер согласовывают параметры IKE SA: алгоритм Diffie-Hellman, шифр (AES-256-GCM), хеш (SHA-384), PRF. Обмен занимает 2 пакета в каждую сторону.
- IKE_AUTH — стороны аутентифицируются (через сертификат X.509 или общий ключ PSK), создают дочернюю IPsec SA для передачи данных. Опционально — согласование трафик-селекторов (какие адреса/порты шифровать).
Ключевые особенности IKEv2:
- MOBIKE (RFC 4555) — переключение между сетевыми интерфейсами без разрыва VPN-туннеля; критически важно для мобильных устройств, меняющих Wi-Fi на LTE.
- EAP (Extensible Authentication Protocol) — поддержка аутентификации через пароль, токены, сертификаты.
- Dead Peer Detection (DPD) — автоматическое обнаружение разрыва туннеля и восстановление соединения.
История
IKEv1 стандартизирован в RFC 2409 (1998) как часть IPsec. Имел два режима (Main и Aggressive), что приводило к путанице в реализациях. IKEv2 разработан рабочей группой IETF IPsecME как полная замена IKEv1 — RFC 4306 опубликован в 2005 году, обновлён до RFC 7296 в 2014-м. Современные ОС (Windows 7+, iOS 9+, Android 11+) поддерживают IKEv2 нативно.
IKEv2 и VPN-протоколы
| Протокол | Основа | Скорость | Поддержка ОС |
|---|---|---|---|
| IKEv2/IPsec | IPsec | Высокая | Нативно: Win, iOS, Android |
| OpenVPN | TLS/SSL | Средняя | Требует клиента |
| WireGuard | ChaCha20 | Очень высокая | Linux ядро 5.6+ |
| L2TP/IPsec | IPsec | Средняя | Устаревает |
Применение на хостинге
IKEv2 — распространённый выбор для корпоративных VPN-шлюзов на выделенных серверах. Популярные серверные реализации: strongSwan (Linux, open-source), Libreswan, Windows Server RRAS. strongSwan 6.x поддерживает квантово-устойчивые алгоритмы (Kyber512) для post-quantum IPsec. На VPS с Linux IKEv2 через strongSwan разворачивается за 15–30 минут по официальной документации.
IKEv2 в деталях: фазы согласования
IKEv2 работает в две фазы, используя UDP-порт 500 (и 4500 при NAT). IKE_SA_INIT — стороны обмениваются криптографическими параметрами через алгоритм Диффи-Хеллмана и создают защищённый канал. IKE_AUTH — стороны аутентифицируются (сертификатами X.509 или PSK — предварительно согласованным ключом) и создают первый CHILD_SA для трафика IPsec. Всё согласование занимает 2 сообщения туда-обратно против 6 у IKEv1.
CHILD_SA — дочерние ассоциации безопасности для фактического трафика. Один IKE_SA может иметь несколько CHILD_SA. IPsec шифрует трафик в режиме ESP (Encapsulating Security Payload) или AH (Authentication Header). ESP — шифрование + аутентификация; AH — только аутентификация без шифрования.
IKEv2 и MOBIKE
MOBIKE (Mobility and Multihoming Protocol, RFC 4555) — расширение IKEv2, позволяющее сохранять VPN-туннель при смене IP-адреса клиента. Это критично для мобильных устройств: переход с Wi-Fi на мобильный интернет не разрывает туннель. По этой причине IKEv2/IPsec — стандарт для корпоративных мобильных VPN (Cisco AnyConnect, strongSwan, Windows Built-in VPN).
Настройка IKEv2-сервера на Linux
strongSwan — наиболее распространённая open-source реализация IKEv2 для Linux. Конфигурируется через /etc/swanctl/swanctl.conf (в strongSwan 5.7+) или устаревший ipsec.conf. Сертификаты: Let's Encrypt или самоподписанный CA через strongswan pki. Автоматическая установка на Ubuntu через скрипт hwdsl2/setup-ipsec-vpn занимает 5 минут.
IKEv2 vs OpenVPN vs WireGuard
| Протокол | UDP-порт | Скорость | NAT-traversal | Мобильность |
|---|---|---|---|---|
| IKEv2/IPsec | 500, 4500 | Высокая (AES-NI) | Да (4500) | MOBIKE |
| OpenVPN | Настраиваемый | Средняя | Да | Нет |
| WireGuard | 51820 | Высокая | Ограниченно | Переподключение |