Lion löst DNS-Namen auf, wenn der Server direkt abgefragt wird, aber nicht, wenn er in einem Befehl oder einer App verwendet wird

Ich habe kürzlich (wie vor wenigen Minuten) einen Hostnamen und Reverse-Einträge (A und PTR) für einen Hostnamen in meinem internen Netzwerk mithilfe eines Bind-DNS-Servers hinzugefügt. Aus irgendeinem Grund kann ich sowohl digals auch nslookupdiesen neuen Namen erfolgreich verwenden, aber pingmeine GUI-Anwendungen können den Namen nicht auflösen.

Ich habe versucht, den DNS-Cache auf meinem lokalen Computer zu leeren, ohne dscacheutil -flushcacheErfolg.

Hier ist ein Beispiel meiner Sitzung (Namen, IPs aus Sicherheitsgründen geändert):

$ nslookup newbox.internal
server     10.0.0.2
address    10.0.0.2#53

Name:    newbox.internal
Address: 10.1.1.1

$ ping newbox.internal
ping: cannot resolve newbox.internal: Unknown host

WTF? Okay, ich bin mir sicher, dass mein DNS richtig eingerichtet ist:

$ dig newbox.internal

; <<>> DiG 9.8.3-P1 <<>> newbox.internal
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33812
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4

;; QUESTION SECTION:
;newbox.internal.   IN  A

;; ANSWER SECTION:
newbox.internal. 21600 IN   A   10.1.1.1

;; AUTHORITY SECTION:
internal.       10800   IN  NS  dns001.internal.
internal.       10800   IN  NS  dss001.internal.
internal.       10800   IN  NS  dhdns001.internal.
internal.       10800   IN  NS  dhdns002.internal.

;; ADDITIONAL SECTION:
dns001.internal. 10800 IN   A   10.0.0.2
dns002.internal. 10800 IN   A   10.0.0.3
dhdns001.internal. 10800 IN A   10.0.0.20
dhdns002.internal. 10800 IN A   10.0.0.21

;; Query time: 1 msec
;; SERVER: 10.0.0.2#53(10.0.0.2)
;; WHEN: Mon Jul  1 14:43:35 2013
;; MSG SIZE  rcvd: 245

Warum zeigt mein System dieses seltsame DNS-Resolver-Verhalten?

Nebenbei bemerkt, DNS funktioniert auf meinem System ansonsten einwandfrei. Im Moment ist dieser neue Hostname der einzige, bei dessen Auflösung ich Probleme habe. Mein System ist so konfiguriert, dass es den DNS-Server 10.0.0.2 als primären Server verwendet.

BEARBEITEN

Durch das Beenden von mDNSResponder wurde dieses Problem behoben. Aber warum?

Antworten (2)

Durch das Beenden von mDNSResponder wurde dieses Problem behoben. Aber warum?

Weil Sie den lokalen DNS-Cache geleert haben!

http://support.apple.com/kb/ht5343

Ein direkter Suchbefehl fragt den DNS-Server direkt ab, aber der Auflösungsmechanismus für fast alles andere ist der mDNSResponder-Prozess, den Sie beendet haben.

dscacheutil -flushcache ist laut KB veraltet.

Ich wusste nicht, dass das die offizielle Methode ist. Nett und danke für den Hinweis!

Von man nslookup und man dig:

Mac OS X-HINWEIS

Der Befehl nslookup verwendet nicht die Hostnamen- und Adressauflösung oder die DNS-Abfrage-Routing-Mechanismen, die von anderen unter Mac OS X ausgeführten Prozessen verwendet werden. Die von nslookup ausgegebenen Ergebnisse von Namens- oder Adressabfragen können sich von denen unterscheiden, die von anderen Prozessen gefunden werden, die den Mac verwenden Native Namens- und Adressauflösungsmechanismen von OS X. Die Ergebnisse von DNS-Abfragen können sich auch von Abfragen unterscheiden, die die DNS-Routing-Bibliothek von Mac OS X verwenden.

Man Host hat die gleiche Benachrichtigung. Ping jedoch nicht.

Weitere Informationen und mögliche Lösungen hier:

DNS-Lookups schlagen zB mit `ping` fehl, funktionieren aber mit `host`