Sérhvert biðlara-snið nefnir einn þjón, svo frá sjónarhóli notandans er ein göng og einn staður þar sem verndin endar. Það sem gerist eftir fyrstu gáttina er hönnunarákvörðun sem biðlarinn sér aldrei, og hinar tvær algengu hannanir hegða sér mjög ólíkt við skoðun. Í raðgöngum afkóðar fyrsta gáttin og endurkóðar. Í hreiðruðum göngum fjarlægir hún ytra lag og sendir innri göng áfram sem hún getur ekki opnað. Fjöldi hoppa er sá sami í báðum, þess vegna verður að teikna muninn frekar en telja hann.

Byrjaðu á biðlinum og nefndu báða enda

Byrjaðu þar sem notandinn byrjar, í tengisniðinu. Það heldur einu fjartengdu vistfangi, einni auðkenningaraðferð og, þegar hönnunin styður það, leiðarlista. Merktu þá ytri göng frá biðlinum að gátt A og gefðu henni dæmivistanföng: vistfang ganga biðlarans 10.77.0.2, vistfang A 10.77.0.1 og opinber endapunktur A 198.51.100.10, tekin úr skjölunarsviðinu TEST-NET-2 svo ekkert í dæminu geti rekist á raunverulegan hýsil.

Ekkert í því sniði nefnir gátt B, og það er ekki galli. Annað hoppið tilheyrir A, og eina skylda biðlarans er að skila umferð til A og taka við því sem kemur til baka. Hvort A lýkur göngunum, sendir þau áfram eða opnar ný, er spurningin sem restin af þessari göngu svarar, og hún ræður því hvað A getur lesið.

Röð: A afkóðar og endurkóðar svo

Í raðhönnuninni lýkur A umferð tvisvar. Hún fjarlægir verndina frá biðlinum, fær IP-pakka forritsins og sendir svo þann pakka um annað göng sem A myndar til B. Milli þessara tveggja aðgerða liggur pakkinn í sendingarleið A sem venjulegur IP-pakki sem er beint að einkaaðstöð.

Það hefur tvær afleiðingar sem er þess virði að segja hreint út. A getur beitt stefnu á innri pakkann, í formi leiða, síureglna og skráningar uppruna og áfangastaðar, og A verður að halda tveimur settum skilríkja: einu sem þjónn fyrir biðlarann og einu sem biðlari B. Vernd er til á hverri stundu, en hluturinn sem er verndaður skiptir um auðkenni hjá A.

Af því leiðir ekki að A lesi skýran texta forritsins. Þegar biðlarinn og þjónustan keyra TLS og sannreyna skírteini hvors annars, sér A TLS-færslustraum en ekki læsilega beiðni. Að staðfesta hvar sú vernd endar krefst þess að líta á skírteinakeðju þjónustunnar, ekki skýringarmynd ganganna.

Hreiðrað: A fjarlægir aðeins ytra lagið

Í hreiðruðu hönnuninni byggir biðlarinn fyrst innri göng til B og ber svo þau göng innan í þeim ytri til A. A fjarlægir ytri hausinn, finnur innri göng og sendir þau áfram án þess að halda lyklum þeirra, svo innri verndin endar samt hjá B.

Þá ber uppstrengur biðlarans tvö lög, en leiðin milli A og B ber eitt. A sér ytri vistföng innri ganganna, sem nægir til að vita að umferð sé til og gróflega hvert hún fer, og nægir ekki til að lesa farminn. Það er allur munurinn frá raðtilvikinu, og enginn hoppteljari sýnir hann. Það sem A getur samt gert er að neita að senda áfram það sem hún getur ekki lesið, og það stendur rekstraraðila þeirrar gáttar alltaf til boða.

Hreiðrun kostar þennan eiginleika. Hvert lag bætir hausakostnaði, svo MTU- og MSS-áætlanagerð verður skylda en ekki snyrtileg, og leið sem virkar með einu lagi getur hljóðlega sleppt stórum pökkum með tveimur. Hvert lag þarf líka eigin hegðun við endurtengingu og lífhaldi, og bilun í einu lagi lítur út sem hlutaferill í gegnum hitt.

Teiknaðu áhorfendurna, ekki bara göngin

Göngin eru auðveldi hlutinn af teikningunni. Áhorfendurnir eru það sem hönnunin snýst um, svo skrifaðu eina línu fyrir hvert sjónarhorn og fylltu inn hvað hver getur raunverulega lesið.

Vantage pointSerial chainNested chain
Client's access networkOuter tunnel onlyOuter tunnel only
Operator of AInner IP packet between A and BOuter addresses of the inner tunnel, not its payload
Path between A and BSecond tunnelSecond tunnel
Operator of BInner packet re-originated by APayload after the inner layer is removed
Service edgeTraffic from the exit addressTraffic from the exit address

Tvær línur ruglast stöðugt: rekstraraðili A og veitandi ganga biðlarans. Þeir geta verið ein eining, og aðskilin gáttanöfn gera þá ekki óháða. Óháð eignarhald krefst aðskilinnar stjórnsýslustýringar, aðskilinna skilríkja og aðskilinnar skráningar.

Lýsigögn lifa af báðar hannanir. Tímasetning, pakkastærðir og fjöldi tenginga eru áfram greinanleg á hverju hoppi, svo tvö hopp hækka kostnað fylgni í stað þess að fjarlægja merkið. Hönnun sem lofar ósýnileika ætti að vera borin saman við þann lista áður en einhver treystir henni.

Farðu bilunarleiðirnar áður en þú velur

Brjóttu hluti viljandi frá biðlinum, í þeirri röð sem notandi myndi mæta þeim. Byrjaðu á viðmótinu og MTU þess, því hreiðrun bregst á pakkastærð löngu áður en hún bregst á auðkenningu.

ip -4 addr show dev tun0
ip link show dev tun0 | grep mtu
ping -M do -s 1380 -c 2 10.77.1.1

Staðfestu svo verndarendapunktana í stað þess að gera ráð fyrir þeim. Biddu þjónustuna um skírteinið sitt innan frá hverjum þeim göngum sem eru uppi, og berðu saman keðjuna sem biðlarinn sér við keðjuna sem þjónustan leggur raunverulega fram. Gátt sem endurskrifar undir eða hlerar breytir því skírteini, og skoðunin verður sýnileg með einni skipun.

openssl s_client -connect intranet.example.com:443 -brief < /dev/null

Endaðu á endurtengingarfylkinu: göng biðlarans falla, göng B falla, leiðin milli A og B breytist. Athugaðu hvað kemur til baka og hvað ekki, og hvort innri tenging fellur nokkurn tíma á leið utan fyrirhugaðs burðar síns. Skráðu vistföngin sem hver prófun notaði, því að endurtaka hana á öðru aðgangsneti svarar annarri spurningu. Endurtaktu einnig MTU-prófið eftir hverja endurtengingu, því breytt leið getur lækkað nothæfa stærð án þess að ein einasta stillingarlína hreyfist.

Veldu rað þegar A verður að beita stefnu á innri pakkann, eða þegar biðlarinn getur ekki keyrt tvö stöfluð göng. Veldu hreiðrun þegar innri farmurinn verður að vera ólæsilegur hjá A. Skrifaðu valið niður með áhorfendum þess og MTU-tölum, og næsti maður þarf ekki að teikna alla myndina upp á nýtt til að svara einni spurningu.

Tengdir greinar