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

Прочитайте эту строку, прежде чем трогать любой таймер.

Миф: что-то на пути блокирует туннель

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

Ритм — полезная улика. Его создают таймеры; потеря пакетов делает это редко.

Прочитайте причину отключения раньше таймера

OpenVPN называет свою причину, и каждое имя указывает на другую подсистему. Session invalidated: KEEPALIVE_TIMEOUT — истекающий таймер, поэтому сравните значения ping и ping-restart на обоих концах. AUTH_FAILED — это учётные данные или состояние сертификата, и никакое изменение таймера не поможет. Ошибка TLS означает, что стороны вообще не дошли до этапа keepalive.

Запишите время подключения, время отключения и стабилен ли интервал до секунды. Это единственное измерение отделяет настроенное расписание от совпадения.

Стабильный интервал — это таймер. Дрейфующий скорее указывает на проблему пути или смещённый сеанс.

Два таймера keepalive, которые так и не договорились

Профили, экспортированные из портала, иногда всё ещё содержат строки вроде keepalive или ping-restart, скопированные из шаблона общественного сервера. Шлюз ведёт собственное обнаружение мёртвого партнёра и навязывает свои ожидания, и два расписания не обязаны совпадать. Когда они расходятся, клиент перезапускается по расписанию, с которым шлюз никогда не соглашался.

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

Минимальное изменение на стороне клиента — обнулить таймеры на верхнем уровне профиля, вне каждого встроенного блока:

keepalive 0 0

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

Имя сертификата может сместиться у вас под ногами

Аутентификация по сертификату Azure зависит от того, доверяет ли клиент имени, которое шлюз предъявляет сегодня. Строка verify-x509-name в более старой загрузке может закрепить имя, которое пересборка шлюза или обновление сертификата с тех пор изменили, и несоответствие проявляется как цикл переподключения, а не как явная ошибка. Удаление строки восстанавливает связь, что делает её хорошей диагностикой и плохим постоянным исправлением, потому что она убирает и проверку. Как только туннель удержится, верните строку с именем, которое шлюз действительно предъявляет.

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

Что менять и в каком порядке

Затем проверьте смещённый сеанс. Два устройства с одним сертификатом могут выталкивать друг друга, и результат выглядит периодическим, потому что обе стороны продолжают переподключаться. Сравните записи сеансов «точка — сайт» для одной и той же личности, появляющейся снова и снова.

Затем проверьте путь в простое, запустив непрерывный трафик на несколько минут. Если обрывы прекращаются, пока трафик идёт, важный таймер принадлежит устройству NAT или балансировщику нагрузки на пути, а не OpenVPN.

Настройки шлюза следует менять только после этих четырёх проверок.

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