Contents
D. J. Bernstein [Translated into Japanese by MAENO Toshinori] Internet publication djbdns
Domain Name Systemに関するノートより
1. 5種類の DNS 返答
正常な DNS 返答を受け取るとキャッシュは 以下の5つの情報のどれか一つだけを学習する。
1. ``The query was not answered because the query name is an alias. I need to change the query name and try again.''
「照会名が別名であったため問合せに答えは得られなかった。 照会名を変えてもう一度試みる必要がある。」
- 返答の answer section に 照会名に対するCNAMEレコードが含まれていて、 『かつ』 CNAME が query typeとマッチしないときに当てはまる。
2. ``The query name has no records answering the query, and is also guaranteed to have no records of any other type.''
「照会名に対して答えるべきレコードを持っていない。 また、他のいかなるタイプのレコードも存在しないことが保証されている。」
- これは返答コードが NXDOMAIN であって、 #1 が あてはまらない時に適用される。 この情報をキャッシュしてよい時間は応答のauthority sectionにある SOAレコードの内容(もしあれば)に依存する。
3. ``The query name has one or more records answering the query.''
「照会名に対して答レコードが(複数可)あった。」
- 返答の answer section に 照会名とタイプの合致するレコード(複数可)があるときに適用される。 ただし、#1 が当てはまらず、#2 も当てはまらないとき。
4. ``The query was not answered because the server does not have the answer. I need to contact other servers.''
「サーバが答を持っていないので、問合せには答えてもらえなかった。 別のサーバにコンタクトする必要がある。」
- 返答の authority section に NS レコードが含まれていて、 authority section に SOA レコードが含まれていないときに適用される。 ただし、#1, #2, #3 のどれも当てはまらないときに限る。 authority section の NS レコードに"other servers"の名前がある。
5. ``The query name has no records answering the query, but it may have records of another type.''
- 「照会名は答レコードをもたない。 しかし、別タイプのレコードはあるかもしれない。」
- #1, #2, #3, #4 のどれもが当てはまらない場合にあたる。 この情報をキャッシュしてよい時間は 返事のauthority section内のSOA レコードの内容(もしあれば)に依存する。
この手順は得られる情報が少ない割に信じがたい位多大な手間のかかる 誤り易い解析を必要とする。
- 根底にはDNSが人間にとって見やすい形式で情報を宣言するよう 設計されていて、 もっとも簡単な可能なやり方で 重大な操作をサポートするように設計されてないことに問題がある。
1.1. NXDOMAINに関する警告
NXDOMAIN は 照会ドメインにサブドメインが存在しないことを保証することは RFC 1034 と RFC 1035 から明らかである。 例えば、ns.heaven.af.milに対して NXDOMAIN があったら、 a.ns.heaven.af.mil と b.ns.heaven.af.mil とが 存在しないと結論できる。 あるサーバがa.ns.heaven.af.mil と b.ns.heaven.af.mil に対するレコードを持ち、 ns.heaven.af.mil に対するレコードを持たないなら、 NXDOMAINではなく、zero-records (#5) 返答を送る。
『にもかかわらず』、RFC 2308 ではドメインが存在しているときでさえ、 照会名に対してはいかなるタイプのレコードも存在しないことを意味することに NXDOMAIN を返事することを認めた。
そこで、相互運用上の破滅を引き起こさぬために、 キャッシュとしては上の推論をしないようにすることが必須である。
2000-02-29 訳:前野年紀