示例 DNS 记录:
Type: TXT
Hostname: example.com
Value: returns v=spf1 a ~all
Type: A
Hostname: mail.example.com
Value: 1.1.1.1
Type: AAAA
Hostname: mail.example.com
Value: 1000:1:1:1:1:1:0001
Type: MX
Hostname: example.com
Value: mail.example.com
在上面的示例中,SPF 记录使用该a
机制。如果我正确理解 SPF,这意味着邮件服务器将允许来自当前域的邮件通过。在这种情况下example.com
。
但是,如果我使用mx
了邮件服务器,那么来自任何域的邮件都会MX
在该服务器上有记录。
因此,对于这样的基本设置a
并mx
获得相同的结果。
我理解正确吗?
不,您对 spf 记录的解释是错误的。
a
并不意味着“完整的域”,而是“任何 a- 类型的域记录”。在您给定的示例中,仅接受来自唯一给定记录“mail.example.com”的邮件。如果还有其他条目,例如:
然后来自 example.com(主机,而不是域)、www.example.com 和 www2.example.com 的邮件也将被接受,而
v=spf1 mx
只允许来自 mail.example.com 的邮件作为唯一的 mx 记录。答案到此结束,但我认为——从你的另一个问题来看——你可能需要一些 DNS 基础知识才能真正理解发生了什么。
互联网(以及每个专用网络)甚至不需要一个主机名即可正常工作。它所需要的只是找到其中每个节点的地址。不幸的是,人类不喜欢像 172.217.23.163 或 10101100110110010001011110100011 这样的数字,因为它们很难记住。这(一个原因)为什么我们给数字命名,例如 www.google.de(是的,数字代表分配给该主机名的一个 ip)。
计算机不知道如何处理名称,它们需要地址。这就是 DNS 的用途:将人名转换为网络可以使用的地址。
a 记录是翻译表中的一个条目。它将名称 (mail.example.com) 分配给地址 (1.1.1.1)。
此外,这里还有其他具有特殊功能的条目:如果我想知道,我可以在哪里发送 [email protected] 的所有邮件,然后我检查域 example.com 的 mx 类型条目(@- 符号后面的所有内容) . 我找到了一个可以直接告诉我发送到哪里的条目:
或者它告诉我要查找的名称:
您可能已经看到,第二个地址将我们引向何处:这不是一个有效的地址……我们需要在 a- 记录中查找它才能解决它。
这可能也从另一条评论中回答了您的问题:为什么主机名“example.com”:因为这就是我们要寻找的:example.com 的 mx 条目。如果是
Hostname: mail.example.com
这样,我们将查找子域 mail.example.com 的邮件交换器(所有邮件地址,如 [email protected]),这可能完全不同......