使用重定向和包含进行 SPF 记录

问题描述 投票:0回答:4

所以我必须为共享域创建 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”

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

dns record spf
4个回答
13
投票

重定向是一个修改器而不是机制,只有在测试了所有其他机制之后才会考虑。与 include 不同,一旦导航了 redirect,它就不会返回来评估进一步的术语,尽管为了清楚起见,您的定位不是无效的,但它应该显示为记录中的最后一个术语,因为它只会在之后进行评估所有其他条款均已测试并通过。即它在 SPF 记录中的位置不会决定其处理顺序。

如果记录中满足任何替代机制术语,则处理将在该术语处停止并返回评估的条件,这包括可能存在的任何“所有”机制。因此,您不能将redirectall结合使用,因为all机制将始终首先被测试并满足,并且redirect永远不会被处理。当然,重定向域的 SPF 中的任何 all 机制在达到时仍然适用,这与 include 中的 -all 不同,后者会通过将 not-matched 返回到包含机制调用而被忽略。 (警告:如果在遍历的 include 中遇到 +all ,它将返回 matched,并触发该 include 前面的任何结果,通常是默认的 + 。) 值得注意的是,任何重定向域自己的 SPF 可能包含进一步的重定向,并且它们会按预期级联。然而,每个

重定向

都计入查找计数限制。 所以总而言之,你会想要使用类似...

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



3
投票
文档

redirect完全替换了当前记录,所以我希望它忽略所有其他子句 - 但它也从左到右进行评估,所以也许它会首先进行

mx
查找 - 你可以测试手动操作。

我不知道你为什么要看

redirect


我怀疑你可以通过以下方式实现你的目标:

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



2
投票

来自

RFC,关于重定向修饰符的第 6.1 节

内容如下:

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

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

修饰符结合起来是非常不寻常的。

    


-1
投票
https://www.rfc-editor.org/rfc/rfc7208#page-26

)你可以从上一个例子中进行记录。如果其他一切都失败,则将使用 redirect 修饰符,这意味着它将是最后检查的事情)。

请注意,根据同一个 RFC,建议将 

redirect

修饰符放在记录末尾、

~all
之前。
    

© www.soinside.com 2019 - 2024. All rights reserved.