名前解決(バインドの現在のバージョン)で、戻りパスで再帰応答がttl 0に達するとどうなりますか?
答え1
TTL値は、キャッシュされたDNSエントリがフラッシュされる前にキャッシュに残った時間(通常は秒単位)です。したがって、TTL値が0に達すると、特権ネームサーバーに再クエリして最新のDNSエントリを取得します。
dig コマンドを使用して、更新された DNS エントリを確認できます。以下は、google.comドメインを照会するdigの例です。このドメインは、TTL が小さく、DNS エントリが更新されるまで待つ必要がないために選択しました。
$ dig google.com
; <<>> DiG 9.8.1-P1 <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39327
;; flags: qr rd ra; QUERY: 1, ANSWER: 11, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 154 IN A 74.125.237.33 <== '154 is the TTL value'
... (ANSWERS TRUNCATED)
;; Query time: 16 msec <== notice that the query took 16ms to complete
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Dec 17 21:04:56 2012
;; MSG SIZE rcvd: 204
それでは、クエリ時間をもう一度確認してください。
$ dig google.com
... (HEADER TRUNCATED)
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 103 IN A 74.125.237.35 <== TTL value gradually decreases over time
... (ANSWERS TRUNCATED)
;; Query time: 2 msec <== query time is much smaller!
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Dec 17 21:05:48 2012
;; MSG SIZE rcvd: 204
google.com のローカルキャッシュ値が返されるため、クエリ時間が短くなります。
それでは、TTL値が0に減少するのを待ちます。
$ dig google.com @localhost
... (HEADER TRUNCATED)
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 5 IN A 74.125.237.34
... (ANSWERS TRUNCATED)
;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Dec 17 21:07:26 2012
;; MSG SIZE rcvd: 204
そこに…
$ dig google.com @localhost
... (HEADER TRUNCATED)
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 1 IN A 74.125.237.39
... (ANSWERS TRUNCATED)
;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Dec 17 21:07:30 2012
;; MSG SIZE rcvd: 204
これで、キャッシュされたDNS値が更新され、TTL値が再度カウントダウンを開始します。
$ dig google.com @localhost
... (HEADER TRUNCATED)
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 291 IN A 74.125.237.131
... (ANSWERS TRUNCATED)
;; Query time: 16 msec <== Notice the longer Query time again.
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Dec 17 21:07:32 2012
;; MSG SIZE rcvd: 204
答え2
IPとDNS TTL(Time-to-Live)を混同していますか?
データグラムの送信者によって設定され、宛先へのパス内の各ルーターによって削減されます。データグラムがターゲットに到達する前にTTLフィールドが0に達すると、データグラムは削除され、ICMPエラーデータグラム(11 - タイムアウト)が送信者に送信されます。
特定のリソースレコードに対して特権ネームサーバーによって設定されます。キャッシュ(再帰)ネームサーバーが特権ネームサーバーにリソースレコードを照会するときに、TTLによって指定された秒数の間レコードをキャッシュします。
したがって、DNSレコードのTTLはゼロに達せず、代わりにDNSレコードを要求するために使用されたIPパケットが到着し、TTL=0
発信者が上記のICMPエラーを受け取ります。