是否在SPF记录中超出了DNS互动条款的最大限制?


16

作为托管服务提供商,我们代表客户发送电子邮件,因此我们帮助他们在DNS中设置DKIM和SPF电子邮件记录,以确保电子邮件的正确传递。我们一直建议他们使用http://mail-tester.com来测试他们没有错过任何东西,我非常喜欢这个工具。

我们已经遇到了几次问题,我不确定,这是基于域名的SPF记录中的DNS“限制”。因此,如果您有:

v=spf1 a include:aspmx.googlemail.com include:campaignmonitor.com include:authsmtp.com include:mail.zendesk.com include:salesforce.com include:_hostedspf.discourse.org ~all

你会得到

example.com ... campaignmonitor.com: Maximum DNS-interactive term limit (10) exceeded

像这样:

邮件测试结果

我对此有一些疑问。

  1. 我在这里计算六个域名,而不是10个,那么为什么它在这里命中“十个” DNS请求? 在这里回答

  2. 这10个DNS交互式术语限制是警告还是实际错误?例如,我们应该在乎吗?这有点困扰我们的客户,他们通过电子邮件向我们寻求支持。 在这里回答

  3. 这10个DNS交互式术语是否限制了当今网络上的实际问题?如您所见,该客户有很多为他们发送电子邮件的服务,他们都是合法的。也许此DNS限制是在2000年设置的,当时委托这样的电子邮件服务并不常见?

是的,我们可以让客户将SPF记录中的IP包含更改为IP,但是如果我们更改IP,这将使我们陷入束缚,一堆客户的资料将破裂。真的不想那样做..

有什么解决方法?



达恩,我搜索了错误消息,但点击率为零。
杰夫·阿特伍德

2
我不希望您找到任何搜索的内容。它来自在线测试工具,而不是来自实际问题(在链接的问题中您会看到类似PermError消息的问题)。
迈克尔·汉普顿

我喜欢其他人,但看不到提供解决方法的答案?实际上,这10个查找限制是实际执行的吗?
杰夫·阿特伍德

1
dmarcian.com/spf-survey添加到您的工具集中,请确保您是否为客户提供SPF,它与您直接使用的SPF不同(不要在所包含的SPF中包含第三方)
Jacob Evans

Answers:


8
  1. 大多数情况下已经回答了,请注意,包括Google在内的这种方式是错误的 -您要对_spf.google.com重定向使用或招致罚款:

    ○ → host -t txt aspmx.googlemail.com
    aspmx.googlemail.com descriptive text "v=spf1 redirect=_spf.google.com"
    
    ○ → host -t txt _spf.google.com
    _spf.google.com descriptive text "v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all"
    

该查询将自行消耗5/10的数据-4/10仍然很糟糕,但减少了20%。

  1. 它将停止处理并返回永久错误 -由引擎使用SPF决定如何处理永久错误。

  2. 是的-没有处理限制,SPF机制可以用作针对第三方或第二方的DoS放大器

解决方法是,电子邮件可以来自主要属性的子域,community.largecorporation.com例如。


我相信使用子域会破坏DKIM吗?我知道过去我们遇到过麻烦。似乎这是唯一的解决方案。
Jeff Atwood

1
@JeffAtwood通常,DKIM由发送的domaim签名。如果您使用子域,请使用该子域进行签名。但是,签署一个子域是合法的,但可能无法进行处理。需要相对于签名域创建DKIM记录。发起人通常会在文档上签名以允许进行来源验证。
BillThor

1
只要存在针对邮件域而不是根域的 SPF和DKIM记录,并且您使用进行签名d=subdomain.example.com,就可以了。理论上。更好地测试!
MikeyB 2015年

8
  1. 假设冗余(如对多个引用_spf.google.com及其引用的记录)仅被计算一次,那么从您已经查找初始记录的位置开始,我计算了17次查找。(见下文。)

  2. 它拒绝查找评估您的SPF记录所需的所有记录,因为这会“做太多工作”。大概这意味着它将把您的域视为没有SPF记录(或可能拒绝它)。规范说这会导致永久错误使接收者可以相当容易地决定如何做

  3. 我认为,一般而言,滥用行为一直在上升而不是下降。此限制似乎是要阻止滥用的发件人域,否则,它们可能会通过大量SPF链淹没收件人,并有可能导致DoS。

我认为,尽管将电子邮件外包很普遍,但将电子邮件外包给六个不同的提供商实际上并不常见。您必须以某种方式优化SPF记录。
(一方面,对的引用aspmx.googlemail.com似乎很浪费,因为立即将其重定向到另一个名称。)

<lookup of example.com A>                   #1
$ dig aspmx.googlemail.com TXT +short       #2
"v=spf1 redirect=_spf.google.com"
$ dig _spf.google.com TXT +short            #3
"v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all"
$ dig _netblocks.google.com TXT +short      #4
"v=spf1 ip4:64.18.0.0/20 ip4:64.233.160.0/19 ip4:66.102.0.0/20 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:74.125.0.0/16 ip4:173.194.0.0/16 ip4:207.126.144.0/20 ip4:209.85.128.0/17 ip4:216.58.192.0/19 ip4:216.239.32.0/19 ~all"
$ dig _netblocks2.google.com TXT +short     #5
"v=spf1 ip6:2001:4860:4000::/36 ip6:2404:6800:4000::/36 ip6:2607:f8b0:4000::/36 ip6:2800:3f0:4000::/36 ip6:2a00:1450:4000::/36 ip6:2c0f:fb50:4000::/36 ~all"
$ dig _netblocks3.google.com TXT +short     #6
"v=spf1 ~all"
$ dig campaignmonitor.com TXT +short        #7
"google-site-verification=HcHoB67Mph6vl5_x4gK5MN9YwN5gMgfZYdNmsP07tIg"
"v=spf1 mx ptr ip4:23.253.29.45/29 ip4:203.65.192.250 include:cmail1.com include:_spf.google.com include:stspg-customer.com ~all"
$ dig cmail1.com TXT +short                 #8
"google-site-verification=HSJ8sL4AxQo0YHHNk9RwDqs0p3lJPGmc1nCrSsmous8"
"mailru-verification: 95d4c6eb0645b43c"
"v=spf1 ip4:103.28.42.0/24 ip4:146.88.28.0/24 ip4:163.47.180.0/22 ip4:203.55.21.0/24 ip4:204.75.142.0/24 ~all"
$ dig stspg-customer.com TXT +short         #9
"v=spf1 ip4:166.78.68.221 ip4:166.78.69.146 ip4:23.253.182.103 ip4:192.237.159.42 ip4:192.237.159.43 ip4:167.89.46.159 ip4:167.89.64.9 ip4:167.89.65.0 ip4:167.89.65.100 ip4:167.89.65.53 -all"
$ dig authsmtp.com TXT +short               #10
"v=spf1 include:spf-a.authsmtp.com include:spf-b.authsmtp.com ~all"
"google-site-verification=skc1TleK4GylDiNZUayfvWWgqZIxmmiRj4KgXlCgB8E"
$ dig spf-a.authsmtp.com TXT +short         #11
"v=spf1 ip4:62.13.128.0/24 ip4:62.13.129.128/25 ip4:62.13.136.0/22 ip4:62.13.140.0/22 ip4:62.13.144.0/22 ip4:62.13.148.0/23 ip4:62.13.150.0/23 ip4:62.13.152.0/23 ~all"
$ dig spf-b.authsmtp.com TXT +short         #12
"v=spf1 ip4:72.52.72.32/28 ip4:64.49.192.16/29 ip4:209.61.188.242 ip4:64.49.192.24 ip4:64.49.192.25 ip4:64.49.210.64/29 ip4:64.49.210.72/30 ip4:64.49.210.76 ip4:64.49.210.77 ip4:64.49.210.78 ~all"
$ dig mail.zendesk.com TXT +short           #13
"v=spf1 ip4:192.161.144.0/20 ip4:185.12.80.0/22 ip4:96.46.150.192/27 ip4:174.137.46.0/24 ~all"
$ dig salesforce.com TXT +short             #14
"adobe-idp-site-verification=898b7dda-16a9-41b7-9b84-22350b35b562"
"MS=749862C9F42827A017A6EA2D147C7E96B3006061"
"MS=ms68630177"
"v=spf1 include:_spf.google.com include:_spfblock.salesforce.com include:_qa.salesforce.com ip4:136.146.208.16/28 ip4:136.146.210.16/28 ip4:136.146.208.240/28 ip4:136.146.210.240/28 ip4:85.222.130.224/28 ip4:136.147.62.224/28 ip4:136.147.46.224/28 mx ~all"
$ dig _spfblock.salesforce.com TXT +short   #15
"v=spf1 ip4:96.43.144.0/20 ip4:182.50.76.0/22 ip4:202.129.242.0/23 ip4:204.14.232.0/21 ip4:62.17.146.128/26 ip4:64.18.0.0/20 ip4:207.126.144.0/20 ip4:68.232.207.20 ip4:207.67.38.45 ip4:198.245.81.1 ip4:198.245.95.4/30 ip4:136.146.128.64/27  ~all"
$ dig _qa.salesforce.com TXT +short         #16
"v=spf1 ip4:199.122.122.176/28 ip4:199.122.121.112/28 ip4:199.122.122.240/28 ip4:66.231.95.0/29 ~all"
$ dig _hostedspf.discourse.org TXT +short   #17
"v=spf1 ip4:64.71.148.0/29 ip6:2001:470:1:3c2::/64 -all"

5

作为对链接问题之一的公认答案明确指出的那样,许多用于UNIX系统的基础工具确实确实实施了此限制(尽管并非完全以相同的方式),因此任何使用它们的SPF实现都几乎是UNIX上的所有实现。 -也将执行这些限制。Windows系统本身就是一条法律,我无法阐明它们。

解决方法是进行一项cron作业,以评估您的外包SPF记录链,并将它们全部表示为ipv4和ipv6网络块,并将其纳入您的记录中。 别忘了-all

在您的情况下,您希望客户能够发布他们不需要维护的SPF记录。一种可能是让每个客户发布包含的记录redirect=spf.client1.jeffs-company.example,然后进行维护工作,以维护位于的网络块列表jeffs-company.example

也许此DNS限制是在2000年设置的,当时委托这样的电子邮件服务并不常见?

该限制确实使您很难将电子邮件外包给六到七个大型操作;但是可以说,如果这样做的话,无论如何,您实际上都会失去对电子邮件的控制权。

有一天,某个地方,一些分包合同的程序员,您完全不知道他的存在,并且您无法控制的程序员会放错分号,一堆冒充的伪造电子邮件将直接发送给您,带有SPF限制。完全控制您的电子邮件需要完全控制您的电子邮件基础结构,而我认为这与这么多外包完全不符。


0

解决这些问题的另一种方法是查看究竟使用哪种软件检查SPF设置。在我的情况下,它是cluebringer / PolicyD,它Mail::SPF::Server最终使用并且接受放宽否则会硬编码的限制的参数。问题在于,线索提示器本身当前不支持放宽这些参数,但是将来可能会改变,而且人们可能可以简单地告诉接收服务提供商有关放宽设置的可能性。

如果他们决定这样做,那当然是无法控制的,但这至少是一次机会。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.