Den Unterschied zwischen DNS-Resolvern verstehen

7

Intro

Bei dem Versuch , ein Netzwerkproblem vor Ort zu unserem Intranet zu debuggen, wurde deutlich , dass curl host nslookupund sich diganders verhalten. Wo digund hostgibt die IP - Adresse der URL in Frage, curlund nslookupRückkehr:

 curl: (6) Could not resolve host: internal.site.company.com

und

 nslookup: can't resolve 'internal.site.company.com`

Kontext

Dies sollte zwar keine Rolle spielen, aber im Wesentlichen, um dem Problem mehr Kontext zu geben, tritt dieses Problem auf und hinter einem auf docker-machine(getestet mit einer Docker-Maschine auf beiden virtualboxund parallelsum genau zu sein). Die docker-machineund die von ihm gehosteten Container haben alle die richtige IP-Adresse des gewünschten internen DNS-Servers /etc/resolv.conf. Die IP-Adresse der gewünschten URL ist auch von den Computern aus erreichbar, die den Namen nicht auflösen können. Wie oben erwähnt, ist die Adresse eine interne Site und unser DNS-Server ist ebenfalls intern. Die Site ist vom Computer, auf dem sie docker-machineinstalliert ist, erreichbar und auflösbar .

Fragen

Was mich zu den Fragen bringt ...

1) Was ist digund hostmacht unter der Haube anders als beide cURLund nslookup?

2) Was könnte möglicherweise einen Browser zu verhindern oder zu curlvon der Lösung der URL die Art und Weise beide hostund digwerden die Namen erfolgreich zu lösen?

Installieren

dig -v:: DiG 9.11.1

host -v:: host 9.11.1

curl -V:: curl 7.49.1

Docker-Version: Version 17.06.0-ce-mac19 (18663) Channel: stable

 Boot2Docker version 17.06.0-ce, build HEAD : 0672754
DanCat
quelle

Antworten:

11

Ich würde curluns die Resolver-Bibliothek erwarten , die die in der /etc/nsswitch.confHost-Spezifikation aufgeführten Namensdienstleister der Reihe nach verwendet. Wenn dies kein DNS enthält, erfolgt keine DNS-Auflösung. nslookupEs ist nicht dokumentiert, diese Datei zu verwenden, aber Ihrer Erfahrung nach scheint dies der Fall zu sein. Häufig werden diese Daten von einem Namensdienst-Caching-Daemon zwischengespeichert. Wenn der Dämon ausfällt, tritt möglicherweise ein solches Problem auf, auch wenn die anderen Konfigurationen korrekt sind.

hostund digsind reine DNS-Suchprogramme. Beide lösen Namen nur über DNS auf. Sie lösen Namen nicht mithilfe von Dateien oder anderen Nicht-DNS-Anbietern auf. Ich würde erwarten, dass sie die Informationen /etc/resolv.confdirekt verwenden.

BillThor
quelle
9
Meinten Sie curlganz am Anfang?
Håkan Lindqvist
2
@ HåkanLindqvist Ja, ich habe entsprechend aktualisiert.
BillThor