web-dev-qa-db-ja.com

特定のネームサーバーをクエリするときの `Dig`と` Host`の違いは何ですか?

このコマンドを使用して、DNSプロバイダーで正しく設定されているかどうかを確認していました。

Host hostname.example.com ns1.example-nameserver.com

私の知る限り、これはns1.example-nameserver.com 見上げる hostname.example.comと回答を報告します。 Host-not-found応答を受け取っていたので、間違ったと思った。しかし、それらのネームサーバーを指定せずに(したがって、私のISPのネームサーバーがそれを検索できるようにします)、正しい応答を得ました(重要な場合、hostnameCNAMEです)。私はこれを理解することができなかったので、周りを検索してDigコマンドを見つけました:

Dig @ns1.example-nameserver.com hostname.example.com

私の知る限り、これはHostコマンドと同じことです。特定のネームサーバーにホストの検索を要求します。したがって、私は彼らが何らかの方法でそれを行う必要があり、ネームサーバーのキャッシングはDigと同じメソッドを使用する必要があると結論付けます。

私の結論は正しいか間違っているかのどちらかです。

これら2つのルックアップ方法の違いは何ですか?

それが間違っている場合:

この結論に導いたDNSとHostおよびDigコマンドについての私の誤解は何ですか?

出力例:

$ Host cardiff.tzmchapters.org ns1.livedns.co.uk
Using domain server:
Name: ns1.livedns.co.uk
Address: 213.171.192.250#53
Aliases: 

Host cardiff.tzmchapters.org not found: 3(NXDOMAIN)

$ Dig @ns1.livedns.co.uk cardiff.tzmchapters.org

; <<>> Dig 9.8.3-P1 <<>> @ns1.livedns.co.uk cardiff.tzmchapters.org
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 23620
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;cardiff.tzmchapters.org.   IN  A

;; ANSWER SECTION:
cardiff.tzmchapters.org. 3600   IN  CNAME   ghs.google.com.

;; AUTHORITY SECTION:
google.com.     3600    IN  SOA ns1.livedns.co.uk. admin.google.com. 1354213742 10800 3600 604800 3600

;; Query time: 27 msec
;; SERVER: 213.171.192.250#53(213.171.192.250)
;; WHEN: Mon Apr 22 23:47:05 2013
;; MSG SIZE  rcvd: 128
11
jhabbott

HostDig、およびnslookupはすべて、同じ機能のほとんどを共有します。質問する場合(特定のネームサーバーに特定のDNSの質問をする場合)、DigHost(実際にはnslookup)はまったく同じように動作します。

DNSのトラブルシューティングの場合、Digが推奨されます。これは、出力形式がより「生」であるためです。出力では、DNS応答の4つのフィールドすべての内容が直接表示されます。質問、回答、権限、および追加セクション(およびヘッダー内のフラグ)、さらにそれはより多くのオプションを持っています。一方、Hostの方がユーザーフレンドリーな出力形式です。

コマンドの1つが持っているオプションと他のコマンドが持っていないオプション、またはそれらの1つが出力して他が提供していない情報が必要ない場合は、好みの問題になります。

13
Celada

FQDN以外のホスト名を使用している場合、Hostresolv.confの検索ドメインを使用しますが、Digはデフォルトでは使用しないため、結果が異なる場合があります。

Dig+searchを使用する(またはresolv.confに追加する)場合は、~/.digrcオプションを使用する必要があります。

例えば:

$ Host foo
foo.myfqdn.com has address 10.1.2.3

$ Dig +short foo
# (no result)

$ Dig +short +search foo
10.1.2.3
0
wisbucky