Настройка бесшовного роуминга IPsec IKEv2 с протоколом MOBIKE (RFC 4555)
- Обрыв VPN-сессии при переключении клиентского устройства с офисного Wi-Fi на LTE/5G или смене интернет-провайдера.
- Повторный длительный цикл полной реаутентификации (IKE_SA_INIT) и ввод паролей при каждом изменении локального IP.
- Зависание телефонных звонков (VoIP/SIP) и терминальных сессий RDP при перемещении сотрудников.
- В логах strongSwan/ASA фиксируется:
peer changed IP but MOBIKE unsupported, deleting SA.
1. Архитектура протокола MOBIKE (IKEv2 Mobility and Multihoming)
MOBIKE (RFC 4555) расширяет спецификацию IKEv2, позволяя мобильному клиенту сообщать шлюзу безопасности об изменении своего внешнего IP-адреса с помощью сообщений INFORMATIONAL (UPDATE_SA_ADDRESSES). Шлюз обновляет конечные точки существующих Security Associations (IPsec SA) без повторного прохождения криптографического рукопожатия Phase 1.
2. Конфигурация strongSwan на стороне VPN-шлюза
В конфигурационном файле /etc/swanctl/swanctl.conf:
connections {
RoadWarrior-IKEv2 {
version = 2
# Включение поддержки расширения MOBIKE
mobike = yes
dpd_delay = 10s
dpd_timeout = 30s
pools = pool-ipv4
local {
auth = pubkey
certs = serverCert.pem
id = vpn.company.com
}
remote {
auth = eap-mschapv2
eap_id = %any
}
children {
net-access {
local_ts = 0.0.0.0/0
# Принудительная UDP-инкапсуляция для быстрой смены NAT-портов
encap = yes
dpd_action = clear
}
}
}
}
pools {
pool-ipv4 {
addrs = 10.200.0.0/24
dns = 1.1.1.1, 8.8.8.8
}
}3. Применение и перезагрузка политик
swanctl --load-all
swanctl --list-conns4. Конфигурация Cisco FlexVPN / IOS-XE
crypto ikev2 profile MOBIKE_PROFILE
match identity remote any
authentication remote eap-mschapv2
authentication local rsa-sig
pki trustpoint CA_TRUST
! Включение поддержки мобильности клиентов
mobike
dpd 10 30 on-demand
virtual-template 15. Трассировка смены адреса клиента в реальном времени
# Мониторинг журнала strongSwan
journalctl -u strongswan-starter -f | grep -i "MOBIKE"Успешный лог содержит: received INFORMATIONAL request ... updating local/remote address of IKE_SA to 198.51.100.45[4500].
Частые вопросы (FAQ)
Поддерживается ли протокол MOBIKE в устаревшем IPsec IKEv1?
Нет. Протокол MOBIKE (RFC 4555) спроектирован исключительно для IKEv2. В IKEv1 смена IP-адреса всегда приводит к полному уничтожению и пересозданию всех SA.
Поддерживают ли нативные клиенты Windows 10/11 и macOS протокол MOBIKE?
macOS, iOS, Android (через strongSwan App) и Windows 10/11 (через встроенный клиент IKEv2) нативно поддерживают MOBIKE при условии включенной опции на стороне сервера.
Что происходит с открытыми TCP-соединениями при смене IP через MOBIKE?
Так как внутренний IP-адрес виртуального интерфейса клиента (Virtual IP) остается неизменным, сессии TCP (SSH, RDP, базы данных) не разрываются, если время переключения сети меньше таймаута TCP Retransmit.
Может ли MOBIKE работать, если меняется IP-адрес самого сервера?
Да, MOBIKE поддерживает сценарий multihoming, при котором сервер сообщает клиенту список своих дополнительных резервных IP-адресов (Additional Address List).