Du galiniai taškai už operatoriaus NAT ir užrakintas biuro maršrutizatorius nepalieka jokio įeinančio prievado peradresuoti, o refleksas yra vis tiek jo paprašyti. Geresnis klausimas – kuri pusė gali skambinti į išorę ir kuriai pasiekiamai paslaugai leidžiama perduoti srautą. Keturi sprendimai į šį klausimą atsako skirtingai ir nepavyksta skirtingai, kai kelias užblokuotas. Pasirinkimas tarp jų yra garantijų, o ne protokolų pavadinimų palyginimas.

Keturi sprendimai, keturi skirtingi pažadai

Žemiau pateikta lentelė yra trumpoji versija. Vidurinį stulpelį skaitykite kaip pažadą, kurį galite patikrinti, o dešinį – kaip pažadą, kurio niekas nedavė.

DesignWho initiatesPromise you getPromise you do not get
Routed VPN hubBoth ends, outbound to the hubA routed path to permitted prefixesAccess to services no policy allows
Peer traversal with ICEBoth peers to a rendezvous serviceA path tested between the two peersA direct path through every NAT
TURN relayClient outbound to a relayTransport that survives symmetric NATPeer discovery or a usable directory
Application brokerWorkstation outbound to a brokerOne audited application sessionSubnet-wide reachability

Kuri eilutė taikoma, priklauso nuo užduoties, o ne nuo pageidavimo. Viena nuotolinio darbalaukio sesija, vienas administravimo apvalkalas ir prieiga prie viso privataus potinklio yra trys reikalavimai, kuriems nereikia to paties įėjimo taško, net jei jie atsitiktinai susiję su ta pačia mašina.

Koncentratorius keičia, kas skambina į išorę, o ne ką leidžiama

Sprendime su maršrutizuotu koncentratoriumi nuotolinis nešiojamasis kompiuteris ir darbo stotelė, arba priešais ją esantys svetainės vartai, kiekvienas atidaro išeinantį tunelį į paslaugą, kurią abu gali pasiekti. Niekas nepriima neprašyto ryšio darbo stotelės maršrutizatoriuje, ir būtent todėl šis sprendimas išgyvena NAT ir veikia net tada, kai svetainė neturi statinio adreso. Tada koncentratorius maršrutizuoja srautą tarp dviejų vidinių adresų pagal savo politiką.

Kaina ta, kad koncentratorius turi egzistuoti, būti pasiekiamas iš abiejų pusių ir kažkas turi jį valdyti. Išeinančio srauto filtravimas turi leisti transportą, o tinklas, kuris jį blokuoja, sugriaus sprendimą, net jei prievado peradresavimo nereikėjo.

Subtilioji dalis ta, kad pasiekiamumas ir autorizacija yra atskiri sprendimai, priimami skirtingose vietose. Maršrutas į prefiksą nieko nesako apie tai, kurią darbo stotelės paslaugą tapatybė gali naudoti, o ugniasienės taisyklė, leidžianti tunelį, nieko nesako apie tai, ar paskyra gali prisijungti. Konfigūruokite abu, išbandykite abu, o autorizacijos sprendimą palikite sistemai, kuri valdo išteklių, o ne maršrutizavimo lentelei.

Pralaužimas veikia tik tada, kai abi krūvos jį įgyvendina

Pralaužimas tarp lygiaverčių mazgų yra konkrečios sistemos savybė, o ne nustatymas, gerinantis VPN. Interactive Connectivity Establishment surenka kelis kandidatų adresus ir tikrina poras, kol viena veikia: mazgo kandidatai vietiniuose sąsajuose, serverio atspindžio kandidatai, sudaryti iš to, ką atskleidžia NAT, ir relelio kandidatai, priskirti relelio serveryje. Vien privatus adresas nėra kelias, nes kita pusė negali į jį maršrutizuoti.

Relinį atvejį verta suprasti prieš jį atmetant. RFC 8656 aprašo TURN kaip protokolą, kuriame klientas prašo serverio relinio transporto adreso, o serveris perduoda srautą tarp to kliento ir jo lygiaverčių mazgų. Taigi duomenis neša relė, o tai iš esmės skiriasi nuo katalogo, kuris tik padeda galiniams taškams susitikti. Relės adreso keitimas su kita puse yra koordinavimo žingsnis, kurį programa turi atlikti.

Ko negalite pažadėti, tai tiesioginio kelio. Simetrinis NAT ir kai kurios įmonių ugniasienės nugali skylių gręžimą, o kai taip atsitinka, sistema arba grįžta prie relės, arba nepavyksta. Taip pat negalite daryti išvados, kad du išversti galiniai taškai niekada negalės kalbėtis; palaikoma krūva su relės atsarginiu variantu egzistuoja būtent todėl, kad jie dažnai gali. Nuspręskite, ar svarbiau prieinamumas, ar tiesioginis ryšys, tada patikrinkite, kokį kelią diegimas iš tikrųjų pasirinko, o ne darykite prielaidą apie palankų atvejį.

Brokeris yra siauresnis už tinklą

Kai reikalavimas yra viena programa, programų brokeris arba darbo stotelės pradėtas atvirkštinis ryšys gali būti mažiausias atsakymas. Darbo stotelė skambina į išorę brokeriui, brokeris autentifikuoja nuotolinį naudotoją, ir perduodama tik ta programos sesija. Maršrutas į darbo stotelės potinklį nesukuriamas, todėl nuotolinės sesijos pažeidimas nepaveldi kelio į kiekvieną įrenginį šalia.

Šis siaurumas turi kainą: kiekviena papildoma programa reikalauja savo integracijos, o viskas, ką programa daro prielaidą apie vietinį tinklą, pavyzdžiui, failų bendrinimas, kurį ji atidaro netoliese esančiame serveryje, gali būti nepasiekiama. Brokeriai taip pat sutelkia politiką ir registravimą vienoje vietoje, o tai naudinga tol, kol ta vieta netampa trikdžiu.

Palyginkite pasitikėjimo ribas, tada išbandykite kelią

Koncentratorius, kuris užbaigia tunelius, gali skaityti jo maršrutizuojamą srautą. Relė gali perduoti nepriklausomai apsaugotą apsikeitimą, kai programa šifruoja nuo galo iki galo, o brokeris paprastai užbaigia sesiją, kurią pateikia. Nustatykite, kur apsauga iš tikrųjų baigiasi, prieš nuspręsdami, kad du sprendimai yra lygiaverčiai, nes abu yra šifruoti.

Tada patikrinkite, ką darbo stotelė iš tikrųjų pasiekia išeidama, nes kiekvienas aukščiau pateiktas sprendimas nuo to priklauso. Vykdykite tai darbo stotelėje, pakeisdami pagrindinio kompiuterio vardą, kurį ketinate naudoti.

ss -lntup
nc -vz hub.example.com 443
curl -sS -o /dev/null -w "%{http_code}\n" https://hub.example.com

Priimkite sprendimą tik po to, kai numatyta nuotolinė operacija pavyksta leidžiamos tapatybės sąlygomis, nepatvirtinta tapatybė atmetama, o elgsena, kai tiesioginis ar relinis kelias nepasiekiamas, yra žinoma ir dokumentuota. Įtraukite pakartotinį prisijungimą ir įprastą darbo stotelės paleidimo kontekstą, nes sesija, prasidėjusi biure per LAN, netikrina nieko, nuo ko priklauso nuotolinė prieiga.

Susiję straipsniai