具有REDIRECT和INCLUDE的SPF记录

时间:2018-06-01 07:03:19

标签: dns record spf

所以我必须为共享域制作一个SPF记录--2个邮件系统,一个是Office 365.通常它看起来像这样:

“v=spf1 mx include:MAIL_SERVER include:spf.protection.outlook.com ~all”

如果事先已经这样配置,那就非常直接了:

“v=spf1 mx include:MAIL_SERVER ~all"

但我有不同的情况,就像这样:

“v=spf1 mx redirect:_spf.PROVIDERSERVER.COM"

我不确定,我可以这样做:

“v=spf1 mx redirect:_spf.PROVIDERSERVER.COM include:spf.protection.outlook.com ~all”

它会像这样工作吗?如果没有,那么应该改变什么?

4 个答案:

答案 0 :(得分:5)

重定向修饰符而不是机制,只会在所有其他机制之后考虑已经过测试。与包含不同,一旦导航重定向,它就不会返回评估更多字词,虽然为了清晰起见您的定位无效,但它应显示为记录中的最后一个术语,因为只有在测试并传递所有其他术语后才会对其进行评估。即它在SPF记录中的位置不会决定其处理顺序。

如果记录中满足任何替代机制术语,则处理将在该术语停止并返回评估条件,这包括可能存在的任何全部机制。因此,您无法将重定向所有结合使用,因为所有机制将始终首先进行测试和满足,并且重定向< / strong>永远不会被处理。当然,重定向域SPF中的任何所有机制仍然适用,如果包含中的 -all 不同将 not-matched 返回到include机制调用将被忽略。 (警告:如果在遍历的包含中遇到 + all ,它将返回匹配的,并触发其中包含的任何结果,通常是默认 + 。)

值得注意的是,任何重定向域的自己的SPF可能包含更多重定向,并且它们会按预期级联。但是,每次重定向都会计入查找次数限制。

总而言之,您可能希望使用类似......

的内容
“v=spf1 mx include:spf.protection.outlook.com redirect:_spf.PROVIDERSERVER.COM”

答案 1 :(得分:1)

我不确定这一点,但这里有一个猜测! The docsredirect完全取代当前记录,所以我希望它忽略所有其他条款 - 但它也会从左到右进行评估,所以也许会进行mx查找首先 - 你可以手动测试。

我不确定你为什么要首先看redirect

我怀疑你可以实现你的目标:

"v=spf1 mx include:_spf.PROVIDERSERVER.COM include:spf.protection.outlook.com ~all"

答案 2 :(得分:1)

据我所知(/了解https://tools.ietf.org/html/rfc7208#page-26),你可以从最后一个例子中做出记录。如果其他所有内容都失败,将使用redirect修饰符,这意味着它将是最后检查的内容。)

请注意,根据同一RFC,redirect修饰符建议位于记录末尾,~all之前。

答案 3 :(得分:0)

为先前的答案提供附加内容。

RFC, section 6.1 on the redirect modifier中显示为:

  

此功能仅供希望申请的组织使用   同一记录到多个域。例如:

 la.example.com. TXT "v=spf1 redirect=_spf.example.com"
 ny.example.com. TXT "v=spf1 redirect=_spf.example.com"
 sf.example.com. TXT "v=spf1 redirect=_spf.example.com"    
_spf.example.com. TXT "v=spf1 mx:example.com -all"
     

在此示例中,来自三个域中任何一个的邮件都由   相同的记录。这可能是管理上的优势。

     

注意:通常,域“ A”不能可靠地使用重定向到   不在同一管理控制下的另一个域“ B”。自
  保持不变,不能保证记录在   域“ B”将正确用于域“ A”中的邮箱,
  尤其是如果域“ B”使用涉及本地部分的机制。安
  通常,“ include”指令会更合适。

而且,redirect修饰符不得与all机制结合使用:

  

为清楚起见,任何“重定向”修饰符都应显示为最后一个
  记录中的字词。如果存在任何“重定向”修饰符,则必须忽略
  是记录中任何位置的“全部”机制。

考虑到所有这些,我建议使用@Synchro提供的语法。尽管不违反规则,但是将机制与redirect修饰符组合在一起是非常不寻常的。