Tailscale MagicDNS funguje, ale nslookup na macOS zlyháva
Aplikácie v macOS prekladajú cez systémový resolver; nslookup číta statický súbor. Otestujte rovnaký názov tailnetu oboma cestami, než zmeníte akékoľvek nastavenie DNS.
Na Macu ping preloží názov stroja v tailnete, zatiaľ čo nslookup vráti chybu, a oba príkazy hovoria pravdu. Aplikácie prekladajú cez systémový resolver, ktorý Tailscale konfiguruje pre každé rozhranie, zatiaľ čo nslookup a host čítajú statický súbor, ktorý MagicDNS nikdy neopraví. Obe cesty sa môžu rozísť bez straty jediného paketu. Určte, ktorou cestou sa vydala vaša zlyhávajúca aplikácia, než zmeníte akékoľvek nastavenie DNS.
Dve cesty prekladu, dve rôzne odpovede
Prevod aplikácií na macOS ide cez systémový resolver a záznamy resolvera obmedzené na rozhranie rozhodujú, ktorý server odpovedá za ktorú doménu. Tailscale tam inštaluje svoj záznam MagicDNS, a preto Safari a ssh nachádzajú názvy tailnetu. nslookup, host a dig namiesto toho čítajú /etc/resolv.conf alebo prevezmú server z príkazového riadka, a tento súbor zvyčajne stále uvádza router alebo kancelársky server. Názov tailnetu odoslaný do tohto súboru nemá žiadnu autoritatívnu odpoveď, ktorá by naň čakala, takže nástroj hlási zlyhanie, zatiaľ čo systémová cesta uspeje.
Ani jeden z nástrojov sa nespráva nesprávne. Pýtajú sa rôznych serverov a iba jeden z týchto serverov vie o vašom tailnete.
Otestujte rovnaký názov systémovou cestou
Použite systémové vyhľadávacie volanie ako prvý test a potom ho porovnajte s dotazom miereným priamo na resolver MagicDNS. Zachovajte rovnaký pravopis v oboch vrátane domény tailnetu, pretože krátky názov a plne kvalifikovaný názov sú rôzne otázky s rôznymi odpoveďami.
dscacheutil -q host -a name nas-01.tailnet-a1b2.ts.net
scutil --dns
dig @100.100.100.100 nas-01.tailnet-a1b2.ts.net
Tieto tri výstupy odpovedajú na tri otázky: čo systém vracia, ktoré resolvery sú nakonfigurované pre ktoré domény a čo vie sám MagicDNS. Názov prítomný v druhom a treťom, ale chýbajúci v prvom, ukazuje na miestnu konfiguráciu, nie na tailnet.
Keď sa názov preloží, otestujte službu
Správna odpoveď DNS dokazuje iba to, že názov zodpovedá adrese. Služba za ním môže byť zastavená, port môže byť filtrovaný pravidlom prístupu a certifikát môže uvádzať iný hostiteľ, než ste zadali.
nc -vz nas-01.tailnet-a1b2.ts.net 445
ping -c 3 nas-01.tailnet-a1b2.ts.net
Uchovajte pôvodný text chyby, pretože upozornenie na certifikát, vypršanie času pripojenia a nenájdený názov vedú každé inam. Zmena názvových serverov opraví tretí a premrhá popoludnie na prvé dva.
MagicDNS nenahrádza kancelárske DNS
Názov v kancelárskej zóne nie je názov zariadenia v tailnete, aj keď sa ten istý klient dostane na oboje. Keď cieľ leží za routerom podsiete, klient potrebuje split DNS pre túto zónu ukazujúci na interný resolver, čo je iné nastavenie ako MagicDNS a je zdokumentované vedľa neho.
Aj domény vyhľadávania sú dôležité. Nekvalifikovanému krátkemu názvu sa v poradí pridáva každá nakonfigurovaná prípona, takže notebook, ktorý sa nedávno pripojil k inej sieti, môže preložiť cez zastaranú príponu. Skontrolujte, ktorá prípona bola použitá, než zónu vyhlásite za pokazenú.
Keď obe cesty zlyhajú, rozhodujú fakty o tailnete
Ak systémové vyhľadávanie aj priamy dotaz zlyhajú pre zariadenie, o ktorom sa domnievate, že existuje, problém je vyššie ako resolver Macu.
Potvrďte názov stroja a doménu tailnetu v administratívnej konzole, potvrďte, že zariadenie je online a schválené, a potvrďte, že nastavenia DNS klienta neboli miestne vypnuté. Zariadenie, ktoré je offline, si ponechá názov a jednoducho nemá adresu, ktorú by vrátilo.
Potom vyberajte podľa dôkazov. Názov, ktorý sa preloží systémovou cestou a zlyhá v nslookup, je rozdiel v ceste nástroja; názov, ktorý sa preloží, zatiaľ čo služba odmieta, je problém prístupu alebo certifikátu; názov, ktorý sa nepreloží nikde, je problém tailnetu alebo konfigurácie DNS. Traja vlastníci, tri opravy a dokumentácia MagicDNS pokrýva špecifiká macOS prvého prípadu.