我的网站需要与谷歌企业应用套件,SendGrid和MailChimp服务发送电子邮件。 谷歌企业应用套件,用于接收和阅读收到的电子邮件到我的域名。
我需要设置SPF记录我的域名。 下面是语法正确的(不知道A和MX令牌):
“V = SPF1一个MX包括:_spf.google.com包括:servers.mcsv.net包括:sendgrid.net〜所有”
但是,如果我有测试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记录?
所以,我以前从来没有做到这一点,但基于您发送的文章,这是我想出了。
我们开始:
v=spf1 a mx include:_spf.google.com include:servers.mcsv.net include:sendgrid.net ~all
我们得到10个总查找我们扔之前Too many DNS lookups
错误:
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
在谷歌SPF记录计算结果为:
v=spf1 include:_netblocks.google.com include:_netblocks6.google.com ?all
每个解析为以下值:
# _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
因此谷歌给了我们2点的查找,使总数达到了9个查找 。
2. servers.mcsv.net
Mailchimp是一个有点doosey的,因为它增加了一个全3个额外的查询:
v=spf1 include:spf1.mcsv.net include:spf2.mcsv.net include:spf.mandrillapp.com ?all
我猜想,这取决于你通过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
这给我们带来了总共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
因此,这里的唯一附加查找是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
这使我们的总计多达14个查找。
因此,我们总计为14个查找 。 我们需要得到下降到10,我几个选项下面列出,您可能需要使用超过1人获得了下去。
直接包括一些重定向的SPF记录。 现在我们知道哪些服务器的SPF记录重定向到,你可以切出的中间人和直接囊括其中。 注意:如果任何服务最终改变他们的SPF记录,你必须去通过手动更新你的过程。
删除一些你正在使用的服务。 不知道你的使用情况是用于具有所有这些服务是什么,但肯定有一些重叠,你可能能够使用。 例如,支撑件SendGrid(1)的事务发出的邮件,(2)的通讯/营销电子邮件,以及(3)接收的邮件。 所以可能会有一些还原冗余。
删除MX记录,如果它是多余的。 根据你的设置中,MX查找可以是多余的。
希望这可以帮助!
斯威夫特的答案是优秀的。
这是不是上面提到的技术是看是否与自己的SPF记录单独的子域可用于那些通过这些不同的路由发送邮件系统。
例如,如果域名是example.com
,有谷歌应用程序从类似地址发送user@gapps.example.com
。 然后可以有一个SPF记录gapps.example.com
包括_spf.google.com
,和_spf.google.com
可以从主去除example.com
SPF记录,其通过3减少查找。
看看SPF-工具 *与从使用包括到包含只是一个静态的原重组SPF记录帮助ip4
和ip6
领域。 它可以方便地用在本地运行的DNS服务器或托管DNS服务使用他们的API把一切都在同步与上游包括耦合在一起。
*我是作者(现在连同其他捐助者),它是根据Apache 2.0许可开源。
我们探索扁平化SPF记录到IP地址,以及创建一个子域。 所有这些似乎是一个大量的工作。 我们发现从spfproxy.org服务字面上需要几分钟来设置。 他们基本上掩盖使用SPF宏背后的DNS查找。 不知道为什么越来越多的公司不提供此。
几年前,我写水合物的SPF ,一个工具,查找包括与合并的结果成一个巨大的纪录。 正如在自述文件中提到,这种做法是不理想的 - 它消除了你的包括域更新记录的能力。 但是,当你都撞在允许的极限,它会解决眼前的问题,并可以通过定期更新保持几分维护。
10查找限制是DNS查找的限制。 扁平化的SPF记录以包括更少的DNS查找和替换他们的IP(扁平化)是一个办法让周围的限制。
您可以手动做到这一点,但你必须更新每次提供商之一,改变了他们的IP地址(这经常发生),你的SPF记录。
理想的解决方案是使用SPF扁平化的服务 。 这一个是免费的低量,还是便宜了超过500个电子邮件/月。 它定期轮询你想要的SPF记录,包括更新IP地址。
Fraudmarc.com
披露:我不跟这家公司有关,这是不是一个推荐链接
这10-DNS的查找限制由SPF实现强加阻止针对DNS基础设施的DDoS攻击。
随着DMARCLY的安全SPF功能,可以解除限制而无需重写您的SPF记录。