分类:
2005-10-20 11:21:17
定 NS 的時候還是儘量使用 FQDN 為好。
接下來的 ‘ MX ’ 記錄恐怕要花些時間解析﹕
MX 記錄
MX 是‘Mail eXchange’的意思﹐它指定了負責該記錄項(可以為 domain 也可以是 host )的郵件伺服器名稱(最好使用 FQDN )﹐而且該名稱必須是一個 A 記錄(不建議使用 CNAME )。
在郵件系統中﹐只要郵件伺服器雙方都知道對方的 IP 就可以進行郵件交換了。我們用 /etc/hosts 也可以做到名稱查詢的目的﹐但正如我們可以想像的﹕ineternet 有那麼多郵件伺服器﹐我們不可能一一為它們建立好 IP 對應。就算﹐我們可以這樣做﹐如果對方要更換郵件伺服器呢﹖要維護這樣一個對應殊非易事。既然﹐我們可以用 DNS 來查詢主機和 IP﹐為什麼不使用這麼便利的系統呢﹖這也是 DNS 系統的應用原因啊~~~ 但問題是﹐各區域的郵件伺服器名稱都不一樣﹐我們不可能知道對方的郵件伺服器主機名稱是什麼﹖就算知道﹐如果對方以後更換名稱呢﹖
您看﹐即使我們使用了 DNS 系統來進行郵件路由﹐也不是這麼簡單的事情。但是﹐使用 MX 記錄就大大發揮了 DNS 系統的功能了﹕我們只要為每一個區域建立起 MX 記錄﹐利用 DNS 查詢得到的郵件伺服器名稱(郵件路由查詢中﹐DNS 只是其中一種方法)﹐這樣﹐當郵件伺服器要和對方的區域進行郵件傳遞的時候﹐就可以通過 MX 記錄得到對方的郵件伺服器名稱﹐而不需預先知道要和哪台郵件主機溝通。在日後﹐就算對方更換名稱﹐將 DNS 記錄改改就可以﹐完全無需知會其它郵件主機﹔而外面的郵件伺服器也根本無需認知到這個改變。
這樣的設計﹐無疑是非常靈活便利的﹗另外﹐使用 MX 還有一個功能﹕您可以用多個 MX 同時指定好幾台郵件伺服器名稱﹐從而提供備援或平行處理服務。在我這個例子中﹐我就分別為‘siyongc.domain’這個區域指定了兩個 MX 記錄﹕‘rh71.siyongc.domain.’和‘lp64.dmz.domain.’。但您有沒有發現它們前面都有一個數字呢﹖這數字有什麼作用 啊﹖
問得好﹗當外面的郵件伺服器通過 DNS 查詢到我們的郵件伺服器﹐如果發現超過一台主機負責郵件交換的話﹐數值越低的就越先被查詢。但有時候該主機沒有回應呢﹖那麼就由下一個數值的主機負責了。 這樣有一個好處就是﹕就算第一台郵件伺服器出現故障﹐也不至於導致郵件交換功能癱瘓掉。我們通常會將各自的 MX 主機儘量分佈在不同的位置上(例如別的城市或國家的分公司主機)﹐假如萬一發生專線﹑甚至 ISP 的問題﹐我們還能將郵件轉往下一台 MX 主機。然而﹐在設計上﹐由於帳號和 client 端的設定因素﹐我們的郵件並非真的完全轉到下一個 MX 主機接收﹐而是先將郵件暫時佇列( queue ) 在那台機器上﹐當原來的 MX 主機恢復連線之後﹐郵件會自動的從佇列主機那邊送回來﹐這樣就能避免郵件丟失或被退信。
Tips﹕雖然﹐我們通常喜歡用‘10’﹑‘20’﹑‘30’.... 這樣的偏好值( preference ) 來分配 MX 記錄﹐但只要您喜歡﹐用‘1’﹑‘2’﹑‘3’... 這樣的順序一樣可以。不過﹐我建議您還是使用慣例啦。
現在很多大型郵件系統﹐都可以同時使用多台郵件主機來提供郵件交換服務﹐這時候您可以將 MX 的 preference 設為相同﹐然後利用 NIS 和 NFS 服務﹐將郵件同步到相同的帳號去。您已經在前面的章節裡面學會了 NIS 和 NFS﹐等日後學習郵件主機架設的時候﹐不妨玩玩看﹗
或許﹐您還發現我這裡為所有主機指定了 MX 記錄﹐有些直接指向自己(如 rh71﹑mdk 等)﹐而有些則指向別的機器(如
lp64﹑acer 等)。在 Linux 機器上面﹐各主機本身就具備郵件交換功能(除非您將之移除了)﹐而 Windows
則除非額外加裝﹐否則本身是沒有郵件交換功能的。這裡的設定是﹐從外面通過 DNS 查詢而寄往那些主機的郵件﹐都會轉到 MX
上面指定的郵件伺服器。這在實際的網路環境中很常見﹐尤其您接觸過“ mail hub ”這個概念。無論如何﹐我建議您應該幫負責 domain
的郵件伺服器本身設定一個偏好值最低的 MX 記錄指向自己(但這不是硬性必須如此的)。
Tips﹕事實上﹐我當初對 MX 的理解一直存在著錯誤﹐直到有一次在新聞組上和大家討論﹐才糾正過來。如果您對這個故事感興趣的話﹐或是想更進一步了解 MX 的實際咦髟?愆o請參考 << Sendmail 與 MX >> 一文。
在過去﹐有些人並不知道如何正確的哂