メインコンテンツまでスキップ

10. 命名の問題

DNS 仕様 [RFC1034, RFC1035] のいくつかの節から、ホスト、あるいはホストのインターフェースが、正規名 (canonical name) と呼ばれる唯一の権威的な、すなわち公式の名前をちょうど 1 つだけ持つことが許されると推測されることがあった。DNS にはそのような要件は存在しない。

10.1. CNAME リソースレコード​

DNS の CNAME (「canonical name」) レコードは、別名 (alias) 名に関連付けられた正規名を提供するために存在する。1 つの別名に対してそのような正規名は 1 つしか存在し得ない。その名前は一般に、DNS の他の場所に存在する名前であるべきだが、対応する正規名が DNS で未定義である別名のためのまれな用途もいくつかある。別名 (CNAME レコードのラベル) は、DNSSEC が使用されている場合、SIG、NXT、および KEY RR を持ってもよいが、他のデータを一切持ってはならない。つまり、DNS 内のあらゆるラベル (あらゆるドメイン名) について、次のうちちょうど 1 つが真である。

  • 1 つの CNAME レコードが存在し、任意で SIG、NXT、および KEY RR を伴う、
  • 1 つ以上のレコードが存在し、いずれも CNAME レコードではない、
  • 名前は存在するが、いかなるタイプの関連する RR も持たない、
  • 名前がまったく存在しない。

10.1.1. CNAME の用語​

CNAME レコードのラベルを「a CNAME」と呼ぶことが伝統的であった。これは残念である。なぜなら「CNAME」は「canonical name」の略語であり、CNAME レコードのラベルは決して正規名ではないからである。しかし、これは定着した用法である。したがって、CNAME リソースレコードのラベルを意図しているのか、値 (正規名) を意図しているのかをきわめて明確にするよう注意しなければならない。この文書では、CNAME リソースレコードのラベルは常に別名と呼ぶ。

10.2. PTR レコード​

正規名に関する混乱は、PTR レコードはその RRSet にちょうど 1 つの RR を持つべきであるという誤った信念を生んできた。これは不正確であり、RFC1034 の該当する節 (3.6.2 節) は、PTR レコードの値は正規名であるべきだと示している。つまり、別名であってはならないのである。その節には、1 つの名前に対して 1 つの PTR レコードしか許されないという含意はない。そのような制限を推測すべきではない。

PTR レコードの値は別名であってはならないが、PTR レコードを解決する過程で別名に遭遇してはならないという要件は存在しないことに注意されたい。PTR の値のために検索されるラベルは、CNAME レコードを持つかもしれない。つまり、それは別名かもしれないのである。その CNAME RR の値は、別の別名でないならば (そうなるべきではないが)、PTR レコードが見つかる場所を与える。そのレコードが PTR タイプの検索の結果を与える。この最終結果、すなわち PTR RR の値が、別名であってはならないラベルである。

10.3. MX および NS レコード​

NS リソースレコードの値として、あるいは MX リソースレコードの値の一部として使用されるドメイン名は、別名であってはならない。仕様がこの点について明確であるだけでなく、これらのいずれかの位置で別名を使用することは、期待されるほどうまく機能せず、この手法に至ったかもしれない野心を十分に果たすこともない。このドメイン名は、その値として 1 つ以上のアドレスレコードを持たなければならない。現在ではそれは A レコードであるが、将来はアドレス情報を与える他のレコードタイプが許容されるかもしれない。それは他の RR を持つこともできるが、決して CNAME RR を持つことはない。

NS レコードまたは MX レコードのいずれかを検索すると、「追加セクション処理」が引き起こされ、求められたレコードの値に関連付けられたアドレスレコードが回答に追加される。これは、最初のクエリを行った時点で容易に予期できる不要な追加クエリを避けるのに役立つ。

追加セクション処理には CNAME レコードは含まれず、ましてや別名から導かれる正規名に関連付けられたアドレスレコードも含まれない。したがって、別名が NS レコードまたは MX レコードの値として使用された場合、NS 値または MX 値とともにアドレスは返されない。これは、すべてのクエリにおいて追加のクエリと追加のネットワーク負荷を引き起こす可能性がある。DNS 管理者が、更新または導入の際に一度だけ別名を解決して正規名を該当するレコードに直接記述することにより、これを避けるのはたやすい。一部の特に困難なケースでは、NS 検索の結果に追加セクションのアドレスレコードが欠けていることにより、要求が失敗する可能性がある。