5. 否定返答のキャッシング Caching Negative Answers

Like normal answers negative answers have a time to live (TTL). As there is no record in the answer section to which this TTL can be applied, the TTL must be carried by another method. This is done by including the SOA record from the zone in the authority section of the reply. When the authoritative server creates this record its TTL is taken from the minimum of the SOA.MINIMUM field and SOA's TTL. This TTL decrements in a similar manner to a normal cached answer and upon reaching zero (0) indicates the cached negative answer MUST NOT be used again.

否定返答にも通常の返答と同様に賞味期限(TTL)がある。 ただし、この TTL を適用すべきレコードが answer 節内には存在しないので、 別の方法により TTL を伝えなければならない。 そこで返事のauthority 節中にゾーンの SOA レコードを含めることに より 実現されている。 権威をもつサーバがこのレコードを生成するときには その TTL は SOA.MINIMUM フィールドと SOA の TTL のうちの 小さい方を採用する。 この TTL は通常のキャッシュされた答と同様に減少していき、 ゼロ (0) になったら、キャッシュされた否定返答を使ってはならないことを 示すものとする。

A negative answer that resulted from a name error (NXDOMAIN) should be cached such that it can be retrieved and returned in response to another query for the same <QNAME, QCLASS> that resulted in the cached negative response.

名前エラーの結果として生じた否定返答(NXDOMAIN)はキャッシュされ るべきである。検索ができるように、そして、 同じ<QNAME, QCLASS>をもった問合せが キャッシュされた否定応答を与える場合に返事として返せるように。

A negative answer that resulted from a no data error (NODATA) should be cached such that it can be retrieved and returned in response to another query for the same <QNAME, QTYPE, QCLASS> that resulted in the cached negative response.

データなしエラー(NODATA)の結果である否定返答もキャッシュされる べきである。検索ができるように、そして、 同じ<QNAME, QTYPE, QCLASS>をもった問合せが キャッシュされた否定応答を与える場合に返事として返せるように。

The NXT record, if it exists in the authority section of a negative answer received, MUST be stored such that it can be be located and returned with SOA record in the authority section, as should any SIG records in the authority section. For NXDOMAIN answers there is no "necessary" obvious relationship between the NXT records and the QNAME. The NXT record MUST have the same owner name as the query name for NODATA responses.

NXT レコードは受信した否定返答の権威節内にあるときは 保存されなければならない。取り出すことが可能で、 権威節内の SOA レコードと共に返事として返せるように。 これは権威節内の SIG レコードと同じ扱いである。 NXDOMAIN解答には NXTレコード と QNAME の間には必然の自明な関連はない。 NXT レコードは NODATA 返答にたいする問合せ名と 同じ所有者名を持たなくてはならない。

Negative responses without SOA records SHOULD NOT be cached as there is no way to prevent the negative responses looping forever between a pair of servers even with a short TTL.

SOA レコードをともなわない否定返答は サーバー間で否定返答が永久ループするのを防ぐ方法がないため TTLが小さくてもキャッシュしてはならない。

Despite the DNS forming a tree of servers, with various mis- configurations it is possible to form a loop in the query graph, e.g. two servers listing each other as forwarders, various lame server configurations. Without a TTL count down a cache negative response when received by the next server would have its TTL reset. This negative indication could then live forever circulating between the servers involved.

DNS はサーバの木を構成しているにもかかわらず、 種々の間違えた設定により、 問合せグラフとしてはループが生じる可能性がある。 例えば、二つのサーバがお互いをフォワーダに指定しているとか、 各種の lame サーバ設定などである。 否定返答のキャッシュはカウントダウンをしないと、 次のサーバに受信されたとき、TTL をリセットされてしまうだろう。 この否定情報は関係するサーバ間で永久にやりとりされて生き残る ことがある。

As with caching positive responses it is sensible for a resolver to limit for how long it will cache a negative response as the protocol supports caching for up to 68 years. Such a limit should not be greater than that applied to positive answers and preferably be tunable. Values of one to three hours have been found to work well and would make sensible a default. Values exceeding one day have been found to be problematic.

肯定返答のキャッシングと同様に、 リゾルバはネガティブキャッシュをキャッシュする期間について プロトコルとしては 68年まで可能な期間に上限を設けることは意味がある。 この上限は肯定返答に適用されるものより長くはなくて、 調整可能とすべきである。 1 から 3 時間の間がうまく動作することが分っているので、 デフォルトとして適当であろう。 1日以上の値には問題があることが分っている。
2002-08-30   訳 前野年紀 qmail.jp   djbdns.org