hostとnslookupは名前を解決できるのに、digはできないのはなぜですか?


27

誰がこれが起こっているのか教えてもらえますか?ホストおよび/またはnslookupを使用してホスト名を解決できますが、digでは前方参照は機能しません。逆引き参照:

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

私のresolv.confは次のようになります。

nameserver 192.168.0.253
search somenet.internal

この動作は正常ですか?何かご意見は?

回答:


36

search-optionを使用しないのは、digのデフォルトの動作です。

マニュアルページから:

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

編集:のように追加+searchするだけで、機能しdig +search myhostます。


それを少し直感に反していると思うのは私だけですか?:-)とにかく、どうもありがとう!
musashiXXX

5
@musashiXXXまあ、それは依存します:-)ほとんどの人はdigDNSのデバッグに使用します。この場合、DNSからの答えを台無しにするかもしれないすべてを無効にすることは非常に良い考えです。かなり良い考えだと思います。ほとんどの人が使用hostnslookup、結局のところ。:
アレクサンダーヤンセン

7

私は同じ問題を抱えていました。nslookupとdigsharkの両方から送信されたパケットをwiresharkで調べたところ、問題が見つかりました。

digは、クエリに本物のデータビットを設定していました。manページによると、「これは、サーバーに、サーバーのセキュリティポリシーに従ってすべての回答セクションと権限セクションが安全であると検証されたかどうかを返すように要求します。」+ noadflagを指定してdigを実行すると、nslookupと同じ結果が返されました。


3
同じ問題を抱えていましたが、edns拡張によって異なる結果が生じました。+noendsdig でクエリを実行すると、ホストと同じ結果が返されました。
スラババチェリコフ

7

私の場合、これはMicrosoft DNSサーバーのバグでありFORMERREDNS Cookieオプションが設定された要求に対して応答(要求形式エラー)を返します。新しいバージョンdig(9.11 以降)では、デフォルトでdns-cookieが使用されます。これを防ぐ+nocookieか、+noednsフラグを立てることができます:

$ dig +nocookie DOMAIN @SERVER

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


1

次の行を使用して、ホームディレクトリの.digrcファイルを使用できます。

+検索

デフォルトの動作をチャンスに


0

私のホームwi-fiネットワークでこの問題を経験しgoogle.comましたが、Windows 7ホスト上で実行されているUbuntu VM内からolを解決しようとしましたがdig、タイムアウトしましたが、nslookupすぐに結果を返しました。

私の解決策は以下を追加することでした+noedns$ dig +noedns google.com

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.