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

11. 名前の構文

時に、ドメイン名システムはインターネットのホスト名をデータにマッピングし、インターネットアドレスをホスト名にマッピングする目的にのみ役立つと想定されることがある。これは正しくない。DNS は (いくらか限定的ではあるが) 汎用の階層データベースであり、ほとんどあらゆる目的のためにほとんどあらゆる種類のデータを格納できる。

DNS 自体は、リソースレコードを識別するために使用できる特定のラベルに 1 つの制限を課すだけである。その 1 つの制限は、ラベルの長さと完全な名前の長さに関するものである。1 つのラベルの長さは 1 から 63 オクテットに制限される。完全なドメイン名は 255 オクテット (区切り文字を含む) に制限される。長さゼロの完全な名前は DNS ツリーのルートを表すと定義され、通常は「.」として書かれ表示される。これらの制限を除けば、任意のバイナリ文字列をあらゆるリソースレコードのラベルとして使用できる。同様に、任意のバイナリ文字列は、ドメイン名をその値の一部または全部として含むあらゆるレコード (SOA、NS、MX、PTR、CNAME、および今後追加される可能性のあるその他のもの) の値として使用できる。DNS プロトコルの実装は、使用できるラベルにいかなる制限も課してはならない。特に、DNS サーバーは、一部の DNS クライアントプログラムにとって受け入れられない可能性のあるラベルを含むという理由で、ゾーンの提供を拒否してはならない。DNS サーバーは、疑わしいと見なされる可能性のあるラベルを含むプライマリゾーンを読み込む際に警告を発するように、あるいは読み込みを拒否するように構成できるが、これはデフォルトで起こるべきではない。

ただし、DNS データを利用する各種アプリケーションは、その環境においてどのような特定の値が受け入れられるかについて制限を課すことができることに注意されたい。例えば、任意のバイナリラベルが MX レコードを持ち得るからといって、任意のバイナリ名が電子メールアドレスのホスト部分として使用できるわけではない。DNS のクライアントは、DNS 検索要求のキーとして使用する値、および DNS によって返される値に対して、その状況に適したあらゆる制限を課すことができる。クライアントがそのような制限を持つ場合、そのデータを何らかの形で使用する前に、DNS からのデータが適合していることを検証する責任はもっぱらクライアントにある。

[RFC1123] の 6.1.3.5 節も参照されたい。