Как MOBIKE сохраняет VPN IKEv2 при смене сети
MOBIKE обновляет поддерживаемое соединение IKEv2, когда устройство меняет сеть. Маршрутизация, фильтрация и восстановление сеанса приложения всё равно должны работать.
Телефон покидает Wi-Fi и подключается к сотовой сети, ноутбук переходит с Ethernet на точку доступа, и туннель IKEv2 либо выживает, либо нет. MOBIKE — это расширение, которое позволяет ему выжить, сообщая удалённой стороне, что адрес источника изменился, вместо того чтобы начинать заново. Чего оно не делает — не сохраняет работу каждого приложения во время смены. Это два утверждения, и второе обычно и имеют в виду.
Проживайте переход поэтапно, потому что каждый этап отказывает по-своему.
Что на самом деле меняет обновление
Пока ассоциация безопасности ещё действительна, инициатор узнаёт свой новый адрес и отправляет обновление ответчику, который затем использует этот адрес для той же ассоциации. Параметры безопасности не согласуются заново с нуля. В этом вся выгода: ни нового круга аутентификации, ни нового обмена ключами, ни запроса пользователю. Это также значит, что сохранившееся состояние по-прежнему принадлежит старому сеансу.
MOBIKE может также перевести трафик в инкапсуляцию UDP, поэтому работающий туннель иногда начинает использовать порт 4500 после смены сети. Этот переход сам по себе не доказывает, что NAT обнаружен, хотя оба часто появляются вместе.
Включает ли это ваш профиль на самом деле
Обе стороны должны поддерживать расширение, и развёртывание должно его включить. В strongSwan поведение настраивается для каждого соединения, а изменения интерфейса или маршрута могут запускать поиск пути и обновление при необходимости. Проверьте фактические настройки соединения, вместо того чтобы предполагать, что каждый профиль IKEv2 его включает. Профиль, скопированный из руководства, которое старше этой функции, — частая причина этого.
Согласованное состояние на обоих концах является авторитетом, а не документация семейства продуктов.
Проживайте переход поэтапно
Запишите состояние приложения перед сменой сети. Затем смените её и запишите состояние клиента и сервера после этого. Отсутствующий адрес, недостижимый партнёр и приложение, которому нужно самому переподключить свой сеанс, — три разных исхода. Только первые два относятся к уровню VPN; третий относится к протоколу, на котором говорит приложение.
Сравните переключение сети со стационарным тестом, чтобы знать, какое событие вызывает проблему. Измерение пропускной способности в конечной сети не может воспроизвести переход. Оно измеряет пункт назначения, а не путь.
Разделите уровни отказа
Долгоживущий сеанс TCP может отказать по причинам вне обмена IKEv2. Новая сеть может фильтровать, разрешать имена или маршрутизировать иначе. Адрес туннеля может вообще не измениться, пока путь под ним меняется. Поэтому переподключение приложения может исправить то, что VPN никогда не ломала.
Сохраняйте политику блокировки на месте и во время восстановления.
Автоматическая мобильность и правило, запрещающее прямой трафик, — разные средства контроля, и отключать второе, чтобы работало первое, — плохой обмен. Если обновление мобильности не удаётся, блокировка должна удержаться, а не пропускать трафик в обход туннеля.
Что записывать, когда это повторяется
Сохраняйте отметки времени и оба значения адресов с обеих сторон. Эта запись показывает, завершилось ли обновление до того, как приложение потеряло контакт, и в этом разница между ошибкой мобильности и тайм-аутом приложения. Затем сравните направление переключения: уход с Wi-Fi в сотовую сеть не симметричен обратному. Одно направление может работать, пока другое отказывает.
Эта асимметрия достаточно распространена, чтобы быть первым, что стоит проверить.
С записью в руках инцидент перестаёт быть очередной отключённой иконкой и становится одним событием в последовательности с известным владельцем. И это всё, что может честно обещать проход.