DNS记录中TXT数据的格式?


9

我的域的TXT记录当前具有法律免责声明以及条款和条件。由于垃圾邮件发送者和其他不当行为,它们是在一段时间前添加的(如果我需要,可以给我法律上的帮助)。

我需要添加与第一个不同的更多信息。根据RFC 1035,3.3.14

3.3.14. TXT RDATA format


    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    /                   TXT-DATA                    /
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

TXT-DATA        One or more <character-string>s.

TXT RRs are used to hold descriptive text.  The semantics of the text
depends on the domain where it is found.

确切地说,如何添加第二(或第三)字符串?什么是TXT-DATA的分隔符?

还是添加第二条(或第三条)TXT记录?甚至允许多个TXT记录吗?

Answers:


9

对于named最受欢迎的DNS服务器,您可以使用以下任何一种形式来创建更长的TXT记录:

  • 一串一行:

    name IN TXT "very long string here"
    
  • 一行中有很多字符串:

    name IN TXT "very long " "string here"
    
  • 许多字符串,每行一个,用括号括起来:

    name IN TXT ("very long "
                 "string here")
    

对于多字符串形式,将字符串简单地逐字连接在一起(上面的所有示例将给出相同的结果)。

请注意,大多数DNS工具并不明确支持针对同一DNS创建多个TXT记录name。同样,在现实生活中,大多数TXT记录都用于SPF或DKIM。即使您设法以某种方式针对同一个创建多个TXT记录name,对于SPF来说也是非法的,因此不建议这样做。

另外,从不同的角度来看这个。例如,A对于给定名称,您可以具有多个记录,这些记录用于指定您的网站具有多个服务器。但是,根据DNS规则,它必须自动将其在DNS查询(又名轮询)中的顺序随机化,以便大多数客户端请求在所有IP地址之间平均分配。

如果创建多个TXT记录,则意味着DNS还必须将它们随机化,并且必须不按特定顺序将它们提供给您。那将很尴尬:您的文字将显示为

"very long ""string here"

或作为

"string here""very long "

换句话说,请勿尝试这样做-只需创建一条多行TXT记录并将其命名为“一天”即可。


好了,我终于有机会重新审视这个....一个流行的SPF检查无法处理在一个TXT记录的多串; SPF解析器也不能位于check-auth@verifier.port25.com(其电子邮件地址并返回自动报告)。
2014年

我认为拥有多个同名的TXT记录是很容易且完全有效的,其中之一用于SPF。RFC 7208第4.5节指出,不以开头的记录v=spf1应被忽略。
马丁

数据包中的二进制定界符是什么?
CoolAJ86

字符串既不连接,也不导致多个TXT记录-可以有多个txt记录,其中包含多个单独的字符串,将它们连接起来对于某些应用程序是错误的。
请记住莫妮卡

@MarcLehmann:您的评论没有任何意义。字符串可以串联(例如,使用如上所述的多行形式),但是可能有多个TXT记录(也许使用那些长字符串)。该答案的要点是不建议使用多个TXT记录,因为这可能会使仅期望1个TXT记录的工具感到困惑。
mvp
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.