Wiki
Сеть

MTU и фрагментация — что это простыми словами

MTU (Maximum Transmission Unit) — max размер IP-пакета для канала. Ethernet 1500, VPN обычно 1420-1450. Слишком большой = фрагментация или PMTU-blackhole.

MTU (Maximum Transmission Unit) — максимальный размер IP-пакета, который проходит без фрагментации через данный канал. Стандартный Ethernet MTU = 1500 байт. Jumbo frames (в LAN и ДЦ) — 9000 байт. PPPoE (DSL) — 1492. VPN-туннели — 1420-1450 (заголовки WireGuard + UDP отнимают от 1500).

Если приложение шлёт пакет больше MTU, роутер должен: (1) фрагментировать (разбить на несколько), приёмник склеит. (2) отправить ICMP "Fragmentation Needed" обратно и dropнуть — источник узнает MTU и пошлёт меньше (PMTUD, Path MTU Discovery). Если ICMP заблокирован в firewall — PMTU black-hole: пакеты dropаются молча, соединение висит.

Симптомы кривого MTU: (1) SSH-логин работает, но `ls` в большой директории или scp файла — виснет, (2) HTTPS-handshake ok, но большие ответы (HTML > 5 КБ) — таймаут, (3) работает через wifi, не работает через VPN. Диагностика: `ping -M do -s 1472 8.8.8.8` (просим max без фрагментации).

Практика: (1) на VPS MTU обычно верно из коробки, (2) при настройке VPN (WireGuard/OpenVPN) — задавайте MTU 1420 явно, (3) не блокируйте весь ICMP в firewall — ломает PMTUD. Разрешайте type 3 code 4 ("Fragmentation Needed").

Частые вопросы

MTU 9000 стоит?
В LAN/DC на 10 GbE — да, ускоряет large-transfer на 10-15 %. Через интернет — не работает (промежуточные роутеры порежут).
TCP MSS clamping?
Роутер выправляет TCP MSS в пакетах, чтобы избежать фрагментации. Обычно нужно на VPN-gateway (`iptables -t mangle --clamp-mss-to-pmtu`).

Смотрите также