为什么我需要逃避; 与\在DNS DKIMlogging?

我在我们的域上设置了电子邮件身份validation,以允许使用我们的电子邮件服

我的理解是,DNSlogging需要有任何; 逃脱,例如,\;

我只是想确保所有 应该逃脱。 为此,我想确保我明白为什么需要转义。 也就是说,如果是B / C 意味着什么特别的东西,那么我怎么知道什么时候应该逃跑,而应该有特殊的意义呢? 或者说,它在DNS TXTlogging中具有特殊的(和不同的)含义,而对于DKIM设置的特殊用途,我们希望它具有这种特殊的含义(也许读取logging的人会应用这个值)

此外,ESP告诉我,DNS“正在添加\”(等待确认他们是否不明白)。

select哪些字符是特殊的,需要转义取决于所使用的名称服务器以及使用什么接口来configuration名称服务器(例如,如果您使用的是基于Web的configuration工具,它可能会自动转义;字符您)。

标准区域文件 (由RFC 1034/1035定义)使用; 字符开始评论。 如果您没有反斜线,则从分号到行尾的文本将被服务器忽略。

请注意, bind不考虑一个; 在一个已经被引用的string里面来开始一个注释,并且需要转义,但是如果你这样做,将会处理它。 这两个应该产生相同的回应 :

 IN TXT "asdf;jkl" IN TXT "asdf\;jkl" 

还要注意的是,当你使用dighost ,由这些打印出来的输出将会在分号中加一个反斜杠 ,原因是很久以前就被遗忘了。

一个 ; 是区域文件的注释字符,很像大多数Linuxconfiguration文件中的#。 它告诉绑定停止阅读; 直到该行结束。

如果你有需要有angular色; 在DNSlogging的内容中,您可以用“”将logging内容包围起来,并且不显示任何内容。 TXT和SPFlogging使用此格式(取自OpenDKIM标准):

 _domainkey.DOMAIN.TLD. IN TXT "t=y; o=-;" SELECTOR._domainkey.DOMAIN.TLD. IN TXT "k=rsa; t=y; p=YOUR_PUBLIC_KEY_HERE" 

在我的区域文件中,我根本没有\字符。 注释的值前面有一个;

 ; HOST Definitions mail A 1.2.3.4 ; mail server time A 1.2.3.4 ; ntp server 

我不知道为什么你需要包括逃脱; 字符在你的DNSlogging中。 这就意味着Bind会试图将其解释为主机名或其他值。