Mengapa host dan nslookup bisa menyelesaikan nama tetapi penggalian tidak bisa?

27

Adakah yang bisa memberi tahu saya mengapa ini terjadi? Saya bisa menyelesaikan nama host menggunakan host dan / atau nslookup tetapi pencarian maju tidak bekerja dengan menggali; reverse lookup lakukan:

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

Begini tampilannya resolv.conf saya:

nameserver 192.168.0.253
search somenet.internal

Apakah perilaku ini normal? Adakah pikiran?

musashiXXX
sumber

Jawaban:

36

Ini adalah perilaku default penggalian untuk tidak menggunakan opsi pencarian.

Dari halaman manual:

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

Edit: Cukup tambahkan +searchuntuk membuatnya berfungsi, seperti dig +search myhost.

Alexander Janssen
sumber
Apakah saya satu-satunya yang melihat itu sebagai kontra-intuitif kecil? :-) Bagaimanapun, terima kasih banyak!
musashiXXX
5
@musashiXXX Yah, itu tergantung :-) Kebanyakan orang menggunakan diguntuk debugging DNS dan dalam hal ini adalah ide yang cukup bagus untuk menonaktifkan semua yang mungkin mengacaukan jawaban dari DNS. Saya pikir itu ide yang cukup bagus; kebanyakan orang menggunakan hostdan nslookupsetelah semua. :-)
Alexander Janssen
7

Saya mengalami masalah yang sama. Setelah memeriksa paket yang dikirim dari nslookup dan menggali dengan wireshark, saya menemukan masalahnya.

dig sedang mengatur bit data otentik dalam kueri. Menurut halaman manual, "Ini meminta server untuk mengembalikan apakah semua bagian jawaban dan wewenang semuanya telah divalidasi sebagai aman sesuai dengan kebijakan keamanan server." Dengan menjalankan menggali dengan + noadflag, ia mengembalikan hasil yang sama dengan nslookup.

Bob Francis
sumber
3
Punya masalah yang sama, tetapi hasil yang berbeda disebabkan oleh ednsekstensi. Ketika saya membuat kueri dengan +noendsmenggali, hasil yang sama dengan host dikembalikan.
Slava Bacherikov
7

Dalam kasus saya, ini adalah bug di Microsoft DNS Server, di mana ia mengembalikan FORMERRrespons (kesalahan format permintaan) untuk permintaan dengan EDNS Cookieset opsi. Versi yang lebih baru dari dig(9,11 dan lebih tinggi) menggunakan dns-cookies secara default. Ini dapat dicegah dengan +nocookieatau +noednsmenandai untuk menggali:

$ dig +nocookie DOMAIN @SERVER

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

Taha Jahangir
sumber
1

Anda dapat menggunakan file .digrc di direktori home Anda dengan baris tersebut

+ pencarian

untuk kemungkinan perilaku default

dudacgf
sumber
0

Saya mengalami masalah ini di jaringan wi-fi rumah saya mencoba untuk menyelesaikan ol baik google.comdari dalam Ubuntu VM yang berjalan pada host Windows 7, dengan dig, yang waktunya habis, tetapi nslookuplangsung mengembalikan hasilnya.

Solusi bagi saya adalah untuk menambahkan +noedns: $ dig +noedns google.com.

wberry
sumber