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 dig
als auch nslookup
diesen neuen Namen erfolgreich verwenden, aber ping
meine GUI-Anwendungen können den Namen nicht auflösen.
Ich habe versucht, den DNS-Cache auf meinem lokalen Computer zu leeren, ohne dscacheutil -flushcache
Erfolg.
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?
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.
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`
Mikey TK