L2TP/IPsec подключается в одной сети и уходит в тайм-аут в другой
Тот же ноутбук, тот же профиль, другая сеть. Сравните этап IPsec, глубину NAT и поведение помощника, прежде чем трогать учётные данные.
Тот же ноутбук, тот же профиль и тот же пароль работают в одном здании и не работают в другом. Это сравнение — самое полезное доказательство в заявке, и обычно его первым и отбрасывают. Между двумя сетями доступа обмен проходит через другое преобразование адресов, другие фильтры и другие помощники маршрутизатора. Оставить клиент неизменным и менять только сеть — это способ понять, что из этого имеет значение.
Зафиксируйте клиент, прежде чем сравнивать сети
Ничего не меняйте на устройстве, пока не запишете работающий случай: версию клиента, содержимое профиля, имя сервера и время успешного подключения. Затем воспроизведите сбой во второй сети в той же сессии, чтобы состояние клиента было как можно более одинаковым. Профиль, отредактированный между двумя попытками, обнуляет всё сравнение. Цель — одна переменная, и эта переменная — сеть.
Сначала подтвердите обычный доступ в интернет в сбойной сети, включая гостевой портал, если он есть. Портал, который так и не был пройден, даёт тайм-аут, выглядящий точно как отфильтрованный туннель, и такая проверка занимает минуту.
Четыре этапа, четыре разных сообщения об ошибке
Подключение L2TP/IPsec проходит четыре этапа, и RFC 3193 описывает схему, которая связывает первые два. Согласование IKE — это место, где отфильтрованный путь даёт тихий тайм-аут. Аутентификация IPsec — это место, где несовпадение сертификата или предварительно общего ключа даёт вместо этого явный отказ. Установка туннеля L2TP — это место, где уже установленная ассоциация безопасности всё равно может никуда не привести, а вход PPP — это место, где неверные учётные данные наконец дают видимый сбой. Читайте журнал того этапа, который остановился, а не последней напечатанной строки.
journalctl -u strongswan --since '-5 min' | tail -20
journalctl -u xl2tpd --since '-5 min' | tail -20
ip -4 route get 198.51.100.10
Журнал strongSwan показывает, дошёл ли обмен IKE до предложения и ответил ли партнёр вообще, что отделяет доступность от политики. Журнал xl2tpd продолжается там, где заканчивается IPsec, поэтому установленная ассоциация безопасности без чего-либо в этом журнале указывает на этап L2TP. Запрос маршрута подтверждает, что клиент отправляет на тот адрес сервера, который вы думаете, и это ловит устаревший ответ DNS, унаследованный от предыдущей сети. Вместе три вывода называют этап, а не симптом.
Сравните глубину NAT и поведение помощника
Прохождение NAT переводит защищённый трафик в инкапсуляцию UDP при обнаружении преобразования, поэтому номера портов, несущие рабочую сессию, могут отличаться от тех, что на статической схеме. Разрешение одного пакета настройки ничего не доказывает об остальном обмене, и внешнее сканирование портов не скажет, как партнёр обращается с действительным аутентифицированным трафиком. Второй слой преобразования снова меняет картину, потому что сопоставление теперь существует дважды и истекает по двум разным расписаниям. Преобразование на уровне оператора в мобильном подключении — обычная причина, по которой рабочий офисный профиль не работает на точке доступа телефона.
Помощники маршрутизатора различаются так же сильно, как сети. Одни прошивки перехватывают и перезаписывают обмен, другие просто перестают его отбрасывать, а третьи применяют настройку только в старом режиме. Прочитайте описание флажка от самой прошивки, и там, где есть режим совместимости, проверьте его как одно осознанное изменение, а не три сразу.
Исходящий клиент, входящий сервер: две разные проблемы
Исходящему клиенту и входящему серверу нужна разная доступность выше по потоку, и функция пропуска, которая помогает первому, ничего не делает для второго. Домашний маршрутизатор, позволяющий ноутбуку достичь удалённого шлюза, не принимает из-за этого входящие подключения к серверу за ним. Путаница между этими двумя отправляет вас искать переадресацию портов, которая никогда не была проблемой. Прежде чем что-либо сравнивать, укажите, какую роль играет сбойное устройство.
После поддерживаемого изменения повторите то же подключение и запишите достигнутый этап. Храните вместе рабочий профиль и заметку о сбойной сети, не сбрасывайте учётные данные и не переустанавливайте клиент, потому что это выбрасывает доказательства, на которых строилось сравнение.