Ви хочете знати, чи переживе тунель сон ноутбука, перехід між точками доступу, чи годину дзвінків, і при цьому не бажаєте віддавати комусь журнал усього, що читаєте, поки це з'ясовуєте. Три речі відповідають на це: фіксований зонд, ті самі чотири факти, зняті за розкладом, і подія, яка їх змінила, записана. Десять хвилин цього кращі за цілу днину спостереження за сторінкою, що не завантажується. Журнал, який у вас зрештою залишиться, ще й досить короткий, щоб долучити його до тікета, не вимарюючи половину.

Вирішіть, що має означати «стабільно»

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

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

Зафіксуйте один нешкідливий зонд

Виберіть призначення, яке вам дозволено опитувати і яке не пов'язане з вашими обліковими записами: хост документації, внутрішню кінцеву точку стану або сам шлюз тунелю. Зробіть операцію відтворюваною, наприклад curl -s -o /dev/null -w "%{http_code} %{time_total}\n" https://example.com/, який друкує один рядок на спробу. Тримайте цей формат виводу незмінним протягом усього прогону. Код стану й тривалість, зібрані однаково двічі, — це те, що робить два прогони порівнюваними.

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

Знімайте чотири факти

Стан піра, маршрут, розв'язувач і один свіжий запит — це чотири спостереження, і кожне має дешеве джерело. У WireGuard wg show wg0 latest-handshakes дає часову позначку піра, а ip route get 1.1.1.1 показує, який інтерфейс використало б ядро. У OpenVPN той самий стан лежить у файлі стану, який пише --status /run/openvpn/status 10, або за state на інтерфейсі керування. Клієнт Windows залишається в PowerShell з Get-NetAdapter і Resolve-DnsName.

Закільцюйте їх в одному терміналі, щоб кожен рядок ніс часову позначку: for i in $(seq 1 20); do date -Is; wg show wg0 latest-handshakes; ip route get 1.1.1.1; sleep 30; done. Цей цикл покриває три з шести полів журналу; версія клієнта вноситься один раз угорі, а часова позначка події додається, коли подія відбувається.

Розв'язувач — це факт, який люди пропускають, і dig +short його приховує, бо ця форма друкує лише відповідь. Запитайте сервер явно за допомогою dig example.com | grep SERVER: або використайте nslookup example.com там, де dig не встановлено, — вона друкує адресу сервера, до якого пішов запит. Старе рукостискання на простоюючому тунелі теж не є автоматично несправністю, оскільки WireGuard змінює ключі лише тоді, коли є трафік, який треба захищати.

Викличте подію, а не витік

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

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

Тримайте журнал достатньо малим, щоб його завершити

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

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

Схожі статті