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

Дві помилки на різних рівнях

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

Симптоми різняться так, що це можна спостерігати без жодних інструментів. Помилка DNS миттєва й стала: браузер каже, що сервер не знайдено. Помилка MTU часткова: сторінка починається, частина ресурсів надходить, а велика відповідь або вивантаження застрягають.

Якщо ваш симптом частковий, перестаньте дивитися на DNS.

Етап 1: чи розв'язується ім'я взагалі

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

Запитайте резолвер, який використала б операційна система, а потім порівняйте:

dig +short vpn.example.com
dig +short vpn.example.com @10.0.0.53

Якщо розв'язання не вдається, проблема в цій політиці та її доступності. Не надсилайте приватні імена довільним публічним резолверам лише заради порівняння, бо саме порівняння розкриває імена, які ви хотіли тримати внутрішніми.

Етап 2: де зупиняється передавання

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

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

Одне повторюване застрягання цінніше за десять анекдотичних.

Чому MTU шкодить лише після рукостискання

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

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

Виміряйте розмір явно, а не виводьте його:

ping -M do -s 1472 203.0.113.20
tracepath 203.0.113.20

Змініть один рівень і доведіть це

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

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

Саме цей запис не дає DNS, розміру пакетів і автентифікації перетворитися на купу постійних обходів, які ніхто не може пояснити. Тестування через сирий IP — добрий приклад короткого шляху, що змінює ідентичність TLS, а вимкнення перевірки сертифіката, щоб порівняння вдалося, не є діагнозом.

Схожі статті