Office365 SPF PermError:DNS 查找过多

Sil*_*lox 3 spf microsoft-office-365

我们正在从自托管邮件平台迁移到 Office365 for Business。一切都很顺利,除了 SPF 记录。目前,我们有v=spf1 a mx include:spf.mtasv.net -all作为 TXT 记录,但 Office365 也必须允许v=spf1 include:spf.protection.outlook.com -all。所以,我继续将它们合并到:v=spf1 a mx include:spf.mtasv.net include:spf.protection.outlook.com -all. 对照 studentkickoff.be 域检查此 SPF 记录时,结果为PermError SPF Permanent Error: Too many DNS lookups.

我的问题如下:如何解决此错误?我知道我可以用它们的ip4等价物替换一些记录,但是这样做时,Office365的在线疑难解答一直抱怨找不到记录:在此处输入图片说明

提前致谢!

Mic*_*elZ 6

答案取自 SO here Author: Swift。适应问题。另外,请在此处阅读有关一般 SPF 内容的信息。

我们开始于:

v=spf1 a mx include:_spf.google.com include:servers.mcsv.net include:sendgrid.net ~all
Run Code Online (Sandbox Code Playgroud)

在抛出Too many DNS lookups错误之前,我们总共进行了 10 次查找:

  2 (Initial TXT & SPF Lookups)
  2 (a & mx Lookups)
  1 (_spf.google.com)
  1 (servers.mcsv.net)
 +1 (sendgrid.net)
 -----------------
  7 Lookups
Run Code Online (Sandbox Code Playgroud)

因此,即使不遵循包含的 SPF 记录,我们也有 7 次查找。


现在,让我们深入一个层次。

1. _spf.google.com

谷歌 SPF 记录评估为:

v=spf1 include:_netblocks.google.com include:_netblocks6.google.com ?all
Run Code Online (Sandbox Code Playgroud)

每个都解析为以下值:

# _netblocks.google.com
v=spf1 ip4:216.239.32.0/19 ip4:64.233.160.0/19 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:209.85.128.0/17 ip4:66.102.0.0/20 ip4:74.125.0.0/16 ip4:64.18.0.0/20 ip4:207.126.144.0/20 ip4:173.194.0.0/16 ?all

# _netblocks6.google.com
v=spf1 ip6:2607:f8b0:4000::/36 ip6:2a00:1450:4000::/36 ?all
Run Code Online (Sandbox Code Playgroud)

所以 google 又给了我们 2 个查找,使总数达到9 个 Lookups

2.servers.mcsv.net

Mailchimp 有点笨拙,因为它增加了 3 个额外的查找:

v=spf1 include:spf1.mcsv.net include:spf2.mcsv.net include:spf.mandrillapp.com ?all
Run Code Online (Sandbox Code Playgroud)

我想,根据您通过 Mailchimp 发送的内容,您可能能够删除其中一两个记录(但您必须自己评估)。

无论如何,这些解决方案如下:

# spf1.mcsv.net
v=spf1 ip4:207.97.237.194/31 ip4:207.97.238.88/29 ip4:207.97.240.168/29 ip4:69.20.10.80/29 ip4:69.20.41.72/27 ip4:74.205.22.1/27 ip4:69.20.90.0/26 ?all

# spf2.mcsv.net
v=spf1 ip4:204.232.163.0/24 ip4:72.26.195.64/27 ip4:74.63.47.96/27 ip4:173.231.138.192/27 ip4:173.231.139.0/24 ip4:173.231.176.0/20 ip4:205.201.128.0/24 ?all

# spf.mandrillapp.com
v=spf1 ip4:205.201.136.0/24 ip4:205.201.137.0/24 ?all
Run Code Online (Sandbox Code Playgroud)

这使我们总共有12 个查找(其中两个已经超过限制)。

2.sendgrid.net

SendGrid 对我们来说是最少的额外查找。

v=spf1 ip4:208.115.214.0/24 ip4:74.63.202.0/24 ip4:75.126.200.128/27 ip4:75.126.253.0/24 ip4:67.228.50.32/27 ip4:174.36.80.208/28 ip4:174.36.92.96/27 ip4:69.162.98.0/24 ip4:74.63.194.0/24 ip4:74.63.234.0/24 ip4:74.63.235.0/24 include:sendgrid.biz ~all
Run Code Online (Sandbox Code Playgroud)

所以这里唯一的额外查找是sendgrid.biz,其计算结果为:

v=spf1 ip4:208.115.235.0/24 ip4:74.63.231.0/24 ip4:74.63.247.0/24 ip4:74.63.236.0/24 ip4:208.115.239.0/24 ip4:173.193.132.0/24 ip4:173.193.133.0/24 ip4:208.117.48.0/20 ip4:50.31.32.0/19 ip4:198.37.144.0/20 ~all
Run Code Online (Sandbox Code Playgroud)

这使我们总共进行了 14 次查找。


所以我们的总数是14 Lookups。我们需要将其减少到 10 个。我在下面概述了几个选项,您可能需要使用其中的 1 个以上才能将其减少。

  1. 直接包含一些重定向的 spf 记录。现在我们知道 spf 记录重定向到哪些服务器,您可以去掉中间人并直接包含它们。 注意:如果任何服务最终更改了它们的 SPF 记录,您必须手动完成更新您的过程。

  2. 删除您正在使用的一些服务。不确定您的用例是什么来拥有所有这些服务,但肯定有一些您可以使用的重叠。例如,SendGrid 支持 (1) 事务性外发邮件,(2) 时事通讯/营销电子邮件,以及 (3) 传入邮件。所以可能会有一些可减少的冗余。

  3. 如果 MX 记录是多余的,则删除它。根据您的设置,MX 查找可能是多余的。

  • `mx` 指令很容易导致不止一次的额外查找。如果有 N 个`MX` 记录,其中`A`/`AAAA` 记录未包含在初始响应中(例如,在区域外,这是相当常见的),则会有 N 次额外查找。我会质疑`a`和`mx`的有效性,那些真的是在发送邮件吗?将 GApps 包含在 SPF 中表明您的“MX”记录可能指向那里?在这种情况下,`mx` 位是错误的,如果您指定了他们的全套入站服务器,则需要额外进行 7 次查找。 (2认同)