Tunel zahadzuje veľké prenosy, ale prepúšťa ping, takže rada prichádza rýchlo: znížte MTU. Oprava niekedy funguje a potom sa použije na každý profil v každej sieti. Práve vtedy sa cielená oprava stáva trvalou daňou na výkon. Porovnanie, ktoré treba urobiť, je medzi skutočným limitom cesty a cenou zmenšenia každého paketu pod ním.

Čo sa pri znížení MTU naozaj zmenší

Každý paket nesie hlavičky skôr, než nesie vaše dáta. Na ethernetovej ceste s 1500 bajtmi spotrebujú IPv4 a TCP 40 bajtov a nechajú 1460 pre užitočné zaťaženie; zapuzdrenie pridá navrch vonkajšie hlavičky IP, UDP a tunela, takže vnútorný rozpočet zaťaženia opäť klesá. Zníženie MTU rozhrania tento rozpočet zámerne zmenšuje.

Cena je úmerná počtu paketov, nie počtu bajtov. Ten istý súbor rozdelený do viacerých paketov potrebuje viac prerušení, viac rozhodnutí o smerovaní a viac spracovania na paket na každom zariadení pozdĺž cesty. Na routeri, ktorý je už blízko limitu paketov za sekundu, je to skutočné spomalenie, nie chyba zaokrúhľovania. Cena sa prejaví, aj keď samotný prenos uspeje.

Preto je menšie MTU obchvatom obmedzenia, nie všeobecnou optimalizáciou. Kupuje spoľahlivosť voči ceste, ktorá neunesie väčší rámec, a účtuje réžiu za každý paket, ktorý zmenšenie nepotreboval.

Kedy je menšie MTU správna oprava

Klasický príznak je konkrétny: TCP handshake sa dokončí, dorazia malé odpovede a veľké sťahovanie sa zasekne alebo sa resetuje. Ping s bitom „nefragmentovať“ pri 1472 bajtoch zlyhá, zatiaľ čo ping s 1400 bajtmi uspeje, čo poukazuje na cestu, ktorá neunesie paket plnej veľkosti a nedoručuje správu ICMP, ktorá by odosielateľovi povedala, aby zmenšil.

Zisťovanie MTU cesty závisí od týchto správ ICMP o potrebnej fragmentácii. Keď ich firewall zahodí, odosielateľ stále skúša veľký paket znova a spojenie vyzerá zaseknuté. Zníženie MTU na strane tunela sa opakovaniu vyhne, a to je pre túto sieť legitímna oprava.

Prístupové technológie tiež kladú vlastné limity: PPPoE sa zvyčajne končí na 1492, niektoré mobilné a DSL cesty sú nižšie a vnorené tunely odpočítavajú réžiu dvakrát. Merajte skutočnú cestu namiesto kopírovania čísla z príručky a pamätajte, že IPv6 vyžaduje na každom spoji, ktorý ho nesie, aspoň 1280 bajtov MTU, ako určuje RFC 8200.

Porovnajte tri ovládacie prvky, kým jeden zmeníte

MTU, MSS a fragmentácia sú rôzne ovládacie prvky na rôznych vrstvách a zmena nesprávneho nechá príznak na mieste.

ControlLayerWhat it changesWhere it misleads
Interface MTUIP linkLargest frame the interface will sendPenalizes every protocol, not just the one that failed
TCP MSS clampTCPSegment size advertised in the handshakeLeaves UDP and QUIC untouched
DF and fragmentationIPWhether a router may split a packetCan break path MTU discovery and security assumptions
Tunnel overheadEncapsulationInner MTU after outer headersMismatch shows up only for large inner packets

Obmedzenie MSS je často najmenej invazívna oprava, pretože ovplyvňuje iba TCP a rozhranie necháva voľné pre inú prevádzku. Nižšie MTU rozhrania je širšie a ľahšie sa o ňom uvažuje, preto je bežné na domácich routeroch, ale účtuje každému protokolu problém jedného protokolu.

Vypnutie správania „nefragmentovať“ skrýva príznak tým, že povoľuje fragmentáciu, a zvyčajne zhorší latenciu, pričom rozbije spätnú väzbu, ktorá by našla správnu veľkosť. Vyhnite sa tomu ako trvalému riešeniu.

Merajte kompromis, nie jedno číslo

Nájdite limit cesty sondou „nefragmentovať“, začnite vysoko a znižujte, kým nepríde odpoveď:

ping -M do -s 1472 203.0.113.10
ping -M do -s 1400 203.0.113.10
tracepath 203.0.113.10

Potom porovnajte skutočnú úlohu pri oboch nastaveniach: ten istý prenos súboru, ten istý koncový bod a tú istú sieť. Zaznamenajte čas dokončenia a opakované prenosy, napríklad pomocou nstat -az TcpRetransSegs, a sledujte CPU zariadenia, ak tunel končí na malom routeri. Krátky syntetický test priepustnosti môže minúť zaseknutie, ktoré sa objaví až po niekoľkých megabajtoch.

Počítadlá paketov po zmenšení vzrastú, pretože ten istý prenos teraz používa viac paketov. To je očakávané a nie je to dôkaz vyššej priepustnosti. Porovnávajte dokončené aplikačné dáta, počet opakovaných prenosov a odozvu, nie len rýchlosť paketov.

Zavádzajte zmenu po krokoch a udržte ju ohraničenú

Zaznamenajte pôvodnú hodnotu, zmeňte jeden ovládací prvok a pred trvalým nasadením meranie zopakujte. Ak dôkazy neukážu prínos, obnovte predchádzajúcu hodnotu tým istým príkazom rozhrania, ktorým ste ju nastavili:

ip link set dev wg0 mtu 1420
ip link set dev wg0 mtu 1500

Ohraňte výsledok na sieť, ktorá ho potrebovala. Profil, ktorý musí fungovať na hotelovom Wi-Fi, mobilnom hotspotu a kancelárskej LAN, by nemal zdediť najnižšiu hodnotu, ktorú vyžaduje ktorákoľvek z nich, ak klient nedokáže cestu zistiť.

Správna hodnota je najväčšie MTU, ktoré cestu prežije, nie najmenšie, ktoré príznak odstráni. Zdokumentujte cestu, výsledok sondy a vrátenie zmeny a nastavenie znova posúďte, keď sa prístupová sieť zmení.

Súvisiace články