Великі пакети зникають через IPsec, а малі ping працюють
Малі проби відповідають, а копіювання файлів завмирає — це ознака рішення про розмір, ухваленого до шифрування. Визначте, яка сторона ділить пакет і чому.
Віддалені оболонки залишаються чутливими, малі проби відповідають, а потім копіювання файлу повзе й завмирає без помилки, на яку хтось міг би вказати. Ping з більшим корисним навантаженням відтворює це миттєво, і та сама передача працює з локальної мережі. У шифруванні немає нічого повільного; певні пакети просто не доходять. Два різні поділи можуть дати цю ознаку, і вони залишають різні докази.
Два місця, де пакет можна поділити
До шифрування маршрутизатор може поділити завеликий внутрішній пакет і захистити кожну частину окремо. Після шифрування ділиться готовий зовнішній пакет, і далека сторона мусить зібрати його знову, перш ніж щось розшифрувати. Той самий симптом, інша робота для отримувача й інші важелі для вас.
Різниця важлива, бо виправлення, скероване на хибний бік, змінює число, не зрушуючи збою. Пакет, відхилений на інтерфейсі, ніколи не стає зовнішнім пакетом, тому жодне налаштування зовнішнього боку його не врятує.
Де насправді ухвалюється рішення про розмір
Інтерфейс тунелю несе IP MTU, і це значення може відхилити завеликий внутрішній пакет задовго до того, як його побачить етап IPsec. Встановлення біта в зовнішньому заголовку не переглядає те попереднє рішення, бо пакет уже відхилено. Тому підвищення внутрішнього MTU іноді погіршує справу, а не покращує. Прочитайте значення інтерфейсу та зовнішню поведінку, перш ніж змінювати будь-що з них, бо дешевше виправлення зазвичай і пояснює симптом.
Спершу перевірте значення інтерфейсу, потім зовнішню поведінку. Два числа, два етапи, і зазвичай відповідальне лише одне з них.
Зовнішній бюджет — не внутрішній бюджет
Кожна інкапсуляція витрачає байти на заголовки, і кількість залежить від транспорту, родини адрес і того, чи задіяно NAT traversal. Внутрішній пакет, що вміщається в локальне з'єднання, все одно може дати зовнішній пакет, який не вміщається в шлях за ним. Вимірюйте накладні витрати, а не припускайте їх, бо кожен необов'язковий заголовок додається до рахунку. Тунель із NAT traversal платить більше, ніж голий, і різниці достатньо, щоб зламати передачу, яка працювала вчора.
Коли зовнішній пакет несе біт заборони фрагментації, стрибок, що не може його передати, відкидає його і мав би повернути повідомлення ICMP. Якщо це повідомлення десь фільтрується, відправник продовжує спроби, а користувач бачить зупинку без пояснення. Саме це мовчазне відкидання зазвичай і призводить до того, що проблему розміру повідомляють як проблему швидкості.
IPv6 прибирає одну з можливостей
Маршрутизатори IPv6 не фрагментують у транзиті, тому зовнішній пакет або вміщається, або зникає з повідомленням Packet Too Big. Це повідомлення стає єдиним каналом зворотного зв'язку, і його блокування ламає виявлення шляху для кожної наступної великої передачі. Маршрутизатори IPv4 можуть фрагментувати великий пакет, коли біт знято, що приховує несправність, доки щось інше не встановить цей біт.
На змішаному стеку той самий тунель може поводитися по-різному для двох родин, тому один тест через IPv4 не вирішує скаргу щодо IPv6. Перевірка, що вправляє лише одну родину, залишає половину відповіді невиміряною.
Політика сегментів TCP — не загальна відповідь
Обмеження максимального розміру сегмента допомагає потокам TCP, і це законне керування, коли проблема обмежена ними. Воно не впливає на UDP, а UDP несе DNS, деякі голосові протоколи й зростаючу частку веб-трафіку.
Застосуйте її, потім перевірте навантаження, яке зазнало невдачі. Якщо випадок UDP досі не працює, політика сегментів ніколи не була відповіддю, і бюджету інтерфейсу все ще потрібна увага. Спершу визначте протокол збійного навантаження, потім виберіть керування, що до нього належить.
Порядок роботи
Запишіть найбільше корисне навантаження, що виживає, потім MTU інтерфейсу, потім чи несе зовнішній пакет біт заборони фрагментації, і нарешті чи доходить зворотний зв'язок ICMP до відправника. Ця послідовність звужує несправність без здогадів. Зберігайте кожне спостереження з позначкою часу й кінцевою точкою, бо всі чотири числа зсуваються, коли шлях змінюється.
Змініть одне значення, повторіть перевірку початкової передачі й збережіть результат. Тунель, що проходить велику пробу, але досі застрягає в застосунку, перейшов до іншої проблеми, і це поступ, який варто записати. Наступній людині потрібніші числа, ніж висновок.