Ubuntu 24.04 тихо заменил демон за плагином L2TP в NetworkManager. Старый путь использовал xl2tpd; новый пакет приносит реализацию на Go, создающую демон с именем kl2tpd. Плагин запускает тот, который установлен, поэтому обновление может заменить демон, не трогая ваш профиль или учётные данные. В этом и состоит вся неисправность: управляющее сообщение, которое новый демон не распознаёт.

Плагин координирует IPsec, L2TP и PPP, а затем передаёт получившийся интерфейс в NetworkManager. Сам он не реализует L2TP.

Плагин — координатор, а не демон

network-manager-l2tp запускает помощник IPsec, демон L2TP и PPP и подключает интерфейс к управлению соединениями рабочего стола. Годами демоном был xl2tpd, и каждое руководство, упоминавшее его конфигурацию, наследовало это допущение. Позже упаковка Debian приняла любую из двух реализаций, и 24.04 устанавливает версию на Go, которая предоставляет kl2tpd. Ни одно поле профиля не фиксирует, какой демон работал раньше, поэтому замена остаётся незаметной, пока сообщение не будет отклонено.

Машина с обоими пакетами всё равно может запускать не тот, что вы ожидаете. Выбор — решение плагина, а не руководства, которому вы следовали.

Прочитайте этап, прежде чем выбирать исправление

journalctl -b --no-hostname _COMM=nm-l2tp-service _COMM=kl2tpd _COMM=xl2tpd _COMM=pppd _COMM=charon _COMM=pluto

Сопоставьте одну попытку по всем помощникам, вместо того чтобы доверять уведомлению рабочего стола. Этот запрос покажет, где остановилась последовательность, а dpkg -l покажет, какая реализация установлена. Сбой, который появляется после установления партнёра IPsec и упоминает управляющее сообщение или неизвестный атрибут, указывает на демон. Сбой до появления туннеля означает, что демон так и не был достигнут.

Несовпадение заранее общего ключа заканчивается на этапе IPsec и называет партнёра. Проблема с учётными данными PPP появляется, когда туннель уже поднят, и обычно несёт читаемый отказ CHAP или MS-CHAP. Оба видны в одном запросе, и это разные проблемы.

Два пути, и они не смешиваются

sudo apt install xl2tpd
sudo apt purge go-l2tp

Эта пара ставит xl2tpd, а затем удаляет демон Go, оставляя плагину выбирать реализацию, на диалекте которой говорит шлюз. Порядок важен: плагин зависит от той или иной реализации, поэтому удаление пакета Go первым утягивает и плагин. Второй путь сохраняет демон Go и переходит на более новую сборку, которая понимает сообщение, а это обычно означает PPA сопровождающего, а не версию из архива. В управляемом парке закрепить PPA проще обосновать, чем учить пользователей удалять пакеты.

Не совмещайте оба в одном изменении. Тогда более поздний сбой не позволит сказать, какая половина помогла, а будущее обновление может вернуть только что удалённый пакет.

Укажите в тикете бинарный файл демона, его версию и точное сообщение. Никто не сможет воспроизвести отчёт, который говорит лишь, что L2TP сломался после выпуска, тогда как названный атрибут и версия пакета дают точку опоры.

Три вещи, которыми это не является

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

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

Сравнивайте два пути по стоимости обслуживания, а не по скорости. Оба могут работать; только один устраняет несовпадение диалекта.

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