在DMARC等人的多行中分割DNS IN TXT记录

时间:2015-03-27 22:15:04

标签: dns dmarc

dmarc.org处,它建议DNS的IN TXT记录可以在区域文件中以特殊形式写入,以使它们不会溢出文本编辑器中的行。

  

使用a检索时,DMARC策略记录可能如下所示   常用命令行工具:

% dig +short TXT _dmarc.example.com.
"v=DMARC1\; p=none\; rua=mailto:dmarc-feedback@example.com"
     

要发布此类记录,请为域所有者的DNS管理员   在相应的区域文件中创建如下所示的条目   (遵循传统的区域文件格式):

; DMARC record for the domain example.com

_dmarc  IN TXT ( "v=DMARC1; p=none; "
                 "rua=mailto:dmarc-feedback@example.com" )

我尝试在我的实际区域文件中使用NSD跟踪示例;但是,当我然后查询域时,我实际上也将结果包含在多行中。

% dig +short TXT _dmarc.example.su
"v=DMARC1\; " "p=reject\; " "rua=mailto:rua-dmarc@example.su"

这是预期的吗?这可能会破坏一些应该解析这些TXT记录以获得DMARC / SPF / DKIM /等的软件吗?

2 个答案:

答案 0 :(得分:2)

TXT记录的各个组成部分每个最多只能包含255个字符,因为它们以<length><data ...>格式在线路上传输。

任何可能需要超过255个字符的代码应该能够将多个组件合并为一个字符数组。

在主文件格式中,字符串周围的大括号表示多个组件将包含在单个TXT记录中 - 如果没有它们,则会创建两个单独的TXT记录,并且两个记录的相对顺序将是未定义的和主题改变。

答案 1 :(得分:0)

很难分辨,因为它将取决于DMARC检查程序的最终实现。但是,即使在DMARC文档中详细说明,DMARC记录也不会太大,以至于您可能会溢出编辑器。

在我的情况下,使用Ubuntu Trusty(14.04)上的最后一个opendmarc包以及Postfix,在处理一些奇怪/格式错误的DMARC DNS记录时使守护进程崩溃(但事实并非如此)提)。

我只是添加单行方法并保证安全,不仅仅是因为可能会破坏检查软件,更糟糕的是会让您的邮件被拒绝,因为政策似乎没有被分配它实际上是!

所以我只是添加这样的东西:

_dmarc.example.su    IN TXT "v=DMARC1; p=reject; rua=mailto:rua-dmarc@example.su"