Один ноутбук держит рабочий туннель через офисный маршрутизатор. Второй ноутбук в той же комнате подключается, и первый отваливается. Если это весь симптом, на столе по-прежнему три разные причины, и то, какое исправление применимо, зависит от вещей, которые вы ещё не измерили. Общий маршрутизатор здесь важен, но он не виноват автоматически, и протокол тоже.

Три причины, которые с дивана выглядят одинаково

Первый кандидат — то, как маршрутизатор обходится с IPsec. Дешёвые потребительские маршрутизаторы часто рекламируют проброс и реализуют его для одного клиента за раз, потому что механизм отслеживает одного партнёра и не может разделить два ноутбука за одним публичным адресом. Симптом ровно такой, какого вы ждёте: побеждает более новая сессия.

Вторая — учётная запись. Многие серверы VPN разрешают одну сессию на личность и разрывают более старую, когда те же учётные данные аутентифицируются снова; это решение политики на шлюзе, и к вашему маршрутизатору оно отношения не имеет. Поищите это явное сообщение в журнале сервера до покупки оборудования.

Третья — простая ошибка конфигурации: два профиля указывают на одну личность, у одного из них устаревший общий ключ или сертификат, который шлюз больше не принимает. Обычно это проявляется как неудачное второе подключение, а не как отвал первого, так что форма сбоя уже кое-что вам говорит.

Что L2TP/IPsec на самом деле отправляет через маршрутизатор

IKE работает поверх UDP 500. Путь данных — ESP, это IP-протокол 50, и он вообще не несёт портов TCP или UDP. Поэтому маршрутизатору, который понимает только порты, не за что зацепиться, и именно поэтому существует механизм проброса.

С обходом NAT ESP инкапсулируется внутрь UDP 4500. Теперь у маршрутизатора есть исходный порт для сопоставления, и каждый ноутбук получает собственный перевод, так что шлюз может различить два потока. Именно этот механизм вообще позволяет работать нескольким клиентам за одним адресом.

Различие важно, когда вы читаете список функций маршрутизатора. Этикетка с надписью «проброс IPsec» говорит, что у производителя есть какой-то механизм; она не говорит, поддерживает ли он несколько клиентов и как ведёт себя, когда приходит второй.

Документация strongSwan об обходе NAT описывает саму инкапсуляцию, и это та часть, которую можно проверить по записям пакетов, а не по маркетинговой странице.

Как понять, какая причина у вас на самом деле

Сделайте четыре наблюдения и запишите каждый результат. Каждый ноутбук отдельно: работает ли и как долго? Оба одновременно: какой выживает? Второй ноутбук на телефонной точке доступа: держится ли первый? И на шлюзе: журнал сервера показывает новую сессию, заменяющую старую, или показывает одного клиента, который просто замолкает?

Эти ответы чисто разделяют кандидатов. Сообщение о замене в журнале сервера указывает на политику личности. Клиент, который перестаёт получать трафик, пока маршрутизатор показывает новый перевод, указывает на маршрутизатор. Два клиента, которые оба не завершают IKE, указывают на конфигурацию или учётные данные.

Держите одни и те же профили всё время. Смена профиля между тестами означает, что вы измеряете две переменные сразу, и вывод будет неверным так, что это очень трудно заметить.

Снимайте на маршрутизаторе, если он это поддерживает, или на одном ноутбуке, пока другой подключается. Видеть, как пакеты второго клиента появляются, пока пакеты первого останавливаются, — доказательство сильнее любой иконки подключения.

Если ограничение — маршрутизатор

Используйте документированную многоклиентскую конфигурацию производителя, если она есть, или замените устройство на такое, чья документация говорит, что вам нужно. Это некрасивый ответ и единственный, который переживает обновление прошивки.

Что не работает — добавлять два одинаковых входящих проброса на два разных ноутбука. Проброс говорит маршрутизатору, куда отправлять входящий трафик; он не говорит, к какому из двух активных потоков относится пакет, и эта неоднозначность и есть ошибка.

Если маршрутизатор нельзя заменить, поставьте одного клиента за другой путь. Телефонная точка доступа — плохое постоянное решение и вполне хорошее диагностическое.

Если ограничение — шлюз

Заведите отдельные личности для отдельных людей. Одна общая учётная запись, которой пользуются два ноутбука, — это та схема, которая порождает этот симптом на серверах, настроенных на одну сессию, и никакая локальная конфигурация не исправит решение, принятое на другом конце.

Спросите владельца шлюза, какая политика действует: одна сессия на учётную запись, одна на сертификат или никаких ограничений. Их ответ решает, нужны ли вам новые учётные данные или новый маршрутизатор.

Проверка — это та часть, которую люди пропускают. Пропустите полезный трафик с обоих клиентов дольше интервала, который раньше сбоил, потому что два успешных входа доказывают только, что аутентификация сработала по одному разу у каждого.

Похожие статьи