在包含的(次要)SPF 记录中,“-all”起什么作用?

在包含的(次要)SPF 记录中,“-all”起什么作用?

在 SPF 记录中,该-all选项的意思是“我只将在此处明确列出的机器/域列入白名单,并且没有其他服务器可以为该域发送电子邮件。”

include:那么,当一个人在 SPF 记录中使用选项来包含第二个 SPF 记录时,这意味着什么?次要的SPF 记录有-all什么作用?

答案1

包含机制将触发对包含记录的递归评估。如果此评估失败(例如,包含记录中的 -all),则包含机制的结果将被视为“不匹配”。因此,实际上,包含的 SPF 记录中的 -all 机制(或任何其他带有 - 限定符的机制)对主记录的评估没有任何影响。

有关包含机制如何影响主记录评估的完整概述,请参阅 RFC 7208 第 5.2 节中的表格(https://www.rfc-editor.org/rfc/rfc7208#section-5.2

答案2

要通过 SPF 检查,发送 IP 地址必须通过至少一种机制。包含机制使用包含的 SPF 记录测试传入 IP 地址并“返回”结果。

使用你的例子:

a.example.com    IN TXT "v=spf1 include:b.example.com +all"
b.example.com    IN TXT "v=spf1 -all"

被包含的记录将返回失败,因为它只包含一个-all机制。但是,第一条记录将通过,因为它有一个+all机制。

使用更详细的例子:

a.example.com            IN TXT "v=spf1 ip4:1.2.3.4 mx include:spf.example.org -all"
a.example.com            IN MX  0 mailserver.example.com
mailserver.example.com   IN A   1.2.3.5
spf.example.org          IN TXT "v=spf1 ip4:4.3.0.0/16 -all"

我将按照记录中指定的顺序写下每个机制的结果。因此,结果的格式如下:

  • a.example.com:[ip4] [mx] [include] [-all]
  • spf.example.org:[ip4] [-all]

使用以下发件人地址:

1.2.3.4

  • spf.example.org->fail fail
  • a.example.com ->pass fail fail fail

最终结果将是pass,因为至少有一项检查通过

1.2.3.5

  • spf.example.org->fail fail
  • a.example.com ->fail pass fail fail

最终结果将是pass,因为至少有一项检查通过

4.3.10.20

  • spf.example.org->pass fail
  • a.example.com ->fail fail pass fail

最终结果将是pass,因为至少有一项检查通过

总结:包含机制将单独评估,并将结果传回包含它的记录的评估。如果没有匹配的机制,则记录评估失败。由于您以 结尾的示例+all,它将始终匹配并因此通过。

答案3

在处理完所有包含内容后,对-all末尾的进行解释。

其目的是传达如何处理未通过列出的资源发送的电子邮件。

-all意味着将它们视为伪造品而予以丢弃,而~all意味着它们可能仍然合法,应以更多的怀疑态度对待。

相关内容