MX記錄
此條目可參照英語維基百科相應條目來擴充。 |
郵件交換記錄 (MX record)是域名系統(DNS)中的一種資源記錄類型,用於指定負責處理發往收件人域名的郵件服務器。MX記錄允許設置一個優先級,當多個郵件服務器可用時,會根據該值決定投遞郵件的服務器。簡單郵件傳輸協議(SMTP)會根據MX記錄的值來決定郵件的路由過程。
概述
資源記錄是域名系統(DNS)的基本信息單元,它們由「記錄類型」(例如A,MX,NS等)和「DNS類」(例如Internet,CHAOS等)來加以區分。每條記錄都擁有一個有效期(TTL,time-to-live),每當這個時間耗盡後,它們所包含的信息必須從一個權威的名稱服務器上進行更新。DNS中的資源記錄是按照名稱字段組織的,即DNS樹中一個節點的完整網域名稱 (FQDN)。而對於MX記錄而言,這就是收件人的電子郵件地址的域名部分,即@後面的部分。也就是說,對於[email protected]這個電子郵件地址,example.com會用做MX記錄的查詢。
MX記錄中的資訊必需為「完整網域名稱」和「優先序值」。而其網域名稱必須能夠對應到一個或者多個DNS中類型為A或者AAAA的地址記錄, 且根據RFC2181,原則上禁止指向CNAME記錄。此外,MX記錄不能直接設定為A或AAAA記錄來對應IP位址,這是DNS管理者常見的錯誤。[1]
當通過互聯網發送電子郵件時,發送方的郵件傳輸代理(MTA,Mail transfer agent)將會向DNS發送請求,查詢每個收件人的郵箱域名的MX記錄。這個請求將會返回可以接受發往該郵箱域名的郵件交換服務器的列表,以及它們的優先級。接下來,發送方的傳輸代理將會嘗試和這些服務器建立SMTP連接。
MX記錄的機制允許為一個郵件域名配置多個服務器,並且允許管理員通過優先級指定嘗試連接他們的先後順序。這對於配置由多個郵件服務器構成的高可用性集群是非常有用的。
MX記錄的機制無法改變郵件服務使用的端口號,也無法以不同優先級為權重來將郵件分發給不同的郵件服務器。但是,可以通過指定相同的優先級來將郵件等可能性地分發給多個郵件服務器。[2]
MX的偏好,距離和優先次序
根據RFC 5321, 越小的數字代表越高的優先次序[3]。這個字眼可能會令人困惑,所以「偏好數字」應該被視為「距離」為佳:更短的距離為更可取。早前的RFC(RFC 974)指出,當兩個服務器的首選號碼相同時,它們具有相同的「優先次序」,因此這兩個術語可以互換使用的。
備份MX
一個「目標伺服器」,即是通常是最優選的一個知道如何發送給相關用戶電子郵箱的伺服器。其他較低優先次序(數字較大的)的服務器,又名為「備份MX」或「次要MX」,通常將訊息保存並等待主服務器可用的時候再提取。 如果兩台服務器都在線或以某種方式相互連接,則備份MX通常只會短暫性地存放訊息,並立即將其轉發至主MX的伺服器上。備份MX多數只為充當存儲和轉發的郵件服務器。
優先次序
郵件會傳遞到以最小優先編號(最高優先級)的郵件交換伺服器,因此用於郵件傳遞的MX記錄應該具有最小的優先編號,通常為0。 例如使用0作為郵件路徑記錄,並使用10作為驗證您擁有您的域名。MX優先次序決定服務器應該被聯絡的順序(假設有多個服務器並具有不同的優先次序):最優先的服務器(以及最小優先編號)將首先被嘗試聯絡。基本上在DNS記錄中都會顯示其優先編號,但有時也會錯誤地標記為「優先」。
關於MX優先次序的一個常見的誤解是,它旨在增加郵件傳遞的可能性,但只有具備相同首選優先次序的MX伺服器才能提供此優勢,因為MX優先次序規定某些服務器應該首先被嘗試聯絡。 MX優先次序的另一個常見誤解是,為伺服器負荷過量情況下的「故障轉移」方法。雖然也可以這樣使用,但這是一種不好的資源管理技術,因為它故意造成過載,並沒有充分利用可用的硬件。只要為所有的伺服器分配相同的優先次序也一樣可以做的到,甚至可以幫助避免負荷過量情況,從而減少延遲來提高系統速度。
SMTP協議建立一個存儲轉發網絡,如果某個網域的所有郵件伺服器都處於離線狀態時,那麼發送郵件伺服器將會對發送往該網域的郵件進行排隊,以便稍後重試。但是,這些伺服器無法得知該網域早前離線伺服器的線上狀況。發送郵件伺服器只有在下次嘗試再傳送時才會發現該域是可用的。發送郵件伺服器的發送時間與最終抵達目的地伺服器之間的延遲時間可能由幾分鐘到幾天之間不等,這取決於發送服務器的重試排程。這才是唯一利用備用MX的解決辦法。這個方法就是利用次要MX伺服器外帶數據的方法得知主伺服器恢復上線的時間。因此,當主服務器離線時,訊息將會發送比在發送伺服器排列重新嘗試發送時有更好的地方。
以下列出一些不能或者不應該把備用的伺服器設為同等的優先次序的原因:
- 備用伺服器的擁有人不同於主伺服器
- 備用伺服器不能直接存取到主要郵件位置
- 備用伺服器不能分辨有效的收件人地址
- 備用伺服器的流量成本較高
- 備用伺服器有明顯的頻寬速度問題
- 備用伺服器的頻寬有高延遲的問題