Perché host e nslookup possono risolvere un nome ma scavare non può?


27

Qualcuno può dirmi perché questo sta accadendo? Posso risolvere un nome host usando host e / o nslookup ma le ricerche in avanti non funzionano con dig; le ricerche inverse fanno:

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

Ecco come appare il mio resolv.conf:

nameserver 192.168.0.253
search somenet.internal

Questo comportamento è normale? qualche idea?

Risposte:


36

È il comportamento predefinito di scavare per non usare l'opzione di ricerca.

Dalla pagina del manuale:

   +[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.

Modifica: basta aggiungere +searchper farlo funzionare, come dig +search myhost.


Sono l'unico a vederlo come un po 'contro-intuitivo? :-) Comunque grazie mille!
musashiXXX,

5
@musashiXXX Beh, dipende :-) La maggior parte delle persone usa digper il debug del DNS e in questo caso è una buona idea disabilitare tutto ciò che potrebbe confondere le risposte dal DNS. Penso che sia una buona idea; la maggior parte delle persone usa hoste nslookupdopotutto. :-)
Alexander Janssen,

7

Avevo lo stesso problema. Dopo aver ispezionato i pacchetti inviati da nslookup e scavare con WireShark, ho riscontrato il problema.

dig stava impostando il bit di dati autentici nella query. Secondo la pagina man, "Ciò richiede al server di restituire se tutte le sezioni di risposta e autorizzazione sono state tutte convalidate come sicure in base alla politica di sicurezza del server." Eseguendo dig con + noadflag, ha restituito gli stessi risultati di nslookup.


3
Aveva lo stesso problema, ma diversi risultati erano causati ednsdall'estensione. Quando ho fatto una query con +noendsdig ho restituito lo stesso risultato dell'host.
Slava Bacherikov,


1

Puoi usare un file .digrc nella tua home directory con la linea

+ ricerca

a caso il comportamento predefinito


0

Ho riscontrato questo problema sulla mia rete Wi-Fi domestica cercando di risolvere un buon problema google.comall'interno di una macchina virtuale Ubuntu in esecuzione su un host Windows 7, con il digtimeout, ma nslookupimmediatamente restituito il risultato.

La soluzione per me è stato quello di aggiungere +noedns: $ dig +noedns google.com.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.