CNAMEレコードのTime-To-Live(TTL)値を確認したいと思います。
Dig (Apple Mac OS X))にアクセスできます。これにより、次のような答えが得られます。
% Dig Host.example.gov
<*SNIP*>
;; ANSWER SECTION:
Host.example.gov. 43200 IN CNAME Host1.example.gov.
Host1.example.gov. 43200 IN A 192.168.16.10
値 '43200'は、このDNSレコードのTTL=ですか?
はい、その数は、そのレコードの有効期限が切れるまでの残りの秒数です(ただし、信頼できるネームサーバーにクエリを実行していない場合)。明らかにCNAMEにはリダイレクトのレベルがあるため、この場合に指すAレコードのTTLも重要になる可能性があります。
数秒待ってローカルネームサーバーでDigを再度実行すると、TTL数値は、待機した秒数(約)だけ減少します。0に到達すると、何らかの理由でネームサーバーがゾーンを更新した場合。
上記のように、キャッシュされたエントリを持つネームサーバーに対して実行されるDigと、そのエントリーに対して権限のあるネームサーバーとの間には違いがあります。
(以下で使用する例では、+noauthority
+noquestion
&+nostats
フラグは出力を簡潔にするためです)。
次のクエリの違いに注意してください。
$ Dig +noauthority +noquestion +nostats stackoverflow.com @ns2.p19.dynect.net.
; <<>> Dig 9.7.0-P1 <<>> +noauthority +noquestion +nostats stackoverflow.com @ns2.p19.dynect.net.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50066
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; ANSWER SECTION:
stackoverflow.com. 432000 IN A 69.59.196.211
したがって、上記のクエリでは、stackoverflow.comに対して権限のあるネームサーバーにクエリを送信しています。 flags
セクションに気づいた場合は、これが権限のある回答であることを示すaaフラグに特に注意してください(つまり、キャッシュされていません)。
$ Dig +noauthority +noquestion +noadditional +nostats stackoverflow.com
; <<>> Dig 9.7.0-P1 <<>> +noauthority +noquestion +noadditional +nostats stackoverflow.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43514
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4
;; ANSWER SECTION:
stackoverflow.com. 246696 IN A 69.59.196.211
上記のクエリにはaaフラグがなく、TTLはクエリおよびクエリを実行すると減少し続けます。これは基本的に私が話していたカウンターです以前について。
Windowsボックスに行き詰まり、nslookupにのみアクセスできる場合:
nslookup -qa=A -debug Host.example.com authoritiative-dns-Host-here.com
Is the value '43200' the TTL for this DNS record?
はい-クエリに応答したサーバーから報告されたとおりです(キャッシュサーバーに要求している場合は、キャッシュの残り時間を返します)。
TTL実際のレコードに設定されたクエリを確認するには、権威ネームサーバー(Dig @some.dns.server Host.example.gov
-信頼できるDNSサーバーは、Dig出力の[Authority]セクションにリストされます)
権威のあるNSに質問しているかどうかを簡単に確認します。Dig
をもう一度実行し、TTLが変更された場合は、おそらくキャッシュにヒットしています。同じままの場合は、おそらく権威のあるサーバー(またはキャッシングが壊れているサーバー)に質問しています。
デフォルトのDig出力に権限のあるサーバーを表示できませんでしたが、次の
Dig +nssearch Host.example.com
それらはvoretaq7で説明されているように使用でき、レコードの実際のTTL=値を取得します。
更新:これを行う方法を忘れて戻ってきたので、最初に権威あるネームサーバーをフェッチし、それを使用してDigする小さなスクリプトを書きました。
#!/bin/bash
show_help(){
echo Usage $0 domain
}
if [ -z "$1" ]; then
show_help
exit 1
fi
DOMAIN=$1
APEX_DOMAIN=`echo $DOMAIN | sed 's/\(.*\.\)\([^.]*\.[^.]*\)/\2/'`
FIRST_AUTHORITATIVE_NS=$(Dig +nssearch $APEX_DOMAIN | awk '$1=="SOA"{sub(".$","",$2);print $2;exit;}')
echo
echo Using authoritative nameserver $FIRST_AUTHORITATIVE_NS
Dig @$FIRST_AUTHORITATIVE_NS $@