Tunneli pudottaa suuret siirrot mutta päästää pingit läpi, joten neuvo tulee nopeasti: laske MTU:ta. Korjaus toimii joskus, ja sitten se otetaan käyttöön jokaisessa profiilissa joka verkossa. Juuri siinä kohdassa kohdennettu korjaus muuttuu pysyväksi suorituskykyveroksi. Vertailu, joka pitää tehdä, on reitin todellisen rajan ja jokaisen paketin sen alle pienentämisen kustannuksen välillä.

Mikä oikeasti pienenee, kun lasket MTU:ta

Jokainen paketti kantaa otsikoita ennen kuin se kantaa tietojasi. 1500 tavun Ethernet-reitillä IPv4 ja TCP vievät 40 tavua ja jättävät 1460 hyötykuormalle; kapselointi lisää päälle ulkoiset IP-, UDP- ja tunneliotikot, joten sisempi hyötykuormabudjetti laskee jälleen. Liitännän MTU:n laskeminen pienentää tuota budjettia tarkoituksella.

Kustannus on verrannollinen pakettien määrään, ei tavujen määrään. Sama tiedosto useampaan pakettiin jaettuna tarvitsee enemmän keskeytyksiä, enemmän reitityspäätöksiä ja enemmän pakettikohtaista käsittelyä jokaisella laitteella reitin varrella. Reitittimellä, joka on jo lähellä pakettia sekunnissa -rajaansa, se on todellinen hidastuminen eikä pyöristysvirhe. Kustannus näkyy myös silloin, kun itse siirto onnistuu.

Siksi pienempi MTU on kiertotie rajoituksen ympäri, ei yleinen optimointi. Se ostaa luotettavuutta reittiä vastaan, joka ei kykene kantamaan suurempaa kehystä, ja se veloittaa ylikuorman jokaisesta paketista, joka ei pienennystä tarvinnut.

Milloin pienempi MTU on oikea korjaus

Klassinen oire on täsmällinen: TCP-kättely valmistuu, pienet vastaukset saapuvat ja suuri lataus pysähtyy tai nollautuu. Ping, jossa on älä-pirsto-bitti 1472 tavulla, epäonnistuu, kun taas 1400 tavun ping onnistuu, mikä viittaa reittiin, joka ei kykene kantamaan täysikokoista pakettia eikä toimita ICMP-viestiä, joka kertoisi lähettäjälle pienentää.

Reitin MTU:n havaitseminen riippuu näistä ICMP-viesteistä pirstomisen tarpeesta. Kun palomuuri pudottaa ne, lähettäjä yrittää suurta pakettia yhä uudelleen ja yhteys näyttää jämähtävän. MTU:n laskeminen tunnelin puolella välttää toiston, ja se on kyseiselle verkolle laillinen korjaus.

Myös liityntäteknologiat asettavat omat rajansa: PPPoE rajoittuu yleensä 1492:een, jotkin matkapuhelin- ja DSL-reitit ovat matalampia, ja sisäkkäiset tunnelit vähentävät ylikuorman kahdesti. Mittaa todellinen reitti sen sijaan, että kopioit luvun oppaasta, ja muista, että IPv6 vaatii vähintään 1280 tavua MTU:ta jokaisella linkillä, joka sitä kantaa, kuten RFC 8200 määrittää.

Vertaa kolmea säätöä ennen kuin muutat yhtä

MTU, MSS ja pirstominen ovat eri säätöjä eri kerroksissa, ja väärän muuttaminen jättää oireen paikoilleen.

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

MSS:n rajoittaminen on usein vähiten tunkeileva korjaus, koska se vaikuttaa vain TCP:hen ja jättää liitännän vapaaksi muulle liikenteelle. Alempi liitännän MTU on laajempi ja helpompi perustella, minkä vuoksi se on yleinen kuluttajareitittimissä, mutta se veloittaa jokaiselta protokollalta yhden protokollan ongelman.

Älä-pirsto-käyttäytymisen poistaminen käytöstä piilottaa oireen sallimalla pirstomisen, ja se yleensä pahentaa viivettä samalla kun se rikkoo palautteen, joka olisi löytänyt oikean koon. Vältä sitä pysyvänä ratkaisuna.

Mittaa kompromissi yhden luvun sijaan

Etsi reitin raja älä-pirsto-koettimella, aloita korkealta ja laske, kunnes vastaus saapuu:

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

Vertaa sitten todellista tehtävää molemmilla asetuksilla: sama tiedostonsiirto, sama päätepiste ja sama verkko. Kirjaa valmistumisaika ja uudelleenlähetykset, esimerkiksi komennolla nstat -az TcpRetransSegs, ja seuraa laitteen suoritinta, jos tunneli päättyy pieneen reitittimeen. Lyhyt synteettinen läpäisytestaus voi jättää huomaamatta pysähdyksen, joka ilmenee vasta useiden megatavujen jälkeen.

Pakettilaskurit nousevat pienennyksen jälkeen, koska sama siirto käyttää nyt enemmän paketteja. Se on odotettua eikä todista suurempaa läpäisyä. Vertaa valmistuneita sovellustietoja, uudelleenlähetysten määrää ja reagointikykyä, älä pelkkää pakettinopeutta.

Toteuta muutos vaiheittain ja pidä se rajattuna

Kirjaa alkuperäinen arvo, muuta yhtä säätöä ja toista mittaus ennen kuin teet siitä pysyvän. Jos todisteet eivät osoita hyötyä, palauta aiempi arvo samalla liitännän komennolla, jolla asetit sen:

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

Rajaa tulos verkkoon, joka sitä tarvitsi. Profiilin, jonka on toimittava hotellin Wi-Fi:ssä, mobiilihottispotissa ja toimiston LAN:issa, ei pitäisi periä alinta arvoa, jota mikä tahansa niistä vaatii, ellei asiakasohjelma pysty havaitsemaan reittiä.

Oikea arvo on suurin MTU, joka selviää reitistä, ei pienin, joka saa oireen katoamaan. Dokumentoi reitti, koettimen tulos ja palautus, ja tarkastele asetusta uudelleen, kun liityntäverkko muuttuu.

Aiheeseen liittyvät artikkelit