Bližnji odgovor DNS se zdi rešen problem, dokler povezava ne pristane drugje. Geografski DNS in anycast poskušata skrajšati pot in to odločitev sprejmeta na podlagi različnih informacij. Nobeden ne zagotavlja, da je prehod, do katerega pridete, dosegljiv, da predstavlja identiteto, ki jo vaš odjemalec pričakuje, ali da vaša seja preživi spremembo vozlišča. Spodnje kontrole ločujejo ta štiri vprašanja.

Preverite, katero lokacijo resolver dejansko poroča

Pooblastilni strežnik, ki odgovarja na poizvedbo, občutljivo na topologijo, običajno vidi naslov rekurzivnega resolverja, ki je vprašal, ne naslova osebe, ki je vnesla ime. Centraliziran resolver je lahko daleč od odjemalcev, ki jim služi, in odgovor odraža resolver, ne njih. To ni napaka; tako se protokol obnaša, razen če so na voljo dodatne informacije. Specifikacija EDNS Client Subnet opisuje omejitev in neobvezno rešitev.

EDNS Client Subnet lahko prenaša informacije o izvornem omrežju, ko ga vsak udeleženec podpira in omogoči. Neobvezen je, ima posledice za zasebnost in predpomnjenje ter ni dovoljenje za domnevo, da kateri koli javni resolver poroča natančno lokacijo uporabnika. Preden ga vključite v zasnovo, vprašajte upravitelje resolverja.

dig +short vpn.example.com @1.1.1.1
dig +short vpn.example.com @9.9.9.9
dig +subnet=203.0.113.0/24 +short vpn.example.com

Preverite, kaj je odločilo usmerjanje anycast

Pri anycast več lokacij oglašuje dosegljivost enega naslova storitve, omrežje pa vsakega odjemalca dostavi vozlišču, ki ga ima raje njegovo usmerjanje. To izbiro opravita BGP in okoliška politika, ne razdalja na zemljevidu. Topološka bližina tudi na splošno ne pomeni boljše zmogljivosti povratne poti, ker je pot, ki se zdi kratka, lahko preobremenjena ali asimetrična. Naslov, ki ste ga dobili, ne pove ničesar o tem, katero vozlišče je odgovorilo.

Potrdite lokacijo, ki streže, s strani storitve ali iz odgovora, ki jo imenuje, ne le iz odgovora DNS. traceroute -n 198.51.100.20 prikazuje pot, ki ste jo prehodili, in še vedno ne imenuje gostitelja na njenem koncu, zato jo berite kot pot in ne kot odgovor.

Preverite, ali seja preživi spremembo vozlišča

Poizvedba DNS je kratka, seja VPN pa dolga, in obe imata povsem različne zahteve glede stanja. Usmerjanje se lahko premakne sredi seje, in ko se to zgodi, lahko poznejši paketi prispejo na vozlišče, ki vašega tunela ni nikoli videlo. Ali je to preživetje, je odvisno od izvedbe: skupno stanje, namerna ponovna povezava ali dokumentirana okvara. Naslov sam ne zagotavlja nič od tega.

Opazujte premik, namesto da ga predpostavljate. sudo tcpdump -ni any -c 20 esp prikazuje zunanje pakete, ko se pot spreminja, in nenadna sprememba naslova partnerja je premik, ki se dogaja. Izrecno določite predvideno vedenje za izvedbo, ki jo poganjate, nato pa ga preizkusite s prisilno spremembo poti. Če zasnova predpostavlja replikacijo seje, poimenujte mehanizem in poimenujte okvaro, ki je ne pokriva.

Preverite, ali se identiteta še vedno ujema

Vsaka vstopna točka mora predstaviti identiteto, ki jo pričakuje profil vašega odjemalca. Potrdilo, izdano za ime storitve, deluje med vozlišči, medtem ko potrdila za posamezno vozlišče prisilijo odjemalca, da sprejme nekaj novega, in prav tam se uporabniki naučijo klikati skozi opozorila. Ohranite pričakovano identiteto in profil skladna z vstopnim modelom.

Preverite to pri odjemalcu, ki je dosegel nenavadno vozlišče, ker je to primer, ko potrdilo za vozlišče postane vidno. openssl s_client -connect vpn.example.com:443 -servername vpn.example.com izpiše verigo in imena, kar je natanko tisto, kar odjemalec primerja. Nato se odločite, ali naj se profil zoži ali naj se model potrdil spremeni.

Preverite zapis, ne le prvega odgovora

Ocenite tri scenarije in za vsakega napišite štiri dejstva: običajen vstop, ena lokacija ni na voljo in dogovorjeni primer obnovitve. Štiri dejstva so uporabljeni resolver, vrnjeni naslov, lokacija, ki je stregla, in svež rezultat aplikacije. Ta zapis ločuje težavo izbire DNS od težave prehoda, usmerjanja ali stanja seje. Brez njega so vsi štirje z odjemalca videti enaki.

dig +short vpn.example.com
getent hosts vpn.example.com
curl -s -o /dev/null -w "%{http_code}
" https://vpn.example.com/health

Scenarije izvajajte iz reprezentativnih dostopovnih omrežij, ne le iz pisarne, ker je celotno vprašanje, do katere vstopne točke različni odjemalci dejansko pridejo. Eno omrežje je vzorec enega.

Sorodni članki