Рядок повторюється кожні кілька секунд і виглядає причиною всього: пакет із назвою control hard reset, який надходить від клієнта, що нікуди не доходить. Це не помилка. Це перше повідомлення нового сеансу, а повторення — симптом того, що далі не працює щось інше. Відокремити те, що каже мітка, від того, що зробило з'єднання потім, і є весь діагноз.

Опкод позначає позицію в протоколі

OpenVPN мультиплексує кілька видів пакетів через один сокет, і опкод повідомляє отримувачу, який вид він тримає. Пакети hard-reset відкривають сеанс, керівні пакети несуть матеріал рукостискання, підтвердження підтверджують отримання, а пакети даних несуть корисне навантаження тунелю. Читання першого байта показує, де в цьому обміні належить пакет, а визначення пакетів у вихідному коді називають кожну родину явно.

Це все, що він каже. Пакет, позначений як початкове скидання клієнта, доводить, що пакет дійшов до вашої точки спостереження і що партнер хоче почати сеанс. Він не доводить, що клієнт довірився вашому сертифікату, що його облікові дані були прийняті або що канал даних колись став придатним.

Суфікс V2 — це маркер покоління протоколу для цієї родини пакетів, а не версія продукту і не налаштування, яке ви встановлюєте. Ніщо в назві не стосується скидання тунелю, перезапуску служби чи очищення кешу.

Що клієнт насправді робить у той момент

Клієнт відкриває ідентифікатор сеансу, до якого обидві сторони прив'яжуть подальший керівний трафік. Якщо налаштовано захист керівного каналу, цей перший пакет уже несе HMAC, що дозволяє отримувачу вирішити, чи варто витрачати зусилля на решту обміну. Отримувач, який не може його перевірити, тихо відкидає пакет, і тому неправильний спільний ключ виглядає як клієнт, що говорить у порожнечу.

Нічого видимого користувачеві ще не сталося. Жоден сертифікат не перевірено, жодне ім'я користувача не запропоновано і жодну адресу тунелю не призначено. Скидання — це преамбула рукостискання, тому будь-яке судження про з'єднання в цей момент передчасне.

Для простоюючого циклу перепідключення цікава деталь — інтервал. Клієнт, який повторює спроби з фіксованим циклом без просування, зазвичай відхиляється раніше, ніж може просунутися, а причина в журналі партнера, а не в назві пакета.

Де після скидання ховається справжній збій

Прочитайте два журнали поруч і знайдіть першу подію, яка не є скиданням. У клієнта збій перевірки сертифіката повідомляється з конкретною причиною: прострочений сертифікат, невідповідність імені або невідомий видавець. На сервері відмову в облікових даних повідомляють як збій автентифікації з власною причиною. Обидва значно конкретніші за повторний погляд сервера на нові спроби.

Зіставляйте одну спробу за позначкою часу, а не читайте кожен журнал окремо, бо той самий збій з'являється в обох місцях з різними формулюваннями та різною тяжкістю. Партнер, який здається, зазвичай називає причину.

Якщо жодна сторона не повідомляє про відмову, а обмін усе одно застрягає, межа — це доступність, а не довіра. Мережевий екран, що відкидає зворотний напрямок, пристрій трансляції мережевих адрес, у якого спливає зіставлення, або проблема MTU, що вбиває більші пакети рукостискання, дають застряглий обмін без жодної помилки автентифікації.

grep -nE 'VERIFY|AUTH_FAILED|TLS Error|SIGUSR1' /var/log/openvpn*.log

Цей пошук сам по собі не діагноз, але за один крок переносить вас від словника протоколу до реального класу збою.

Чому вимкнення перевірки — неправильний рефлекс

Коли скидання продовжує з'являтися, найшвидше на вигляд рішення — вимкнути перевірку сертифікатів або відмовитися від захисту керівного каналу, щоб щось підключилося. Це міняє діагностований збій на недіагностований і залишає розгортання приймати тих партнерів, яких воно було побудоване відхиляти.

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

Опкод корисний у розмові з підтримкою для одного: він каже, що партнер зайшов достатньо далеко, щоб спробувати. Що сталося після, — це те, що вам треба знати, і це записано в тому журналі, який фіксує першу конкретну відмову. Почніть звідти, і рядок скидання перестане виглядати причиною й почне виглядати позначкою часу.

Схожі статті