Warum können host und nslookup einen Namen auflösen, dig jedoch nicht?

27

Kann mir jemand sagen, warum das passiert? Ich kann einen Hostnamen mit host und / oder nslookup auflösen, aber Forward-Lookups funktionieren nicht mit dig. Reverse Lookups machen:

musashixxx@box:~$ host someserver
someserver.somenet.internal has address 192.168.0.252
musashixxx@box:~$ host 192.168.0.252
252.0.168.192.in-addr.arpa domain name pointer someserver.somenet.internal.
musashixxx@box:~$ nslookup someserver
Server:     192.168.0.253
Address:    192.168.0.253#53

Name:   someserver.somenet.internal
Address: 192.168.0.252
musashixxx@box:~$ nslookup 192.168.0.252
Server:     192.168.0.253
Address:    192.168.0.253#53

252.0.168.192.in-addr.arpa  name = someserver.somenet.internal.

musashixxx@box:~$ dig someserver

; <<>> DiG 9.8.1-P1 <<>> someserver
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 55306
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;someserver.            IN  A

;; Query time: 0 msec
;; SERVER: 192.168.0.253#53(192.168.0.253)
;; WHEN: Wed Oct  3 15:47:38 2012
;; MSG SIZE  rcvd: 27

musashixxx@box:~$ dig -x 192.168.0.252

; <<>> DiG 9.8.1-P1 <<>> -x 192.168.0.252
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28126
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;252.0.168.192.in-addr.arpa.    IN  PTR

;; ANSWER SECTION:
252.0.168.192.in-addr.arpa. 3600 IN PTR someserver.somenet.internal.

;; Query time: 0 msec
;; SERVER: 192.168.0.253#53(192.168.0.253)
;; WHEN: Wed Oct  3 15:49:11 2012
;; MSG SIZE  rcvd: 86

So sieht meine resolv.conf aus:

nameserver 192.168.0.253
search somenet.internal

Ist dieses Verhalten normal? Irgendwelche Gedanken?

musashiXXX
quelle

Antworten:

36

Es ist das Standardverhalten von dig, die Suchoption nicht zu verwenden.

Von der Manualseite:

   +[no]search
       Use [do not use] the search list defined by the searchlist or
       domain directive in resolv.conf (if any). The search list is not
       used by default.

Bearbeiten: Einfach hinzufügen +search, damit es funktioniert, wie dig +search myhost.

Alexander Janssen
quelle
Bin ich der einzige, der das als etwas kontraintuitiv ansieht? :-) Trotzdem vielen Dank!
musashiXXX
5
@musashiXXX Nun, es kommt darauf an :-) Die meisten Leute verwenden digzum Debuggen von DNS und in diesem Fall ist es eine gute Idee, alles zu deaktivieren, was die Antworten von DNS durcheinander bringen könnte. Ich denke, das ist eine ziemlich gute Idee. die meisten Leute benutzen hostund nslookupschließlich. :-)
Alexander Janssen
7

Ich hatte das gleiche Problem. Nachdem ich die von nslookup und dig with wireshark gesendeten Pakete überprüft hatte, fand ich das Problem.

dig hat das authentische Datenbit in der Abfrage gesetzt. Der Manpage zufolge fordert dies den Server auf, zurückzugeben, ob alle Antwort- und Berechtigungsabschnitte gemäß der Sicherheitsrichtlinie des Servers als sicher validiert wurden. Wenn Sie dig mit + noadflag ausführen, werden die gleichen Ergebnisse wie bei nslookup zurückgegeben.

Bob Francis
quelle
3
Hatte das gleiche Problem, aber ein anderes Ergebnis wurde durch die ednsErweiterung verursacht . Wenn ich eine Abfrage mit +noendsdig gemacht habe, habe ich dasselbe Ergebnis wie host zurückgegeben.
Slava Bacherikov
7

In meinem Fall handelt es sich um einen Fehler in Microsoft DNS Server, bei dem eine FORMERRAntwort (Anforderungsformatfehler) für Anforderungen mit festgelegten EDNS CookieOptionen zurückgegeben wird. Neuere Versionen von dig(9.11 und höher) verwenden standardmäßig DNS-Cookies. Dies kann durch +nocookieoder +noednsflag verhindert werden :

$ dig +nocookie DOMAIN @SERVER

Quelle: https://kevinlocke.name/bits/2017/01/20/formerr-from-microsoft-dns-server-for-dig/

Taha Jahangir
quelle
1

Sie können eine .digrc-Datei in Ihrem Ausgangsverzeichnis mit der Zeile verwenden

+ suchen

zufällig das Standardverhalten

dudacgf
quelle
0

Ich erleben dieses Problem auf meinem Heim - Wi-Fi - Netzwerk versuchen , gute ol zu lösen‘ google.comvon innen her ein Ubuntu VM auf einem Windows 7 - Host ausgeführt wird , mit dig, die Zeitüberschreitung, sondern nslookupsofort das Ergebnis zurückgegeben.

Die Lösung war für mich hinzufügen +noedns: $ dig +noedns google.com.

wberry
quelle