Pripojíte tunel, otvoríte súkromný panel a názov sa preloží na adresu, ktorú ste nikdy nevideli. Alebo sa stane opak: prehliadač ďalej funguje, kým nástroj príkazového riadka zrazu nič nepreloží. Oba výsledky pochádzajú z tej istej zmeny a ľudia to zvyčajne vysvetľujú jednou vetou o VPN, ktorá „používa vlastný DNS“, čo nie je dosť presné na ladenie ani overenie. V tej vete sa skrývajú dve otázky: ktoré dopyty má tento profil prevziať a poslal váš stroj tie dopyty skutočne prekladaču, ktorý mu bol pridelený? Držať ich oddelene je celá metóda, pretože test, ktorý ich mieša, dáva v oboch smeroch sebaistú nesprávnu odpoveď.

Prečo profil vôbec poskytuje prekladač

Vnútri tunela sa názvy za vzdialeným koncom zvyčajne prekladajú na adresy, ktoré existujú len v tejto sieti. Súkromná zóna ako corp.internal nemá verejnú delegáciu, takže prekladač, ktorý ju obsluhuje, musí byť dostupný z vnútra tunela. Ten istý mechanizmus slúži druhému účelu: keď by dopyty inak vyšli cez vášho poskytovateľa, prekladač na vzdialenej strane udrží dopyt vnútri šifrovanej cesty. Preto adresa DNS servera prichádza ako súčasť politiky pripojenia a nie ako globálne nastavenie, ktoré ste raz zvolili pre stroj.

Adresa sama o sebe nič nerozhoduje. Prekladač môže odpovedať len vtedy, keď k nemu existuje trasa, a najčastejšia porucha je prekladač dostupný iba vtedy, kým je tunel hore. Keď tunel padne a politika zostane, dopyty idú na adresu bez cesty, a príznakom je vypršanie časového limitu, nie čistá chyba. Ten rozdiel je dôležitý, keď čítate ďalší výsledok testu, pretože vypršanie limitu posiela ľudí do nastavení prenosu, ktoré nikdy neboli zahrnuté.

Porovnajte oba návrhy skôr, než porovnáte odpovede

Plný tunel a rozdelený DNS dávajú opačné očakávania a ani jedno nie je porucha. Pod plným tunelom sa každý dopyt môže presunúť k poskytovateľovi alebo k firemnému prekladaču, preto je iná odpoveď verejných názvov po pripojení očakávaná. Pod rozdeleným DNS idú k súkromnému prekladaču len uvedené domény, zatiaľ čo všetko ostatné zostáva lokálne; vo Windows žije zoznam domén v Name Resolution Policy Table, v macOS v zodpovedajúcich doménach nastavení DNS a na hostiteľovi so systemd-resolved v smerovacích doménach pre každé pripojenie.

Toto porovnanie treba urobiť ako prvé, pretože rozhoduje o tom, čo sa počíta ako porucha. Pri rozdelenom DNS je verejný názov odpovedajúci z nového prekladača to, čo stojí za vyšetrenie, kým interný názov odpovedajúci správne je systém, ktorý robí svoju prácu. Pri plnom tuneli je anomáliou verejný názov, ktorý stále odpovedá z prekladača vášho poskytovateľa. Dokumentácia Microsoftu k prekladu názvov VPN opisuje poradie Windows týchto pravidiel, vrátane toho, ako sa zodpovedajúca položka politiky konzultuje pred vlastnými servermi adaptéra.

V miestnosti je aj tretí prekladač, na ktorý sa ľahko zabúda. Zabezpečené DNS prehliadača prekladá názvy samo a môže odpovedať ďalej po tom, čo tunel zmenil politiku operačného systému, takže načítaná stránka dokazuje, že prekladač prehliadača fungoval, nie že bol profil aplikovaný. Ak porovnávate len to, čo ukazuje prehliadač, polovicu času testujete nesprávnu vrstvu.

Zaznamenajte východiskový stav s jedinou premennou

Zmeňte tunel. Nezmeňte v tom istom kroku aj názov, nástroj alebo príponu vyhľadávania. Vyberte názov, na ktorý smiete dopytovať, poznamenajte si, ktorú aplikáciu ste použili, a zapíšte buď vrátenú adresu, alebo presnú chybu. Vo Windows Get-DnsClientServerAddress -AddressFamily IPv4 vypisuje servery pre jednotlivé adaptéry a Get-DnsClientNrptPolicy vypisuje položky politiky; v Linuxe so systemd-resolved resolvectl status ukazuje DNS servery a smerovacie domény pre jednotlivé pripojenia; v macOS scutil --dns vypisuje poradie prekladačov, ktoré systém skutočne dodrží.

Potom sa pripojte bežnými ovládacími prvkami klienta a zopakujte presne tie isté príkazy. Uložte prvý výstup namiesto spomienky naň, pretože porovnanie je celý zmysel a druhé čítanie po vyčistení vyrovnávacej pamäte je už iné meranie. Ak bol východiskový stav zachytený s prehliadačom vpredu a spustenie po pripojení prebieha v termináli, porovnávate dva prekladače, nie dva stavy jedného prekladača.

Výslovný dopyt a vyhľadanie aplikácie sú rôzne testy

Spýtať sa jedného konkrétneho servera pomocou nslookup name 10.20.0.1 alebo dig @10.20.0.1 name dokazuje jedinú vec: že server, ktorý ste uviedli, odpovedá, keď sa k nemu dostanete. Obchádza úplne logiku výberu, takže nemôže povedať, či by systém tento server pre tento názov vybral. Použite ho na overenie, či je pridelený prekladač dostupný, a nepoužívajte ho na overovanie politiky.

Vyhľadanie cez lokálny prekladač výber skutočne precvičuje. resolvectl query name prechádza rovnaké pravidlá domén smerovania a hlási, ktorý protokol odpovedal, Resolve-DnsName vo Windows prechádza tabuľkou politiky a vyrovnávacou pamäťou klienta a scutil --dns ukazuje poradie, ktoré by vyhľadanie nasledovalo. Spustite oba druhy a držte ich v oddelených stĺpcoch svojich poznámok. Úspešný výslovný dopyt vedľa neúspešného vyhľadania aplikácie je problém smerovania alebo výberu, nie prekladač, ktorý odmieta pracovať.

Vyrovnávacia pamäť stojí medzi vami a odpoveďou. Operačný systém, lokálny stub prekladač, prehliadač aj negatívna vyrovnávacia pamäť uchovávajú výsledky, takže vyhľadanie môže uspieť bez toho, aby jediný paket opustil stroj. Zaznamenajte výsledok skôr, než čokoľvek vyčistíte: ipconfig /flushdns, resolvectl flush-caches alebo sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder v macOS. Široký reset siete v tejto fáze vynechajte, pretože ničí dôkazy, ktoré ešte zbierate.

Čo rozdiel znamená

Porovnajte dva zaznamenané riadky a klasifikujte zmenu skôr, než sa dotknete jediného nastavenia.

Observation after connectMost likely causeNext step
Answer moves to a private address rangeExpected under split DNS or a private zoneConfirm the suffix is in the effective policy, then test the service
Lookup times out while connected, works after disconnectThe assigned resolver has no route from this machineProbe it with an explicit query, then re-read the policy
Internal name fails, public names workWrong namespace or a suffix missing from the policyQuery the fully qualified name and check the domain list per platform
Internal name returns a public addressSplit DNS not applied; a public resolver answeredCheck browser secure DNS first, then the per-link domain list

Jeden riadok si zaslúži dôraz. Názov, ktorý sa preloží, nie je služba, ktorá funguje, a úspech DNS hovorí len to, že sa našla adresa. Nehovorí nič o presmerovaní, pravidlách firewallu ani o tom, či váš účet smie službu vôbec používať, takže skončite testovaním skutočnej aplikácie namiesto predpokladu, že porucha sama ustúpila.

Obnovte východiskový stav a overte ho

Odpojte sa vlastnými ovládacími prvkami klienta namiesto zabitia procesu a potom znova prečítajte tie isté tri príkazy. Servery pre jednotlivé pripojenia, položky politiky a odpoveď pre váš testovací názov by sa mali vrátiť k východiskovému stavu, ktorý ste si predtým zapísali. Zvyšná položka politiky po čistom odpojení je skutočná porucha, ktorú stojí za to zaznamenať, a práve preto sú ručné úpravy generovaného súboru prekladača zlý zvyk: súbor sa prepíše a úprava zmizne, alebo úprava prežije a pripne prekladač, ktorý už nemá trasu.

Prejdite tento zoznam raz, v poradí. Rozhodnite, ktorý návrh profil uplatňuje, skôr než posúdite akýkoľvek výsledok. Držte názov, nástroj a príponu pevné v oboch behoch. Oddeľte výslovný dopyt od vyhľadania aplikácie. Čítajte efektívnu politiku, nielen odpoveď. Vyčistite vyrovnávacie pamäte nakoniec, po zapísaní porovnania. Overte skutočnou aplikáciou, potom raz restartujte a potvrďte, že stav po odpojení je stále čistý.

Súvisiace články