Þú hefur kröfu sem beygist ekki: fjarlæga hliðin verður að fá sama 1,500 bæta IP-pakkann og sendandinn sendir frá sér, hausar meðtalnir. Göng geta ekki vafið þeim pakka ásamt eigin ramma inni í öðrum 1,500 bæta IP-pakka, svo eitthvað í hönnuninni verður að láta undan. Röðin hér að neðan er sú sem ég nota í breytingaglugga: skrifa bætabúddið, sanna hvað undirlagið getur raunverulega borið, velja svo nákvæmlega eina flutningsaðferð og staðfesta innri pakkann hinum megin.

Skrifaðu bætabúddið áður en þú breytir sniði

Innheimtun bætir bætum við á nokkrum lögum, og heildin er eiginleiki sniðsins þíns en ekki fasti sem hægt er að fletta upp. Vistfangafjölskylda, val á dulritun, flutningssamskiptaregla og hvaða þjöppunar- eða römmunarvalkostur sem er hreyfa töluna, þess vegna er frádráttur sem er afritaður úr annarri uppsetningu einskis virði sem búddi. Byrjaðu á innri kröfunni, bættu við mældri yfirferð á hvern pakka í þinni eigin stillingu og skrifaðu útkomandi ytri stærð á breytingamiðann áður en einhver breytir skrá.

Tvær tölur ráða hönnuninni: stærsti ytri pakki sem leiðin ber án sundrunar, og aukabæturnar sem innheimtunin þín þarf. Þegar sú fyrri er minni en sú seinni plús 1,500 verður önnur þeirra að breytast. Valið er þá þröngt en ekki skapandi, þess vegna skrifa ég báðar tölurnar niður áður en valkostir eru ræddir. Ekkert á göngulaginu þjappar þessum bætum í burtu, og engin ein MTU-heiltala fjarlægir kröfuna sem þér var gefin.

Prófaðu undirlagið með pingum sem banna sundrun

Mældu leiðina í stað þess að treysta MTU viðmótsins, því minnsti hlekkurinn á ytri leiðinni er sá sem skiptir máli. Á Linux stillir -M do bannið við sundrun og -s tekur ICMP-hleðsluna, svo 1,500 bæta rammi svarar við 1,472 bætum af hleðslu þegar 20 bæta IP-hausnum og 8 bæta ICMP-hausnum hefur verið eytt. Hækkaðu hleðsluna þar til prófið mistekst og stökktu svo á jumbo-stærð til að sjá hvort leiðin ber hana yfirhöfuð.

ping -M do -s 1472 -c 2 198.51.100.10
ping -M do -s 8972 -c 2 198.51.100.10
tracepath -n 198.51.100.10

Leið sem fer í gegnum 1,472 og mistekst á 8,972 getur ekki borið 1,500 bæta innri pakka ásamt yfirferð í einum ytri pakka. Það er svarið sem þú þurftir áður en þú opnaðir VPN-stillinguna. Það ræður líka hvor af næstu tveimur hlutum á við þig, svo hafðu prófniðurstöðurnar tvær við miðann. Að giska hér kostar eitt viðhaldsglugga, því göng sem tilkynna sig í gangi segja ekkert um stærsta pakkann sem leiðin tekur við.

Hækkaðu MTU leiðarinnar aðeins þar sem hvert stökk er samþykkt

Jumbo-rammar eru eiginleiki frá enda til enda, ekki stilling sem þú kveikir á tveimur endapunktum sem þú stjórnar. Hver rofi, beinir og afhending þjónustuveitanda á ytri leiðinni verður að samþykkja stærri stærðina, og eitt einasta 1,500 bæta stökk mun þegjandi henda pakkanum sem þú stækkaðir rétt í þessu. Að hækka aðeins staðbundið viðmót er klassíska hálfbreytingin sem lætur göngin líta út fyrir að vera brotin á meðan undirlagið sleppir þegjandi.

ip link set dev eth1 mtu 9000
ip link show dev eth1
ping -M do -s 8972 -c 2 198.51.100.10

Breyttu viðmótinu og prófaðu svo sömu leið aftur áður en þú breytir einhverju öðru. Ef prófið mistekst enn skaltu afturkalla með ip link set dev eth1 mtu 1500 og fara yfir í sundrun í stað þess að deila við þjónustuveitanda um hlekk sem þú átt ekki.

Notaðu sundrun ganga þegar undirlagið getur ekki stækkað

Studd sundrunaraðferð undir innri pakkanum leyfir nokkrum ytri pökkum að bera einn innri pakka, og fjarlægi endapunktur ganganna setur þá saman aftur áður en upprunalega pakkanum er skilað upp í stakkinn. UDP-sundrunarvalkostur Community OpenVPN er ein útfærsla þeirrar hugmyndar, og hann er ekki það sama og venjuleg IP-sundrun ytri pakkans. Báðir aðilar verða að keyra útgáfu sem styður sniðið, og gagnaleiðin verður að vera sú sem þú heldur: OpenVPN 3-biðlarar og gagnarásir sem eru flýttar í kjarnanum hafa mismunandi mörk, svo snið sem virkar á einum biðlara getur mistekist á öðrum.

openvpn --config client.ovpn --tun-mtu 1500 --fragment 1400 --verb 4

Venjuleg ytri sundrun er hinn kosturinn, og hann er veikari. IPv6-beinar senda ekki áfram pakka í sundur yfirhöfuð, svo of stór ytri pakki deyr einfaldlega og sendandinn fréttir það aðeins ef viðkomandi ICMPv6-skilaboð lifa leiðina af. Sundranir bjóða líka upp á síun og mögnun taps, þess vegna meðhöndla ég þetta sem varaleið en ekki áætlun.

Straumaþunginn ytri burður sneiðir hjá stærðarspurningunni með því að skipta eigin bætastreymi, og endurbyggði innri pakkinn getur enn verið 1,500 bætir. Það er flutningsákvörðun með eigin kostnaði, þar á meðal þekkt hegðun TCP inni í TCP, svo taktu hana viljandi en ekki sem aukaverkun MTU-deilu.

Staðfestu að innri pakkinn berist óbreyttur

Sannprófun er ekki heppilegt handaband. Fangaðu á viðmóti ganganna á báðum endum og berðu saman stærð og innihald pakkans sem forritið sendi í raun og þess sem fjarlæga hliðin fékk.

ip link show dev tun0
ping -M do -s 1472 -c 2 10.8.0.1
tcpdump -ni tun0 -c 5 'icmp and greater 1000'

Ef fangið sýnir innri pakkann í fullri stærð hinum megin virkar flutningsvalið og eftir er að skrá það. Ef það sýnir ekkert á meðan göngin tilkynna sig í gangi er ytri pakkanum hent einhvers staðar milli endapunkta, sem sendir þig aftur í prófið en ekki í dulritunarstillingarnar.

Skráðu þrjá hluti á miðann áður en þú lokar honum: mælda ytri búddið, aðferðina sem þú valdir og skipunina sem sannaði að innri pakkinn lifði af. Næsta manneskja sem snertir þessi göng þarf alla þrjá, og ekkert þeirra er hægt að endurgera einungis úr stillingarskránni.

Tengdir greinar