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

Дві точки огляду і пакет, який показує кожна

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

Різниця в розмірі — це накладні витрати, різниця в адресах — це задум. Переверніть це, і плутанина стане передбачуваною: люди порівнюють внутрішній пакет на 1400 байтів із зовнішнім на 1450 байтів, вирішують, що щось не так, і починають змінювати налаштування MTU, які ніколи не були винні. Підпишіть файл інтерфейсом і рівнем, бо цей підпис — перше, що потрібно читачеві, і перше, що зазвичай опускають.

Визначте рівень до початку знімання

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

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

Що насправді містить різниця в розмірі

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

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

Як читати offload у цих числах

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

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

Де знімання перестає бути доказом

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

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

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

Схожі статті