Откат повтора OpenVPN в журнале: что не доказывает строка
Сообщение об откате записывается до решения принять или отклонить. Пройдите шесть остановок: определите строку, найдите результат, затем проверьте путь приложения.
Строка гласит PID_ERR replay-window backtrack occurred, и все результаты поиска объясняют её как отброшенные пакеты и сломанный туннель. В UDP-пути Community OpenVPN 2.6 это сообщение записывается, пока функция приёма ещё решает, что делать с пакетом. Она фиксирует новый максимум отката, затем та же функция сравнивает расстояние с окном и записанным состоянием, прежде чем принять или отклонить. Читать метку журнала как приговор — это ошибка, которую призван предотвратить этот контрольный список.
Первая остановка: определите, что это за строка
Это диагностика расстояния в последовательности, а не решение о соединении. Она появляется в реализации идентификатора пакета в точке, где отмечается новый наблюдённый максимум отката. Эта точка находится до ветви принятия или отклонения, поэтому пакет, который её вызывает, всё ещё может быть доставлен.
Подтвердите, какой хост её написал и с какой подробностью. Сервер и клиент могут оба выдавать сообщения идентификатора пакета, и сообщение с одной стороны ничего не говорит о состоянии приёма на другой.
Вторая остановка: найдите результат для этого пакета
Читайте строки после диагностики, а не только диагностику. Та же функция продолжает к проверкам окна и дубликатов, поэтому результат для этого конкретного пакета решается несколькими инструкциями позже и вполне может быть принятием. Выдержка из журнала, заканчивающаяся на страшной строке, ничего не говорит о результате. Ищите окно вокруг неё, а не саму строку:
journalctl -u openvpn-server@server --since "-10 min" | grep -n -A3 -B3 "backtrack occurred"Если журнал не показывает отказа для этого партнёра в то время, перестаньте считать эту строку причиной сбоя. Перейдите к пути приложения, потому что именно там на самом деле заканчивается большинство отчётов о подключено, но без трафика.
Третья остановка: решите, реальна ли переупорядочка
Переупорядочка — свойство пути, и одна диагностика — лишь один её образец. Ищите повторяющиеся сообщения для одного и того же партнёра в коротком окне и сравните с записью на обоих концах, прежде чем заключать, что сеть агрессивно переупорядочивает.
Несколько сообщений при переподключении ничем не примечательны. Непрерывный поток наряду с реальными тайм-аутами приложения стоит расследовать, и это сочетание — доказательство, а не ярлык.
Четвёртая остановка: параметры окна и чем они не являются
replay-window принимает размер последовательности и необязательное значение времени, поэтому расширение меняет две разные допуски сразу. Увеличение числа допускает пакеты, которые дальше выходят из порядка; значение времени ограничивает, как долго пакет ещё можно учитывать. Расширение — это изменение политики с ценой для безопасности, и оно не усиливает шифр и не отключает обнаружение дубликатов. Обе допуска движутся вместе, хотели вы этого или нет.
Старый аутентифицированный пакет всё ещё может быть нежелательным повтором, поэтому получатель сохраняет эти проверки. Принимать больше переупорядочки означает принимать больше этого риска.
Приглушение предупреждения с помощью mute меняет то, что вы видите, а не то, что делает демон. Если цель — более тихий журнал во время известного события, это законный операционный выбор; если цель — починить туннель, приглушение скрывает доказательство.
mute 20
replay-window 64 15Перевод внешнего транспорта на TCP меняет поведение доставки и восстановления и добавляет собственные затраты на блокировку головы очереди. Это проектное решение, а не первая реакция на одну метку журнала. Переустановка сервера хуже, потому что стирает различие между статистикой и границей, которая действительно отказала.
Пятая остановка: проверьте путь, важный для пользователя
При подключённом туннеле запустите собственный тест приложения и прочитайте выбранный маршрут, состояние пересылки и обратный путь. Туннель, который несёт пакеты только в одном направлении, вообще не создаёт сообщений об откате, и это гораздо чаще, чем серьёзная переупорядочка.
Запишите, что вы измерили на каждой остановке. Именно запись мешает следующему отчёту снова начать со страшной строки и работать от неё наружу.
Реализация идентификатора пакета показывает порядок статистики и решения, а руководство описывает область последовательности и времени окна. Чтение обоих вместе — это то, что превращает страшную строку журнала в известную величину. Ни одно из них ничего не говорит о вашем конкретном пути, поэтому измерения выше по-прежнему важны.