Один и тот же IKEv2-идентификатор на двух iPhone? Они подключаются по очереди
Один профиль, скопированный на два устройства, даёт шлюзу одного peer вместо двух. Понаблюдайте, как таблица peer заполняется и пустеет, затем выдайте значение для каждого устройства.
Два телефона, один профиль и картина, которая кажется сверхъестественной, пока кто-нибудь не посмотрит на шлюз. Одно устройство держит туннель, второе подключается, и первое теряет его за секунды. Первое переподключается, второе отваливается. Винят экономию батареи, роуминг Wi-Fi и NAT оператора, а настоящая причина сидит в текстовом поле, скопированном вместе со всем остальным. IKEv2 идентифицирует peer по имени, и оба телефона предъявляют одно и то же имя.
Идентификатор — это ключ, под которым сервер хранит вас
Внутри обмена IKEv2 каждая сторона заявляет, кто она: инициатор отправляет локальный идентификатор, ответчик отвечает своим и также проверяет заявленную инициатором личность на соответствие политике. Шлюз хранит состояние по личности, а не по устройству, потому что устройство — не то, что он может увидеть. Поэтому два телефона с одним идентификатором приходят как один peer, и второй обмен должен перезаписать первый. Проблема проявляется только пока оба используются, поэтому тест с одним телефоном никогда её не воспроизводит.
Ничто из этого не ошибка клиента. Клиент отправил ровно то, что велел профиль.
Как коллизия выглядит со стороны шлюза
Смотрите на список peer, пока оба телефона бодрствуют и используются. Коллизия показывает одну запись, адрес которой меняется при смене телефонов, а счётчик активных сессий никогда не доходит до двух. Отключение по запросу выглядит иначе, и чтобы их различить, нужно одно наблюдение, а не теория.
| Observation | Shared identity | Idle teardown |
|---|---|---|
| Peer entries while both are awake | One, with a changing address | One per phone, or none |
| What triggers the drop | The other device connecting | Time without traffic |
| What restores it | The other device disconnecting | Any app needing the tunnel |
Запишите оба события с отметками времени, пока это происходит. Обрыв, совпадающий с подключением другого аппарата, указывает на идентификатор, а обрыв, приходящий через один интервал простоя после последнего пакета, — на таймер.
Откуда берутся дубликаты
Экспорт одной рабочей конфигурации и правка только адреса сервера создают второй файл, в котором всё ещё есть личность первого. Это обычный путь к такой неисправности, и обычно он случается при спешном подключении небольшой группы.
Названия полей позволяют легко это упустить. Удалённый идентификатор называет шлюз, которого ждёт телефон, и копировать его правильно. Локальный идентификатор называет этот аппарат для шлюза, и копирование этого значения — вся проблема.
Выдавайте значение для каждого устройства
Используйте что-то уникальное для аппарата и стабильное на протяжении всего срока его службы, например идентификатор устройства из инвентаризации или значение, которое ваша система управления генерирует при каждой регистрации. Метка отдела, имя общей сервисной учётной записи или адрес электронной почты пользователя конфликтуют, как только у этого человека появляется второе устройство.
Генерируйте полезную нагрузку для каждого устройства, а не распространяйте один файл. Записывайте, какое значение принадлежит какому аппарату, чтобы замена не восстановила старый профиль и не вернула новый телефон прямиком в ту же коллизию.
Проверьте и серверную сторону. Шлюз, сопоставляющий личность с фиксированным адресом туннеля, всё ещё может конфликтовать, когда два разных идентификатора получают одно и то же назначение, поэтому убедитесь, что в пуле есть место и назначения не закреплены за пользователем.
Проверьте при бодрствующих телефонах
Подключите первый, дойдите до частного ресурса, затем подключите второй и оставьте оба в покое на минуту. Обе сессии должны сохраниться, а список peer — показывать две личности. Затем заблокируйте и разблокируйте каждый телефон, чтобы подтвердить, что сценарий простоя по-прежнему ведёт себя правильно.
Если одна сессия всё ещё падает раз в день, когда больше ничего не подключается, личность больше не подозреваемый. Переходите к таймерам простоя и ограничениям сессий сервера, вместо того чтобы снова править профиль.