2

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

使用常用命令行工具检索 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 / 等的软件?

4

2 回答 2

2

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

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

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

于 2015-03-27T22:43:24.753 回答
0

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

在我的情况下,使用opendmarcUbuntu Trusty (14.04) 上的最后一个包和Postfix,在处理一些奇怪/格式错误的 DMARC DNS 记录(但不完全是你提到的情况)时使守护进程崩溃。

我会简单地添加单行方法并确保安全,这不仅是因为检查器软件可能会中断,而且更糟糕的是,您的邮件会被拒绝,因为实际上政策似乎并没有对齐!

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

_dmarc.example.su    IN TXT "v=DMARC1; p=reject; rua=mailto:rua-dmarc@example.su"
于 2015-03-27T22:29:21.567 回答