SOA レコード RNAME: ドット以外の特殊文字にはバックスラッシュが必要ですか?

SOA レコード RNAME: ドット以外の特殊文字にはバックスラッシュが必要ですか?

https://www.rfc-editor.org/rfc/rfc1035#section-8

<local-part>にドットやその他の特殊文字が含まれている場合、マスターファイルでの表現には、ドメイン名が適切にエンコードされるようにバックスラッシュ引用符を使用する必要があります。たとえば、メールボックス[メールアドレス]Action\.domains.ISI.EDU として表されます。

しかし、実際にはドット以外の特殊文字にバックスラッシュが必要なことは見たことがありません。RFC 1035 によれば、[email protected]は としてエンコードされる必要がありますAction\+domains.ISI.EDUが、実際には常に のようですAction+domains.ISI.EDU。プラス記号は「特殊文字」とは見なされないのでしょうか、それともドットだけがバックスラッシュを必要とする特殊文字なのでしょうか?

答え1

+DNS のコンテキストでは、どこでも特殊文字ではありません。

DNS には紛らわしい用語があります:

  • ドメイン名は任意の文字で、制限は一切ありません。ドットのみがラベル間の区切りとして特別な意味を持ちます。
  • ホスト名は、「文字、数字、ハイフン」または LDH 制約に従うドメイン名のサブセットです。そのサブセットには+出現できないため、特別な意味ではなく、まったく出現できないため、それを保護するために行うべきことはありません。

特別な処理を必要とする文字はドキュメント全体に散在していますが、簡単に言うと次のようになります。

  • .脱出する必要がある\
  • そのため、どこかにリテラルが必要な場合は\、それをエスケープする必要もあります。
  • ファイル内の位置によっては、改行や引用符をエスケープする必要があるかもしれません。そうしないと、別の意味になってしまうからです。この必要性と他の文字については、デフォルトで が定義されています。 は、エスケープし\DDDたいDDDバイトの10進値です(文字列の場合はUS-ASCIIです)。
  • $たとえば、bind や、部分的には他のソフトウェアがゾーン内の名前としてではなく、特定の指示として$ORIGIN扱うため、罰金内の場所と誰がそれを使用するかに応じてエスケープする必要がある場合があります。$INCLUDE

関連情報