![SOA 记录 RNAME:除了点之外的特殊字符是否需要反斜杠?](https://linux22.com/image/784210/SOA%20%E8%AE%B0%E5%BD%95%20RNAME%EF%BC%9A%E9%99%A4%E4%BA%86%E7%82%B9%E4%B9%8B%E5%A4%96%E7%9A%84%E7%89%B9%E6%AE%8A%E5%AD%97%E7%AC%A6%E6%98%AF%E5%90%A6%E9%9C%80%E8%A6%81%E5%8F%8D%E6%96%9C%E6%9D%A0%EF%BC%9F.png)
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
字节的十进制值(以及字符串的 US-ASCII) $
可能需要根据您所在的位置以及谁使用它来进行转义,因为例如绑定,并且部分可能是其他一些软件,将其视为$ORIGIN
特定$INCLUDE
指令而不是区域中的名称。