Ці хутчэй працуе меншы MTU VPN? Параўнайце рэальныя доказы
Меншы MTU можа абысці абмежаванне шляху і ўсё ж каштаваць прапускной здольнасці. Параўнайце рэальнае абмежаванне, накладныя выдаткі загалоўкаў і нагрузку, перш чым пакінуць змену.
Тунэль скідае вялікія перадачы, але прапускае пінгі, таму парада прыходзіць хутка: знізіць MTU. Выпраўленне часам працуе, а потым яго ўжываюць да кожнага профілю ў кожнай сетцы. Менавіта тут мэтанакіраваны рамонт ператвараецца ў пастаянны падатак на прадукцыйнасць. Параўноўваць трэба рэальнае абмежаванне шляху і кошт змяншэння кожнага пакета ніжэй за яго.
Што насамрэч змяншаецца, калі вы зніжаеце MTU
Кожны пакет нясе загалоўкі раней, чым вашыя даныя. На шляху Ethernet у 1500 байт IPv4 і TCP займаюць 40 байт, пакідаючы 1460 для карыснай нагрузкі; інкапсуляцыя дадае зверху знешнія загалоўкі IP, UDP і тунэля, таму ўнутраны бюджэт нагрузкі зноў падае. Зніжэнне MTU інтэрфейса мэтанакіравана паменшвае гэты бюджэт.
Кошт прапарцыйны колькасці пакетаў, а не колькасці байт. Той жа файл, падзелены на больш пакетаў, патрабуе больш перапынкаў, больш рашэнняў маршрутызацыі і больш апрацоўкі на кожны пакет на кожнай прыладзе ўздоўж шляху. На маршрутызатары, які ўжо блізкі да мяжы пакетаў у секунду, гэта рэальнае запаволенне, а не хіба акруглення. Кошт праяўляецца нават тады, калі сама перадача ўдаецца.
Вось чаму меншы MTU — гэта абыход абмежавання, а не агульная аптымізацыя. Ён купляе надзейнасць супраць шляху, які не можа несці большы кадр, і спаганяе накладныя выдаткі за кожны пакет, якому змяншэнне не было патрэбна.
Калі меншы MTU — правільнае выпраўленне
Класічны сімптом канкрэтны: рукапацісканне TCP завяршаецца, малыя адказы прыходзяць, а вялікая спампоўка спыняецца або скідаецца. Пінг з бітам «не фрагментаваць» на 1472 байтах не праходзіць, а пінг у 1400 байт праходзіць, што паказвае на шлях, які не можа несці пакет поўнага памеру і не дастаўляе паведамленне ICMP, якое сказала б адпраўніку паменшыць.
Выяўленне MTU шляху залежыць ад гэтых паведамленняў ICMP пра неабходнасць фрагментацыі. Калі міжсеткавы экран іх скідае, адпраўнік працягвае паўтараць вялікі пакет, і злучэнне выглядае як завіслае. Зніжэнне MTU на баку тунэля пазбягае паўтору, і гэта законны рамонт для такой сеткі.
Тэхналогіі доступу таксама ўводзяць свае абмежаванні: PPPoE звычайна абмяжоўваецца 1492, некаторыя мабільныя і DSL-шляхі ніжэйшыя, а ўкладзеныя тунэлі аднімаюць накладныя выдаткі двойчы. Мерце рэальны шлях, а не капіруйце лічбу з даведніка, і памятайце, што IPv6 патрабуе мінімум 1280 байт MTU на любым канале, які яго нясе, як вызначае RFC 8200.
Параўнайце тры кіраванні, перш чым змяняць адно
MTU, MSS і фрагментацыя — гэта розныя ручкі на розных узроўнях, і змена не той ручкі пакідае сімптом на месцы.
| Control | Layer | What it changes | Where it misleads |
|---|---|---|---|
| Interface MTU | IP link | Largest frame the interface will send | Penalizes every protocol, not just the one that failed |
| TCP MSS clamp | TCP | Segment size advertised in the handshake | Leaves UDP and QUIC untouched |
| DF and fragmentation | IP | Whether a router may split a packet | Can break path MTU discovery and security assumptions |
| Tunnel overhead | Encapsulation | Inner MTU after outer headers | Mismatch shows up only for large inner packets |
Абмежаванне MSS часта з’яўляецца найменш інвазіўным рамонтам, бо закранае толькі TCP і пакідае інтэрфейс свабодным для іншага трафіку. Ніжэйшы MTU інтэрфейса шырэйшы і прасцейшы для разважання, таму ён пашыраны на спажывецкіх маршрутызатарах, але ён спаганяе з кожнага пратакола за праблему аднаго пратакола.
Адключэнне паводзін «не фрагментаваць» хавае сімптом, дазваляючы фрагментацыю, і звычайна пагаршае затрымку, ламаючы зваротную сувязь, якая знайшла б правільны памер. Пазбягайце гэтага як пастаяннага рашэння.
Мерце кампраміс, а не адну лічбу
Знайдзіце мяжу шляху зондам «не фрагментаваць», пачынаючы з высокага значэння і зніжаючы, пакуль не прыйдзе адказ:
ping -M do -s 1472 203.0.113.10
ping -M do -s 1400 203.0.113.10
tracepath 203.0.113.10Затым параўнайце рэальную задачу на абодвух наладах: тую ж перадачу файла, тую ж канчатковую кропку і тую ж сетку. Запішыце час завяршэння і паўторныя перадачы, напрыклад з nstat -az TcpRetransSegs, і сачыце за працэсарам прылады, калі тунэль завяршаецца на малым маршрутызатары. Кароткі сінтэтычны тэст прапускной здольнасці можа прапусціць прыпынак, які з’яўляецца толькі пасля некалькіх мегабайт.
Лічыльнікі пакетаў вырастуць пасля зніжэння, бо тая ж перадача цяпер выкарыстоўвае больш пакетаў. Гэта чакана і не з’яўляецца доказам вышэйшай прапускной здольнасці. Параўноўвайце завершаныя даныя праграм, колькасць паўторных перадач і адзыўчывасць, а не толькі частату пакетаў.
Уводзьце змену паэтапна і трымайце яе ў межах
Запішыце зыходнае значэнне, змяніце адно кіраванне і паўтарыце вымярэнне, перш чым рабіць яго пастаянным. Калі доказы не паказваюць карысці, аднавіце папярэдняе значэнне той жа камандай інтэрфейса, якой вы яго ўстанавілі:
ip link set dev wg0 mtu 1420
ip link set dev wg0 mtu 1500Абмяжуйце вынік той сеткай, якой ён быў патрэбны. Профіль, які павінен працаваць у гатэльным Wi-Fi, на мабільнай кропцы доступу і ў офіснай LAN, не павінен атрымліваць у спадчыну найніжэйшае значэнне, якое патрабуе любая з іх, калі кліент не можа выявіць шлях.
Правільнае значэнне — гэта найбольшы MTU, які выжывае на шляху, а не найменшы, які прымушае сімптом знікнуць. Дакументуйце шлях, вынік зонда і адкат, і пераглядайце наладу, калі сетка доступу змяняецца.