SPF 规范说:
给定域名的已发布 SPF 记录应保持足够小,以使其查询结果适合 512 个八位字节。否则,可能会超出 DNS 协议限制。
…
请注意,在计算对 TXT 格式查询的回复大小时,必须考虑在域名上发布的任何其他 TXT 记录。
它还指出,最近的 DNS 规范允许更大的 UDP 响应(限制的原因,因为 SPF 规范暗示您不应该依赖 DNS over TCP 工作),但这似乎并没有真正覆盖“应该” .
问题在于,许多组织需要同一域上的 TXT 记录用于验证目的(例如facebook-domain-verification
、google-site-verification
、atlassian-domain-verification
、adobe-sign-verification
等),并且可以快速将 TXT RRset 的总大小超过 512 字节。
看起来大多数大型组织都在遵守这一点,但也有一些超越了:
% dig +noall +stats netflix.com TXT | grep 'MSG SIZE'
;; MSG SIZE rcvd: 593
% dig +noall +stats linkedin.com TXT | grep 'MSG SIZE'
;; MSG SIZE rcvd: 632
% dig +noall +stats twitter.com TXT | grep 'MSG SIZE'
;; MSG SIZE rcvd: 642
% dig +noall +stats microsoft.com TXT | grep 'MSG SIZE'
;; MSG SIZE rcvd: 1459
(您可以通过运行类似的内容来查看可能发生的截断dig +notcp +noedns +ignore microsoft.com TXT
。)
六个月以来,我一直处于边缘,现在我需要为新供应商添加另一条验证记录,这将使我远远超过 512 字节。我已尽我所能整合我的 SPF 记录,并确保我无法删除现有的验证记录。
我应该在这里做什么?我不能没有验证记录,但我也不想忽略 SPF 规范。也就是说,微软似乎忽略了它,我不认为他们的邮件被拒绝了。
重读 SPF 规范后,对 TXT RRset 大小的担忧是,如果客户端既不支持 EDNS,又不支持基于 TCP 的 DNS,DNS 响应可能会被截断。基于 TCP 的 DNS 一直是 DNS 的必需部分,并且警告似乎与损坏的 DNS 有关。(公平地说,有很多地方 DNS over TCP 被破坏了,尤其是在过去。)
但是我知道我的 DNS 服务器可以通过 TCP 访问,而且我更关心其他人主动损坏的 DNS,而不是确保他们支持(相对)新的 DNS 规范。
所以答案似乎是,我有“正当理由……忽略 [the] item,[and] 全部含义 [已] 被理解和仔细权衡”。