私のチームには、Active Directoryによって提供されるDNSを指すサーバーがあり、ドメインによって管理されているすべてのホストに確実に到達できるようになっています。残念ながら、私のチームもDig +trace
を頻繁に実行する必要があり、散発的に奇妙な結果が得られます。私はDNS管理者ですが、ドメイン管理者ではありませんが、これらのサーバーを担当するチームは、ここでも何が起こっているのかわかりません。
問題はOSのアップグレード間でシフトしているようですが、それがOSのバージョンの特徴なのか、アップグレードプロセス中に変更された他の設定なのかはわかりません。
Dig +trace
の最初のステップ(. IN NS
の最初のエントリからの/etc/resolv.conf
の要求)は、0バイトの応答を返すことがありました。2番目の問題の例:
$ Dig +trace -x 1.2.3.4
; <<>> Dig 9.8.2 <<>> +trace -x 1.2.3.4
;; global options: +cmd
. 3600 IN NS dns2.ad.example.com.
. 3600 IN NS dns1.ad.example.com.
;; Received 102 bytes from 192.0.2.11#53(192.0.2.11) in 22 ms
1.in-addr.arpa. 84981 IN NS ns1.apnic.net.
1.in-addr.arpa. 84981 IN NS tinnie.arin.net.
1.in-addr.arpa. 84981 IN NS sec1.authdns.ripe.net.
1.in-addr.arpa. 84981 IN NS ns2.lacnic.net.
1.in-addr.arpa. 84981 IN NS ns3.apnic.net.
1.in-addr.arpa. 84981 IN NS apnic1.dnsnode.net.
1.in-addr.arpa. 84981 IN NS ns4.apnic.net.
;; Received 507 bytes from 192.0.2.228#53(192.0.2.228) in 45 ms
1.in-addr.arpa. 172800 IN SOA ns1.apnic.net. read-txt-record-of-zone-first-dns-admin.apnic.net.
4827 7200 1800 604800 172800
;; Received 127 bytes from 202.12.28.131#53(202.12.28.131) in 167 ms
ほとんどの場合、これは問題ではありませんが、ADが内部ビューを持っているドメイン内をトレースしている場合、Dig +trace
が間違ったパスをたどる原因になります。
なぜDig +trace
は気を失っているのですか?そして、なぜ私たちだけが不平を言っているように見えるのですか?
あなたはルートヒントに支配されています。これはトラブルシューティングが難しいものであり、トレースの開始時に送信される. IN NS
クエリを理解することにかかっていますしないパケットにRD
(再帰が必要)フラグを設定します。
MicrosoftのDNSサーバーがルートネームサーバーに対する非再帰的な要求を受信すると、構成されたルートヒントを返す可能性があります。リクエストにRD
フラグを追加しない限り、サーバーは1日中固定のTTL)で同じ応答を返し続けます。
$ Dig @192.0.2.11 +norecurse . NS
; <<>> Dig 9.8.2 <<>> @192.0.2.11 +norecurse . NS
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12586
;; flags: qr ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2
;; QUESTION SECTION:
;. IN NS
;; ANSWER SECTION:
. 3600 IN NS dns2.ad.example.com.
. 3600 IN NS dns1.ad.example.com.
;; ADDITIONAL SECTION:
dns2.ad.example.com. 3600 IN A 192.0.2.228
dns1.ad.example.com. 3600 IN A 192.0.2.229
Dig @whatever . NS
が問題を再現し、実際には完全にマスクするという簡単な仮定があるため、これはほとんどのトラブルシューティング作業が失敗する場所です。サーバーは、RD
フラグが設定されたルートネームサーバーのリクエストを受け取ると、realルートネームサーバーのコピーと、それに続く. NS
のすべてのリクエストを取得しますなしRD
フラグは魔法のように期待どおりに機能し始めます。これにより、Dig +trace
は再び幸せになり、問題が再発するまで、誰もが頭を悩ませることに戻ることができます。
オプションは、ドメイン管理者と別の構成をネゴシエートするか、問題を回避することです。毒された根のヒントがほとんどの状況で十分である限り(そしてあなたはそれらがそうではない状況を知っている:矛盾する見解など)、これは大きな不便ではありません。
ルートヒントを変更しない場合のいくつかの回避策は次のとおりです。
. NS
に応答してインターネットのルートネームサーバーを返すネームサーバーからトレースを開始します。このネームサーバーを${HOME}/.digrc
に配線することもできますが、これにより、共有アカウントの他のユーザーが混乱したり、ある時点で忘れられたりする可能性があります。 Dig @somethingelse +trace example.com
Dig . NS
Dig +trace example.com