首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SPF记录中查找过多的DNS

问在SPF记录中查找过多的DNS
EN

Stack Overflow用户
提问于 2013-01-10 15:21:24
回答 7查看 51.8K关注 0票数 42

我的网站需要发送电子邮件与谷歌应用程序,SendGrid和MailChimp服务。谷歌应用程序是用来接收和阅读收到的电子邮件到我的域名。

我需要为我的域名设置SPF记录。以下内容在语法上是正确的(不确定A和MX标记):

“include:_spf.google.com include:servers.mcsv.net include:sendgrid.net ~v=spf1 a mx”

但是如果我用http://www.kitterman.com/getspf2.py测试它

PermError SPF永久错误: DNS查找过多

与http://www.onlineaspect.com/2009/03/20/too-many-dns-lookups-in-an-spf-record/相似的问题

如何优化/重写我的SPF记录?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-01-10 16:37:02

所以,我以前从来没有这样做过,但根据你发来的那篇文章,这是我想出来的。

我们一开始是:

代码语言:javascript
复制
v=spf1 a mx include:_spf.google.com include:servers.mcsv.net include:sendgrid.net ~all

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

代码语言:javascript
复制
  2 (Initial TXT & SPF Lookups)
  2 (a & mx Lookups)
  1 (_spf.google.com)
  1 (servers.mcsv.net)
 +1 (sendgrid.net)
 -----------------
  7 Lookups

因此,即使没有跟踪包括SPF记录,我们有7个查找。

现在,让我们跳得更深一点。

1. _spf.google.com

google SPF记录的计算结果为:

代码语言:javascript
复制
v=spf1 include:_netblocks.google.com include:_netblocks6.google.com ?all

它们中的每一个都解析为以下值:

代码语言:javascript
复制
# _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

因此,谷歌给我们提供了两个更多的查找,使总数达到9查找。

2. servers.mcsv.net

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

代码语言:javascript
复制
v=spf1 include:spf1.mcsv.net include:spf2.mcsv.net include:spf.mandrillapp.com ?all

我可以想象,根据您通过Mail黑猩猩发送的内容,您可能可以删除其中的一两条记录(但您必须自己评估)。

总之,这些决心如下:

代码语言:javascript
复制
# 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

这就使我们总共得到了12查找(这已经超出了限制)。

2. sendgrid.net

最后,SendGrid是我们额外查找的最少数量。

代码语言:javascript
复制
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

因此,这里唯一的附加查找是sendgrid.biz,它的计算结果为:

代码语言:javascript
复制
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

这使我们的总数达到14次查询。

所以我们的总计是14查找。我们需要把它降到10。我已经概述了下面的几个选项,你可能需要使用其中的一个以上的方法来降低它。

  1. 直接包括一些重定向spf记录。现在我们知道spf记录重定向到哪台服务器了,您可以去掉中间人并直接将它们包括在内。注意:如果任何服务最终改变了他们的SPF记录,您将不得不通过手动更新您的过程。
  2. 删除您正在使用的一些服务。不确定拥有所有这些服务的用例是什么,但肯定有一些重叠,您可能可以使用。例如,SendGrid支持(1)事务发送邮件,(2)通讯/营销电子邮件,(3)传入邮件。所以可能会有一些可还原的冗余。
  3. 如果MX记录是多余的,就移除它。根据您的设置,MX查找可能是多余的。

希望这能有所帮助!

票数 72
EN

Stack Overflow用户

发布于 2015-12-22 14:51:23

斯威夫特的回答很好。

上面没有提到的一种技术是查看具有自己SPF记录的单独子域是否可以用于通过这些不同路由发送邮件的系统。

例如,如果域名是example.com,那么让谷歌应用程序从user@gapps.example.com这样的地址发送。然后,gapps.example.com可以有包含_spf.google.com的SPF记录,并且可以从主example.com SPF记录中删除_spf.google.com,从而减少查找3。

票数 8
EN

Stack Overflow用户

发布于 2015-04-19 16:51:43

看看SPF-工具*,它帮助将SPF记录从使用包含的原始记录重新组装为静态记录,仅包含ip4和ip6字段。它可以很容易地与本地运行的DNS服务器或托管DNS服务结合在一起,使用它们的API来保持所有内容与上游包含的同步。

*我是作者(现在和其他贡献者一起),它在Apache2.0许可下是开源的。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14261214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档