![MX記錄指向自身,可能嗎?](https://rvso.com/image/668033/MX%E8%A8%98%E9%8C%84%E6%8C%87%E5%90%91%E8%87%AA%E8%BA%AB%EF%BC%8C%E5%8F%AF%E8%83%BD%E5%97%8E%EF%BC%9F.png)
假設我有以下活躍的 DNS 網域example.com
(忽略優先順序和 ttl)
example.com A 123.45.67.89
mx.example.com A 123.45.67.89
example.com MX mx.example.com
現在,這是一筆有效的 DNS 記錄。如果我新增以下 mx 記錄,會導致任何問題嗎?
mx.example.com MX mx.example.com
我已經測試過了,它似乎有效,但我想確定一下。
原因是我一直用[電子郵件受保護]發送至未新增最後一條 mx 記錄的電子郵件。但某些服務會失敗,因為它們不使用主域,而是檢查子網域是否存在該 mx 記錄。添加 mx 記錄似乎可以讓服務正常工作,但我現在擔心它可能會導致實際發送/接收電子郵件出現問題。
另外,我已將新mx 記錄的優先級設定為低於原始記錄,因此從理論上講,這應該使其始終選擇第一個記錄,但我很好奇,如果優先級顛倒,它甚至會起作用。
答案1
指向自身的 MX RR 完全有效,不會造成任何問題。不過,它可能被認為是多餘的,因為一般規則是,如果網域沒有 MX RR 但有 A RR,則後者應用於郵件傳遞。換句話說,當不存在顯式 MX RR 時,隱性假定 MX RR 指向其自身。
請注意,您的範例程式碼有語法問題。 FQDN 缺少最後的點,MX RR 缺少優先權欄位。它應該是:
example.com. A 123.45.67.89
mx.example.com. A 123.45.67.89
example.com. MX 10 mx.example.com.
mx.example.com. MX 10 mx.example.com.
或者,等效地:
$ORIGIN example.com.
@ A 123.45.67.89
MX 10 mx
mx A 123.45.67.89
MX 10 mx
($ORIGIN
如果整個指令是域的區域檔案的一部分,則該指令是多餘的example.com
。)
答案2
你似乎把自己搞糊塗了。 DNS MX-RR 格式domain MX pref name
用於表示具有名稱的伺服器name
將是該網域的 MX domain
。
在您的情況下,您是說具有名稱的伺服器mx.example.com
將處理mx.example.com
網域的郵件。這是完全有效的,但在我看來,您想為example.com
.
答案3
我想你問題的核心已經得到解答,但你可能想澄清一些困惑:
- 不存在“優先級較低的第二個 MX 記錄”,MX 記錄優先順序僅限於名稱,範例中的兩個名稱各只有一個 MX,因此優先順序完全沒有後果。 MTA 在 MX 記錄中尋找它試圖傳送到的主機部分,只尋找其他內容(如果 MX 尋找給予零結果記錄,則 A/AAAA 查找除外)。
- 此外,MX 記錄並沒有「指向自身」 - 它只是碰巧包含與其儲存的主機名稱相同的主機名,但該名稱指向 A 和 AAAA 記錄,這與儲存在相同名稱下的 MX 記錄不同。在 DNS 中,您可以在同一名稱下儲存任意數量的不同記錄,並且一個名稱下的一條記錄指向同一名稱下的另一條記錄並沒有什麼問題 - 唯一不好的主意是實際上指向相同的記錄記錄,就像擁有一個包含自己名稱的CNAME 記錄一樣,因為該記錄又會指向同一個CNAME 記錄,等等,無窮無盡。