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

11. Name syntax (名前の構文)

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

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

ただし、DNSデータを使用するさまざまなアプリケーションが、その状況に適した特定の値に制限を課すことができることに注意してください。たとえば、任意のバイナリラベルがMXレコードを持つことができるからといって、任意のバイナリ名を電子メールアドレスのホスト部分として使用できるわけではありません。DNSのクライアントは、DNS検索リクエストのキーとして使用する値、およびDNSによって返される値に、その状況に適した制限を課すことができます (can)。クライアントにそのような制限がある場合、使用する前に適合していることを確認するためにDNSからのデータを検証する責任は完全にクライアント側にあります。

[RFC1123] セクション6.1.3.5も参照してください。