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 约束的域名子集;在该子集中+不能出现,因此它在某种意义上并不特殊,没有什么可以保护它,因为它根本不能出现。

需要特殊处理的几个字符分散在文档各处,但简而言之:

  • .需要转义,使用\
  • 因此,如果你想\在某处使用文字,你也需要对其进行转义
  • 然后,根据您在文件中的位置,可能需要对行尾或引号进行转义,因为否则将意味着其他内容。对于此需求以及任何其他字符,默认定义为使用您想要转义\DDDDDD字节的十进制值(以及字符串的 US-ASCII)
  • $可能需要根据您所在的位置以及谁使用它来进行转义,因为例如绑定,并且部分可能是其他一些软件,将其视为$ORIGIN特定$INCLUDE指令而不是区域中的名称。

相关内容