このコマンドを使用して、DNSプロバイダーで正しく設定されているかどうかを確認していました。
Host hostname.example.com ns1.example-nameserver.com
私の知る限り、これはns1.example-nameserver.com
見上げる hostname.example.com
と回答を報告します。 Host-not-found応答を受け取っていたので、間違ったと思った。しかし、それらのネームサーバーを指定せずに(したがって、私のISPのネームサーバーがそれを検索できるようにします)、正しい応答を得ました(重要な場合、hostname
はCNAME
です)。私はこれを理解することができなかったので、周りを検索して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
Host
、Dig
、およびnslookup
はすべて、同じ機能のほとんどを共有します。質問する場合(特定のネームサーバーに特定のDNSの質問をする場合)、Dig
とHost
(実際にはnslookup
)はまったく同じように動作します。
DNSのトラブルシューティングの場合、Dig
が推奨されます。これは、出力形式がより「生」であるためです。出力では、DNS応答の4つのフィールドすべての内容が直接表示されます。質問、回答、権限、および追加セクション(およびヘッダー内のフラグ)、さらにそれはより多くのオプションを持っています。一方、Host
の方がユーザーフレンドリーな出力形式です。
コマンドの1つが持っているオプションと他のコマンドが持っていないオプション、またはそれらの1つが出力して他が提供していない情報が必要ない場合は、好みの問題になります。
FQDN以外のホスト名を使用している場合、Host
はresolv.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