Uppgötvun leiðar-MTU gegnum VPN: stærð og ICMP-bilið
Göng minnka pakkann sem leiðin getur flutt, og uppgötvun virkar aðeins ef endurgjöfin berst. Mældu, prófaðu og sannreyndu leiðina í stað þess að giska.
Göng ljúka handabandi, litlar beiðnir koma til baka, og fyrsti stóri flutningurinn stöðvast. Þetta mynstur bendir á leiðar-MTU löngu áður en það bendir á afköst. Hlekkur hver á leiðinni takmarkar pakkastærðina, og innvafning eyðir hluta af því leyfi í ytri hausa, svo innri pakkinn verður að vera minni en hráa leiðin gæfi í skyn. Bilunin er hljóðlát, og það er það sem gerir hana dýra í greiningu.
Hvað leiðar-MTU mælir í raun
Leiðar-MTU er minnsti hlekkja-MTU á leiðinni milli tveggja hýsla, ekki MTU-ið sem prentað er á staðbundnu viðmótið þitt. Staðbundna gildið er þar sem matið byrjar, og leiðin ræður því hvar því verður að ljúka. Þess vegna geta sams konar göng virkað á einu aðgangsneti og stöðvast á öðru: leiðin breyttist, ekki stillingin. Að mæla einu sinni og gera ráð fyrir alls staðar er mistökin sem halda þessu vandamáli lifandi.
Fyrir göng er talan sem skiptir máli innri MTU, sem er leyfi ytri leiðarinnar að frádregnu því sem innvafningin eyðir. WireGuard bætir við ytri IP-haus og UDP-haus; aðrar flutningsleiðir bæta við sínum. Stilltu innri stærðina of hátt og hver fullstór pakki þarf sundrun sem kann að verða aldrei.
Hvers vegna göng minnka nothæfa pakkann
Ef viðmót ganganna heldur MTU líkamlega hlekksins, fer hver stór pakki eftir því að einhver neðar á leiðinni sé reiðubúinn að sundra honum. IPv4 leyfir það í grundvallaratriðum, en beinir sem sagt er að sundra ekki skilar villu í staðinn. IPv6-beinir sundra aldrei í flutningsleið, svo sama stilling hagar sér öðruvísi eftir vistfangi fjölskyldu. Hvort sem er lærir sendandinn ekkert fyrr en eitthvað tilkynnir til baka.
Hagnýt afleiðing er stærð sem passar handabandinu en ekki nytsamlegu farminum. TLS ClientHello eða DNS-fyrirspurn er nógu lítil til að komast ósnortin yfir minnkaða leið, á meðan magnflutningur gerir það ekki. Einkennin hópast því í kringum ákveðnar aðgerðir frekar en ákveðin hýsl.
Uppgötvun virkar aðeins þegar endurgjöfin berst
IPv4-uppgötvun byggist á don't-fragment bitinu: beinir sem getur ekki sent pakkann áfram skilar ICMP fragmentation-needed með MTU næsta hopps, og sendandinn lækkar mat sitt. IPv6 notar Packet Too Big skeyti í staðinn, því beinar sundra ekki í flutningsleið. Báðar aðferðirnar gera ráð fyrir að skeytið finni leiðina til baka til sendandans, í gegnum göngin og fram hjá hvaða eldvegg sem er á bakleiðinni. Þegar sú forsenda bregst heldur sendandinn áfram að reyna stærð sem leiðin getur ekki flutt.
Eldveggur sem leyfir echo request og echo reply hefur ekki endilega leyft þessar villutegundir. ICMP er fjölskylda, og þeir meðlimir sem skipta máli hér eru villurnar, ekki bergmálsparið. Athugaðu stefnu stjórnunarumferðar á báðum endum ganganna og á leiðinni milli þeirra, og fylgdu studdum leiðbeiningum kerfisins í stað þess að leyfa hverja ICMP-tegund alls staðar.
Sama síun getur verið inni í göngunum. Ef innri leiðin sleppir villunni en ytri leiðin flytur hana, getur sendandinn aðlagað sig að mörkum sem innvafða umferðin sér í raun aldrei.
Prófaðu leiðina í stað þess að giska á tölu
Haltu áfangastað, aðgangsneti og göngum föstum, og breyttu þá aðeins pakkastærðinni. don't-fragment prófun sem bregst með MTU-vísbendingu gefur þér mörk næsta hopps; endurtaktu þar til stærð stenst, og skráðu bæði stærðina og vistfangafjölskylduna.
ping -M do -s 1400 10.60.20.10
ping -M do -s 1300 10.60.20.10
ping -6 -M do -s 1300 2001:db8::10
Ping sem passar sannar ekki að fullstór skipting raunverulegs forrits passi, svo endurtaktu prófið með flutningnum sem reyndist bila. Berðu stærstu virku prófunina saman við MTU ganganna sem þú stilltir, og haltu tölunum tveimur aðskildum í athugasemdum þínum. Ef þær eru um það bil haus að frádregnu, hefur þú fundið innvafningarálagið en ekki bilun.
PLPMTUD, sem lýst er í RFC 4821, prófar upp á við og notar flutningsstaðfestingar í stað þess að treysta afhentum villum. Það hjálpar á leiðum sem sía ICMP, en stuðningur er breytilegur eftir stakki og eftir forriti. TCP-streymi getur jafnað sig sjálft á meðan UDP-forrit með föstum gagnagramsstærð heldur áfram að bregðast.
Veldu gildi og skráðu röksemdafærsluna
Að lækka MTU ganganna er bæði greining og lögmæt lagfæring þegar þú þekkir leiðina. Það kemur ekki í staðinn fyrir að vita hvaða leið og hvaða endurgjafarleið var við sögu, því gildi sem stillt er fyrir farsímahlekk verður óþarflega lítið á ljósleiðaratengingu. Skráðu valda stærð, prófunina sem réttlætti hana og afturköllunarskrefið.
IPv4-aðferðinni er lýst í RFC 1191 og leiðbeiningum um IPv6-pakkagerð í RFC 8201; að nefna bæði kemur í veg fyrir að næsti verkfræðingur leiði forsenduna út að nýju. Ef flutningurinn stöðvast enn á þeirri stærð sem þú valdir, hættu að lækka töluna og líttu á næsta lag. Leið sem bregst á hverri stærð er ekki MTU-vandamál.