Auf einem Mac löst ping einen tailnet-Rechnernamen auf, während nslookup einen Fehler zurückgibt, und beide Befehle sagen die Wahrheit. Anwendungen lösen über den System-Resolver auf, den Tailscale pro Schnittstelle konfiguriert, während nslookup und host eine statische Datei lesen, die MagicDNS nie anfasst. Die beiden Wege können sich unterscheiden, ohne dass ein einziges Paket verloren geht. Entscheiden Sie, welchen Weg Ihre fehlschlagende Anwendung genommen hat, bevor Sie eine DNS-Einstellung ändern.

Zwei Auflösungswege, zwei verschiedene Antworten

Anwendungsverkehr unter macOS läuft über den System-Resolver, und auf Schnittstellen beschränkte Resolver-Einträge entscheiden, welcher Server für welche Domäne antwortet. Tailscale installiert dort seinen MagicDNS-Eintrag, weshalb Safari und ssh tailnet-Namen finden. nslookup, host und dig lesen stattdessen /etc/resolv.conf oder nehmen einen Server auf der Kommandozeile, und diese Datei nennt gewöhnlich noch den Router oder einen Büroserver. Ein tailnet-Name, der an diese Datei geschickt wird, hat keine autoritative Antwort, die auf ihn wartet, daher meldet das Werkzeug einen Fehler, während der Systemweg erfolgreich ist.

Keines der beiden Werkzeuge verhält sich falsch. Sie fragen verschiedene Server, und nur einer dieser Server kennt Ihr tailnet.

Testen Sie denselben Namen über den Systemweg

Nutzen Sie den System-Lookup-Aufruf als ersten Test und vergleichen Sie ihn dann mit einer Abfrage, die direkt an den MagicDNS-Resolver gerichtet ist. Halten Sie die Schreibweise in beiden identisch, einschließlich der tailnet-Domäne, denn ein kurzer Name und ein vollqualifizierter Name sind verschiedene Fragen mit verschiedenen Antworten.

dscacheutil -q host -a name nas-01.tailnet-a1b2.ts.net
scutil --dns
dig @100.100.100.100 nas-01.tailnet-a1b2.ts.net

Diese drei Ausgaben beantworten drei Fragen: was das System zurückgibt, welche Resolver für welche Domänen konfiguriert sind und was MagicDNS selbst weiß. Ein Name, der im zweiten und dritten vorkommt, im ersten aber fehlt, deutet auf eine lokale Konfiguration hin und nicht auf das tailnet.

Sobald der Name aufgelöst wird, testen Sie den Dienst

Eine korrekte DNS-Antwort beweist nur, dass ein Name auf eine Adresse zeigt. Der Dienst dahinter kann gestoppt sein, der Port kann durch eine Zugriffsregel gefiltert werden, und ein Zertifikat kann einen anderen Host nennen als den, den Sie eingegeben haben.

nc -vz nas-01.tailnet-a1b2.ts.net 445
ping -c 3 nas-01.tailnet-a1b2.ts.net

Bewahren Sie den ursprünglichen Fehlertext auf, denn eine Zertifikatswarnung, eine Verbindungszeitüberschreitung und ein nicht gefundener Name führen jeweils woandershin. Das Ändern der Namensserver repariert den dritten Fall und verschwendet einen Nachmittag mit den ersten beiden.

MagicDNS ersetzt kein Büro-DNS

Ein Name innerhalb einer Bürozone ist kein tailnet-Gerätename, selbst wenn derselbe Client beide erreichen kann. Wenn das Ziel hinter einem Subnetz-Router liegt, braucht der Client für diese Zone Split DNS, das auf den internen Resolver zeigt, was eine andere Einstellung als MagicDNS ist und daneben dokumentiert wird.

Auch Suchdomänen zählen. Einem nicht qualifizierten kurzen Namen wird jedes konfigurierte Suffix der Reihe nach angehängt, sodass ein Laptop, der kürzlich einem anderen Netzwerk beigetreten ist, über ein veraltetes Suffix auflösen kann. Prüfen Sie, welches Suffix angewendet wurde, bevor Sie die Zone für defekt erklären.

Wenn beide Wege scheitern, entscheiden die tailnet-Fakten

Wenn die Systemsuche und die direkte Abfrage beide für ein Gerät scheitern, von dem Sie glauben, dass es existiert, liegt das Problem oberhalb des Mac-Resolvers.

Bestätigen Sie den Rechnernamen und die tailnet-Domäne in der Verwaltungskonsole, bestätigen Sie, dass das Gerät online und genehmigt ist, und bestätigen Sie, dass die DNS-Einstellungen des Clients nicht lokal deaktiviert wurden. Ein Gerät, das offline ist, behält seinen Namen und hat einfach keine Adresse, die es zurückgeben könnte.

Wählen Sie dann nach Beweisen. Ein Name, der im Systemweg aufgelöst wird und in nslookup scheitert, ist ein Unterschied im Werkzeugweg; ein Name, der aufgelöst wird, während der Dienst ablehnt, ist ein Zugriffs- oder Zertifikatsproblem; ein Name, der nirgends aufgelöst wird, ist ein tailnet- oder DNS-Konfigurationsproblem. Drei Zuständige, drei Korrekturen, und die MagicDNS-Dokumentation deckt die macOS-Besonderheiten des ersten Falls ab.

Ähnliche Artikel