SPF 记录——为什么我们在“+mx”旁边使用“+a”?

71G*_*1GA 9 spf

为什么管理员大多在 SPF 记录中使用+a并列+mx?这是示例:

@              10800 IN TXT     "v=spf1 +a +mx -all"
Run Code Online (Sandbox Code Playgroud)

仅使用+mx参数是不够的,例如:

@              10800 IN TXT     "v=spf1 +mx -all"
Run Code Online (Sandbox Code Playgroud)

我认为 MX 记录的任务是发送电子邮件而不是 A 记录。谁能解释一下为什么有人会使用这种情况+a

Esa*_*nen 21

坦白说是因为他们在不了解SPF基本原理的情况下,从一些教程或示例配置中复制了配置。有时希望例如在a和传入邮件交换 mx中的网络服务器也用于发送邮件,但并非总是如此。

最好支持具有较少附加 DNS 查询的机制:ip4/ip6一遍aa一遍mxRFC 7208,10.1.1)即使为了更容易管理(10.1.2),a选择了机制,也不总是a mxa,而是例如a:relay.example.com.

  • 另一方面,`mx` 和 `a` 使用起来更符合人体工程学,因为它们是象征性的,您不必列出可能更改的 IP 地址。邮件服务器通常已经创建并缓存了相关的 DNS 查询,如果在实际实践中使用 `a` 或 `mx` 成为可衡量的性能问题,我会感到惊讶…… (3认同)
  • @71GA 由于必须查找其他记录,收件人的性能受到了影响。从`a`、`mx`(分两步!)、`include`(可能是多个步骤!)等间接指定的IP地址需要查找这些其他记录,以获得SPF验证实际需要的IP地址。这也是为什么存在最大查找次数 (10) 的原因,在此之后收件人将拒绝处理您的完整政策。`ip4:x` 和 `ip6:x` 是理想的策略形式,如果它们服务于一个目的,间接是相关的。 (2认同)

Håk*_*ist 19

MX记录中列出的主机的任务是接收电子邮件,不一定是发送电子邮件。
在处理入站和出站电子邮件的主机不同的情况下,拥有不对称设置是完全有效的(并且很常见,特别是对于大型操作)。

也就是说,不能保证SPF 中的mx(aka +mx) 或a(aka +a) 与指定哪些主机应该发送电子邮件相关。
例如,如果您不运行自己的邮件服务器,则可能v=spf1 include:spf.majoremailserviceprovider.example -all更相关。

为了直接解决为什么a mx组合在 SPF 记录中所占比例过高的问题,我的猜测是这种情况归结为太多管理员添加 SPF 记录,而没有充分了解 SPF 概念,无法判断在他们的策略中放入什么内容,而只是复制粘贴一些任意构造的示例。