Почему туннель Azure OpenVPN обрывается примерно каждые шестьдесят секунд
Туннель, который обрывается каждые шестьдесят секунд, завершил рукопожатие, поэтому его ничто не блокирует. Сначала прочитайте причину отключения, затем сравните оба таймера keepalive.
Туннель завершает рукопожатие, передаёт трафик около минуты и затем переподключается. Эта последовательность исключает обычного подозреваемого, потому что брандмауэр, блокирующий порт, остановил бы рукопожатие, а не сеанс. У вас разногласие о живости: одна сторона решила, что другая замолчала, и разорвала работающий туннель. Строка журнала говорит, какая сторона, и она же определяет исправление.
Прочитайте эту строку, прежде чем трогать любой таймер.
Миф: что-то на пути блокирует туннель
Если бы порт был заблокирован, соединение не установилось бы сразу и осталось бы нерабочим. Повторяющийся цикл означает, что управляющие сообщения идут, сеансы устанавливаются, а что-то позже в разговоре постоянно истекает. Блокировка создаёт тишину, а это создаёт ритм.
Ритм — полезная улика. Его создают таймеры; потеря пакетов делает это редко.
Прочитайте причину отключения раньше таймера
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.
Настройки шлюза следует менять только после этих четырёх проверок.