本頁使用了標題或全文手工轉換

MX記錄

維基百科,自由的百科全書
跳至導覽 跳至搜尋

郵件交換記錄 (MX record)是域名系統(DNS)中的一種資源記錄類型,用於指定負責處理發往收件人域名的郵件伺服器。MX記錄允許設定一個優先次序,當多個郵件伺服器可用時,會根據該值決定投遞郵件的伺服器。簡單郵件傳輸協定(SMTP)會根據MX記錄的值來決定郵件的路由過程。

概述[編輯]

資源記錄是域名系統(DNS)的基本資訊單元,它們由「記錄類型」(例如A,MX,NS等)和「DNS類」(例如Internet,CHAOS等)來加以區分。每條記錄都擁有一個有效期(TTL,time-to-live),每當這個時間耗盡後,它們所包含的資訊必須從一個權威的名稱伺服器上進行更新。DNS中的資源記錄是按照名稱欄位組織的,即DNS樹中一個節點的完整網域名稱 (FQDN)。而對於MX記錄而言,這就是收件人的電子郵件位址的域名部分,即@後面的部分。也就是說,對於someone@example.com這個電子郵件位址,example.com會用做MX記錄的查詢。

MX記錄中的資訊包括完整網域名稱和優先次序。其中網域名稱必須能夠對映到一個或者多個DNS中類型為A或者AAAA的位址記錄, 且根據RFC2181,原則上禁止指向CNAME記錄.[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伺服器外帶數據的方法得知主伺服器恢復上線的時間。因此,當主伺服器離線時,訊息將會發送比在發送伺服器排列重新嘗試發送時有更好的地方。

以下列出一些不能或者不應該把備用的伺服器設為同等的優先次序的原因:

  • 備用伺服器的擁有人不同於主伺服器
  • 備用伺服器不能直接存取到主要郵件位置
  • 備用伺服器不能分辨有效的收件人位址
  • 備用伺服器的流量成本較高
  • 備用伺服器有明顯的頻寬速度問題
  • 備用伺服器的頻寬有高延遲的問題

參考資料[編輯]

  1. ^ RFC 2181, Section 10.3, Clarifications to the DNS Specification, R. Elz, R. Bush (July 1997)
  2. ^ HOWTO - Configure Round Robin and Load Balancing, Page modified: February 28 2014., zytrax.com
  3. ^ RFC 5321