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

Число прийшло з іншого тунелю

Накладні витрати не є властивістю IPsec в абстрактному сенсі. Це властивість пакета, який справді будується: узгоджений режим, зовнішній заголовок, заголовок захисту, заповнення, поле цілісності і, можливо, додаткова обгортка UDP.

Число, яке наводять для транспортного режиму з IPv4 і без NAT, описує менший пакет, ніж тунельний режим з IPv6 під час проходження NAT. Обидва правильні для свого випадку. Копіювання будь-якого з них в інше розгортання це і є шлях до MTU, який ламає великі передачі. Збій тихий, бо малі запити продовжують працювати.

Складіть шари, які справді є

Почніть із зовнішнього заголовка IP і рухайтеся всередину. У тунельному режимі початковий пакет усередині, тому зовнішній заголовок це додаток, а не заміна. RFC 4303 описує заголовок ESP, заповнення і дані цілісності, що йдуть за ним.

LayerWhat it addsWhen it applies
Outer IP header20 bytes for IPv4, 40 for IPv6Always, and 40 rather than 20 if the outer path is v6
ESP header8 bytes of SPI and sequence numberAlways
Block cipher IV8 to 16 bytes depending on the transformWhen the negotiated cipher uses one
Padding and trailerPadding to the block size, plus two trailer bytesAlways, and the amount varies with payload length
Integrity data12 to 16 bytes for common authenticated ciphersWhen integrity protection is negotiated
UDP encapsulation8 bytesNAT traversal on port 4500, which is common for clients behind NAT

Жоден із цих рядків не є сталим між розгортаннями, а рядок заповнення не є сталим навіть усередині одного розгортання. Це вся причина, чому одна опублікована цифра накладних витрат розчаровує.

Два майданчики можуть не погодитися щодо одного й того самого тунелю

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

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

Вимірюйте, а не віднімайте

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

ip link show eth0 | grep -o 'mtu [0-9]*'
ip xfrm state list
ping -M do -s 1400 198.51.100.7
ping -M do -s 1372 198.51.100.7
tcpdump -ni any -c 20 'esp or udp port 4500'

Знижуйте розмір ping, доки не почнуть приходити відповіді, і вважайте найбільше робоче значення бюджетом цього шляху. Вивід xfrm каже, який режим і які алгоритми узгоджено, і це вхід для будь-якого чесного розрахунку. Захоплення підтверджує, що саме йде по дроту, ESP чи ESP в обгортці UDP, і це вирішує питання NAT без здогадок.

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

Поставте число туди, де йому місце

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

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

Схожі статті