VPN-þjónn sem svarar úr farsímaneti en bregst frá sófanum er venjulega ekki vandamál með skírteini. Biðlarinn inni í LAN-inu biður beininn um að þýða pakka sem áfangastaðurinn er eigið opinbert vistfang beinisins, sem þýðir að pakkinn verður að fara út og koma strax aftur inn. Þessi aðgerð heitir hairpinning, og margir beinar annaðhvort útfæra hana ekki eða gera það aðeins þegar hak er sett í reit. Það er einmitt árangur prófsins utan frá sem gerir málið ruglingslegt, því það sannar að hlustandinn og áframsendingarreglan séu í lagi.

Pakkinn fer út og kemur aftur inn

Fylgdu pakkanum. Biðlarinn leysir opinbera nafnið, tengist opinbera vistfanginu, og áfangastaðar-NAT beinisins skrifar áfangastaðinn yfir í innri þjóninn. Svar þjónsins er stílað á LAN-vistfang biðlarans, svo það fer til baka um LAN-tengi beinisins án þess að fara nokkurn tíma í gegnum NAT-regluna sem hefði þýtt upprunann til baka.

Nú fær biðlarinn pakka frá vistfangi sem hann hefur aldrei sent neitt á, og hendir honum. Þetta misræmi er alla bilunin.

RFC 4787 lýsir hegðuninni sem búist er við af NAT í þessu tilviki, og stutta útgáfan er að hún er valfrjáls í reynd jafnvel þar sem hún er tilgreind í kenningunni. Sumir beinar kalla stillinguna NAT loopback, aðrir kalla hana hairpin NAT eða NAT reflection, og sumir sýna ekkert. Beinn sem hefur hana ekki er ekki rangt stilltur; hann gerir hið venjulega, og lagfæringin á heima annars staðar. Ekki álykta út frá misheppnuðu staðbundnu prófi að opinbera áframsendingarreglan sé röng.

Athugun 1: prófaðu leiðirnar tvær aðskildar

Utan LAN-sins skaltu tengjast sama sniði og raunverulegur notandi myndi nota og staðfesta að lotan komist á. Innan frá skaltu tengjast opinbera vistfanginu með sama sniði og skrá nákvæmu villuna og tímann.

Nákvæmt staðbundið próf heldur hýsingarnafninu og skiptir aðeins um vistfangið: curl -v --resolve vpn.example.com:443:203.0.113.10 https://vpn.example.com/ sendir beiðnina á opinbera vistfangið og sýnir samt rétta þjónsnafnið. Það aðgreinir nafnleysingarvandamál frá þýðingarvandamáli, sem er auðvelt að rugla saman þegar sama nafnið virkar frá kaffihúsi. Taktu eftir því hvort biðlarinn bregst við TCP-tengingu eða síðar við TLS, því hið fyrra bendir á þýðingu og hið síðara á auðkenni.

Athugun 2: lestu það sem þjónninn sér

Gagnlegasta athugunin er sjónarhorn þjónsins. Keyrðu upptöku á VPN-hýsingunni síuðri á LAN-vistfang biðlarans og á LAN-vistfang beinisins, og endurtaktu síðan staðbundnu tilraunina. Ef ekkert berst lifði pakkinn ekki þýðinguna af.

Ef tenging berst frá LAN-vistfangi beinisins í stað vistfangs biðlarans er hairpinning að eiga sér stað og uppruninn var skrifaður yfir. Þetta er virk stilling, ekki bilun.

Athugun 3: lagaðu án þess að snerta ytri leiðina

Þrjár studdar myndir eru til, í vaxandi röð eftir áhrifum. Sú þrengsta er skipt DNS: birtu innri færslu svo sama þjónsnafnið leysist í innra vistfangið fyrir biðlara á LAN-inu, sem forðast opinberu leiðina algjörlega. Næsta er að virkja skjalfesta loopback- eða reflection-valkost beinisins, ef hann hefur slíkan, og beita honum aðeins á þessa þjónustu. Sú víðtækasta er source-NAT-regla á beininum sem skrifar yfir umferð frá LAN-inu til þjónsins svo svarið komi til baka um beininn; á Linux-beini er það regla MASQUERADE í POSTROUTING sem passar við vistfang og port þjónsins. Allar þrjár láta ytri leiðina ósnerta, og það er eiginleikinn sem á að varðveita.

Ekki víkka ótengda portframstillingu til að láta staðbundnu leiðina líkjast ytri leiðinni, og ekki færa þjónustuna á annað port til að komast hjá vandamálinu. Báðar breytingar hafa áhrif á hvað ytri heimurinn getur náð í til að laga eitthvað sem aðeins innri heimurinn sér.

Skipt DNS hefur eina gildru sem vert er að nefna. Að skipta hýsingarnafni út fyrir handahófskennt IP breytir því sem biðlarinn staðfestir, svo innri færslan verður áfram að passa við nafnið á skírteininu.

Athugun 4: staðfestu báðar leiðir eftir á

Endurtaktu ytri tilraunina utan LAN-sins, endurtaktu innri tilraunina með sama sniði, og staðfestu að annáll þjónsins sýni tvær aðskildar farsælar lotur en ekki einn árangur og eitt þögn. Athugaðu síðan að aðrir biðlarar nái enn hlustandanum og að leiðir að einkaaðföngum séu óbreyttar.

Haltu skránni stuttri: hvaða vistfang hver biðlari notaði, hvað þjónninn sá og hver af þremur lagfæringunum var beitt. Hairpinning-kröfurnar í RFC 4787 eru viðmiðið fyrir það sem búist er við af NAT hér, og þær útskýra hvers vegna beinn án eiginleikans hegðar sér eðlilega. Staðbundin bilun sem ytri heimurinn getur ekki endurskapað er þýðingarspurning þar til annað er sannað, svo prófaðu hana sem slíka.

Tengdir greinar