Email-Server

對於 SPF 記錄,‘a’ 和 ‘mx’ 在很多情況下會達到相同的結果嗎?

  • May 5, 2020

範例 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在該伺服器上有記錄。

因此,對於這樣的基本設置amx獲得相同的結果。

我理解正確嗎?

不,您對 spf 記錄的解釋是錯誤的。 a並不意味著“完整的域”,而是“任何 a- 類型的域記錄”。在您給定的範例中,僅接受來自唯一給定記錄“mail.example.com”的郵件。

如果還有其他條目,例如:

類型:A

主機名:example.com

值:1.1.1.2

類型:A

主機名:www.example.com

值:1.1.1.3

類型:A

主機名:www2.example.com

值:1.1.1.4

然後來自 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)。

此外,這裡還有其他具有特殊功能的條目:如果我想知道,我可以在哪裡發送 something@example.com 的所有郵件,然後我檢查域 example.com 的 mx 類型條目(@- 符號後面的所有內容) . 我找到了一個可以直接告訴我發送到哪裡的條目:

類型:MX

主機名:example.com

值:1.1.1.1

或者它告訴我要查找的名稱:

類型:MX

主機名:example.com

值:mail.example.com

您可能已經看到,第二個地址將我們引向何處:這不是一個有效的地址……我們需要在 a- 記錄中查找它才能解決它。

這可能也從另一條評論中回答了您的問題:為什麼主機名“example.com”:因為這就是我們要尋找的:example.com 的 mx 條目。如果是Hostname: mail.example.com這樣,我們將查找子域 mail.example.com 的郵件交換器(所有郵件地址,如 someaddress@mail.example.com),這可能完全不同……

引用自:https://serverfault.com/questions/1015657