为什么管理员大多在 SPF 记录中使用+a
并列?+mx
这是一个例子:
@ 10800 IN TXT "v=spf1 +a +mx -all"
仅使用参数还不够,+mx
例如:
@ 10800 IN TXT "v=spf1 +mx -all"
我认为 MX 记录的任务是发送电子邮件而不是 A 记录。谁能解释一下为什么有人会使用这个场景+a
?
为什么管理员大多在 SPF 记录中使用+a
并列?+mx
这是一个例子:
@ 10800 IN TXT "v=spf1 +a +mx -all"
仅使用参数还不够,+mx
例如:
@ 10800 IN TXT "v=spf1 +mx -all"
我认为 MX 记录的任务是发送电子邮件而不是 A 记录。谁能解释一下为什么有人会使用这个场景+a
?
坦率地说,因为他们在不了解 SPF 的基本原理的情况下从一些教程或示例配置中复制了配置。有时希望同时使用网络服务器
a
和传入的邮件交换mx
来发送邮件,但并非总是如此。最好使用具有较少额外 DNS 查询的机制:
ip4
/ip6
一遍a
又a
一遍mx
(RFC 7208, 10.1.1)即使为了更容易管理(10.1.2)a
选择了机制,它并不总是a mx
或a
,而是例如a:relay.example.com
。MX
记录中列出的主机的任务是接收电子邮件,而不一定是发送电子邮件。在处理入站和出站电子邮件的主机不同的情况下,进行不对称设置是完全有效的(并且非常普遍,尤其是对于大型操作而言)。
也就是说,不能保证SPF 中的
mx
(aka+mx
) 或a
(aka+a
) 与指定哪些主机应该发送电子邮件相关。例如,如果您不运行自己的邮件服务器,那么类似的东西
v=spf1 include:spf.majoremailserviceprovider.example -all
可能会更相关。为了直接解决为什么
a mx
特别是组合似乎在 SPF 记录中出现过多的问题,我的猜测是,这种情况归结为太多管理员添加 SPF 记录,而没有充分理解 SPF 概念来判断在他们的策略中放入什么,而只是复制粘贴一些任意构建的示例。我同意其他
+a +mx
可能是货物崇拜的反成语的答案。关于何时使用
+a
,RFC 文档在第 10.1.2 节中回答了这个问题:例如,我为我的邮件服务器发布了这样一条记录
mail.mydomain.org
,以供首先验证 HELO 身份的验证者使用。(当然,我也在v=spf1 mx -all
邮件域mydomain.org
本身发布了习惯记录。)在长度上可能是一个优势——尽管这不太可能是真正的动机。
考虑到 TXT 记录的大小可能会膨胀到单个 UDP 数据包太小。所以请求在 TCP 中再次发送,回复是多个 TCP 数据包和相关的握手设置时间。
通过仔细使用 A 和 MX 请求,可以为 SPF 记录获得两个约 1500 字节的 UDP 回复,一个用于 A,一个用于 MX,以及所有 TXT 记录的剩余约 1400 字节。
这假设您的 SPF 记录中有足够的授权“事物”超过 3000 个字节。Includes 也可以解决长度限制,但我不确定它们是否都是单独的 UDP 请求或单个 TCP 请求会话。