RFC 2181 より

http://dnsdoc.qmail.jp/rfc2181/s5.html からの抜粋(編集)

5.4. RRSets の受け取り (Receiving RRSets)

Servers must never merge RRs from a response with RRs in their cache to form an RRSet.
If a response contains data that would form an RRSet with data in a server's cache
the server must either ignore the RRs in the response,
or discard the entire RRSet currently in the cache, as appropriate.
Consequently the issue of TTLs varying between the cache and a response does not cause concern, one will be ignored. That is, one of the data sets is always incorrect if the data from an answer differs from the data in the cache.

サーバは返事として得られた資源レコード(RRs)とキャッシュ中の RRs とを まぜあわせて別の資源レコード集合(RRSet) を作成してはならない

この結果、キャッシュと返答で TTL が異っていることは問題とはならない。

つまり、キャッシュと返答とが異なるデータ集合である場合、どちらかが不正であるということである。

The challenge for the server is to determine which of the data sets is correct, if one is,
and retain that, while ignoring the other.
Note that if a server receives an answer containing an RRSet that is identical to that in its cache,
with the possible exception of the TTL value, 
it may, optionally, update the TTL in its cache with the TTL of the received answer.
It should do this if the received answer would be considered more authoritative
(as discussed in the next section) than the previously cached answer.

サーバにとっての課題は正しいものがあるとして、どちらのデータセットが正しいかを決定することと、 正しい方を残し、正しくない方を無視することとである。

TTL値の違いは無視するものとして、 キャッシュ中の RRSetとまったく同じ RRSetを持つ返答を受けとったときには、 キャッシュ中の TTL を受信した返答の TTL で更新してもよいことに注意せよ。

(オプション) 受信した返答が現在キャッシュされているところの以前の返答より権威がある(次の節で述べる)と 考えられる場合には、この更新を行うべきである。

-- ToshinoriMaeno 2009-09-11 02:33:17