ttl = 0の場合、再帰DNSクエリではどうなりますか?

ttl = 0の場合、再帰DNSクエリではどうなりますか?

名前解決(バインドの現在のバージョン)で、戻りパスで再帰応答が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)を混同していますか?

一つIPパケットTTL ...

データグラムの送信者によって設定され、宛先へのパス内の各ルーターによって削減されます。データグラムがターゲットに到達する前にTTLフィールドが0に達すると、データグラムは削除され、ICMPエラーデータグラム(11 - タイムアウト)が送信者に送信されます。

これDNSレコードTTL

特定のリソースレコードに対して特権ネームサーバーによって設定されます。キャッシュ(再帰)ネームサーバーが特権ネームサーバーにリソースレコードを照会するときに、TTLによって指定された秒数の間レコードをキャッシュします。

したがって、DNSレコードのTTLはゼロに達せず、代わりにDNSレコードを要求するために使用されたIPパケットが到着し、TTL=0発信者が上記のICMPエラーを受け取ります。

関連情報