了解 Exchange 2007 SP1 和 SP2 中的 DNS 查詢失敗敏感度

 

適用版本: Exchange Server 2007 SP2, Exchange Server 2007 SP1

上次修改主題的時間: 2009-05-20

本主題說明 Microsoft Exchange Server 2007 Service Pack 1 (SP1) 和 Exchange 2007 Service Pack 2 (SP2) 中引進的 DNS 查詢改進功能。這些改良功能可在搜尋 Exchange 組織外部的目的郵件伺服器時,降低網域名稱系統 (DNS) 錯誤的敏感度。您可以調整 DNS 查詢敏感度,以在目的網域發生 DNS 錯誤時,能讓郵件傳遞速度稍微快一點。不過,視 DNS 錯誤而定,這個調整在某些情況下可能會造成傳遞失敗。

DNS 查詢及遠端郵件傳遞

在一般的 Exchange 2007 組織中,組織訂閱的 Edge Transport Server 會負責將郵件傳遞給外部收件者。這台 Edge Transport Server 會負責接受來自組織中 Hub Transport Server 的外寄郵件。訂閱的 Edge Transport Server 必須能夠找到可為外部收件者接受郵件的目的郵件伺服器。視目的地而定,郵件會放置在一或多個遠端傳遞佇列中,等候傳遞給遠端收件者。如需傳遞佇列的相關資訊,請參閱管理佇列

Edge Transport Server 會查詢設定的外部 DNS 伺服器,以尋找傳遞郵件所需的 DNS 記錄。您可以在 Exchange 管理主控台中傳輸伺服器內容的 [外部 DNS 查閱] 索引標籤中,或是在 Exchange 管理命令介面中使用 Set-TransportServer 指令程式,來設定外部 DNS 伺服器設定。如需相關資訊,請參閱設定 Transport Server 內容

設定來進行外部 DNS 查閱的 DNS 伺服器會依照列出的順序進行查詢。如果其中一部 DNS 伺服器無法使用,查詢就會移至清單上的下一部 DNS 伺服器。會查詢 DNS 伺服器以取得下列資訊:

  • 外部收件者網域部份的郵件交換 (MX) 記錄   MX 記錄包含負責為網域接受郵件之郵件伺服器的網域全名 (FQDN),以及郵件伺服器的喜好設定值。郵件伺服器的喜好設定值愈低表示優先順序愈高。如果網域有多個 MX 記錄,就一定要有喜好設定值。為了最佳化容錯,大多數組織都會使用多部郵件伺服器,以及有不同喜好設定值的多個 MX 記錄。

  • 目的郵件伺服器的位址 (A) 記錄   MX 記錄中使用的每部郵件伺服器都應該有對應的 A 記錄。A 記錄是用來尋找目的郵件伺服器的 IP 位址。訂閱的 Edge Transport Server 會使用該 IP 位址來開啟與目的郵件伺服器的簡易郵件傳送通訊協定 (SMTP) 連線。雖然,技術上可以在 MX 記錄中使用標準名稱 (CNAME) 記錄的 FQDN,但這種作法會違反 RFC 974、RFC 1034、RFC 1912 及 RFC 2181,因此大多數郵件伺服器都不支援。

    必須組合以根 DNS 伺服器開始的反覆 DNS 查詢與遞迴 DNS 查詢,以用來將在 MX 記錄中找到的郵件伺服器 FQDN 解析成 IP 位址。

在 Exchange 2007 中,每部 DNS 伺服器的 DNS 查詢限制為 5 秒 (此限制無法設定),而整個 DNS 查詢的限制則為 1 分鐘。

潛在的 DNS 問題

即使已正確設定 Exchange 傳輸伺服器上的外部 DNS 設定,特定網域的 DNS 記錄或是用來為特定網域尋找授權 DNS 伺服器的任何 DNS 伺服器,還是可能發生問題。一般而言,這些問題都不是您所能掌控。亦無法自行修正這些問題。這些 DNS 相關錯誤可能是由下列一或多個狀況造成:

  • 目的網域的 DNS 記錄無效

  • DNS 伺服器使用率有問題

  • DNS 伺服器複寫有問題

在 Exchange 2007 量產發行 (RTM) 版本中,當特定網域擁有有效的 MX 記錄也有無效的 MX 記錄而這些記錄又具有相同的喜好設定值時,便會發生問題。可以將郵件伺服器的 FQDN 解析為有效的 IP 位址時,便是有效的 MX 記錄。無法將郵件伺服器的 FQDN 解析為有效的 IP 位址時,便是無效的 MX 記錄。在 Exchange 2007 RTM 中,DNS 查詢會在達到 1 分鐘的 DNS 查詢限制時捨棄所有 MX 記錄,而不是使用有效的 MX 記錄並捨棄無效的 MX 記錄。該遠端傳遞佇列是處於重試狀態。在達到設定的郵件重試間隔之前,都不會再次重試傳遞郵件。如需相關資訊,請參閱管理郵件重試、重新提交及到期間隔

修改 Exchange 2007 SP1 和 SP2 中的 DNS 查詢失敗敏感度

在 Exchange 2007 SP1 和 SP2 中,DNS 查詢行為已經改善。當 DNS 查詢導致錯誤發生時,只有在該 DNS 伺服器未對目前查詢傳回錯誤時,才會繼續對下一部 DNS 伺服器進行查詢。

Exchange 2007 SP1 和 SP2 也在 EdgeTransport.exe.config 應用程式組態檔中併入了參數 (稱為 DnsFaultTolerance)。此參數有下列值:

  • Lenient   當 DNS 查詢遇到有效 MX 記錄與無效 MX 記錄的組合時,DNS 查詢會繼續,直到達到一分鐘的 DNS 查詢逾時值。無效的 MX 記錄會被捨棄。而使用喜好設定值最低的有效 MX 記錄,來將郵件傳遞到目的郵件伺服器。

  • Normal   當 DNS 查詢先遇到無效的 MX 記錄時,喜好設定值大於或等於無效 MX 記錄的任何已解析 MX 記錄都會立即遭到捨棄。會使用喜好設定值最低的其餘 MX 記錄,來將郵件傳遞到目的郵件伺服器,而不需要等到整個 DNS 查詢逾時。雖然此行為可能會讓郵件傳遞速度變快,但如果下列狀況為真,DNS 查詢可能會沒有任何有效的 MX 記錄,則是這個行為可能會有的缺點:

    • 無效的 MX 記錄是目的網域的第一個 MX 記錄。

    • 有效的 MX 記錄與無效的 MX 記錄有相同的喜好設定值。

在 Exchange 2007 SP1 和 SP2 中,Hub Transport Server 或 Edge Transport Server 上 DnsFaultTolerance 參數的預設值為 Lenient

Normal 模式與 Lenient 模式中,絕不會快取無效 MX 記錄的 DNS 查詢結果。下次執行 DNS 查詢時,將會嘗試為目的網域解析 MX 記錄。

EdgeTransport.exe.config 應用程式組態檔是位在 C:\Program Files\Microsoft\Exchange Server\Bin 目錄中。EdgeTransport.exe.config 檔案是與 EdgeTransport.exe 檔案關聯的 XML 應用程式組態檔。EdgeTransport.exe 和 MSExchangeTransport.exe 是 Microsoft Exchange Transport 服務所使用的可執行檔。每個 Hub Transport Server 或 Edge Transport Server 上都會執行這個服務。重新啟動 Microsoft Exchange Transport 服務之後,儲存至 EdgeTransport.exe.config 檔案的變更就會生效。如果符合下列任一條件,則會強制使用預設值:

  • 組態選項遺失。

  • 組態選項存在,並含有預設值。

下列範例顯示 EdgeTransport.exe.config 檔案的一般結構:

<configuration>

<runtime>

<gcServer enabled="true" />

</runtime>

<appSettings>

<add key=" 組態選項 " value=" " />

...

</appSettings>

</configuration>

您可以在 <appSettings> 區段加入新的組態選項或修改現有的組態選項。

EdgeTransport.exe.config 應用程式組態檔的變更會在重新啟動 Microsoft Exchange Transport 服務後生效。