Exchange Server中的郵件路由
Exchange 組織中信箱伺服器上存在的傳輸服務的主要工作是將接收自使用者和外部來源的郵件路由傳送至其最終目的地。 路由決策是在郵件分類期間完成的。 分類器是傳輸服務的元件,可處理所有傳入訊息,並根據其目的地的相關資訊來判斷該如何處理訊息。
Exchange 2016 和 Exchange 2019 中的路由與 Exchange 2013 幾乎保持不變。 相較于 Exchange 2010,以下是值得注意的路由變更:
路由會完全感知資料庫可用性群組 (DAG) ,並且能夠在路由決策中使用 DAG 成員資格,即使 DAG 成員位於不同的 Active Directory 月臺也一樣。 對於不屬於 DAG 的信箱伺服器,以及為了與舊版 Exchange 的互通性,Active Directory 網站成員資格仍會用於路由決策。
傳輸服務永遠不會直接與信箱資料庫通訊。 相反地,傳輸服務會在本機或遠端信箱伺服器上與信箱傳輸服務通訊。 只有信箱傳輸服務會與本機信箱資料庫通訊。 當信箱伺服器是 DAG 的成員時,只有信箱伺服器上保存信箱資料庫作用中複本的信箱傳輸服務會接受目的地收件者的郵件。
遠端程序呼叫 (RPC) 僅供信箱傳輸服務用來傳送訊息至本機信箱資料庫或接收來自本機信箱資料庫的郵件。 當信箱伺服器為 DAG 成員時,信箱傳輸服務僅會使用 RPC 與本機中的該信箱資料庫的主動副本進行通訊。 換句話說,RPC 永遠不會用於跨伺服器或跨服務通訊。 相反地,信箱傳輸服務和傳輸服務一律會使用 SMTP 進行通訊。
Exchange 現在會針對遠端目的地使用更精確的佇列。 Exchange 現在會將 Active Directory 網站內特定目的地的訊息排入佇列,例如個別的傳送連接器,而不是針對遠端 Active Directory 月臺中的所有目的地使用一個佇列。
連結的連接器已無法再使用。 連結的連接器是連結到傳送連接器的接收連接器。 所有由接收連接器接收的郵件已自動轉送至傳送連接器。
路由元件
當信箱伺服器上的傳輸服務收到郵件時,必須將該郵件分類。 郵件分類的第一個階段是解析收件者。 完成解析收件者之後,便可以決定最終目的地。 下一個階段為路由傳送,需決定到達目的地的最佳途徑。 Exchange 中的路由一般化,可藉由使用 路由目的地 和 傳遞群組的概念,提高彈性並降低複雜度。
路由目的地
訊息的最終目的地稱為 路由目的地。 不論 Exchange 組織的複雜度為何,路由目的地非常少。 這些是:
信箱資料庫:這是 Exchange 組織中具有信箱之任何收件者的路由目的地。 在 Exchange 2013 或更新版本中,公用資料夾是一種信箱類型,因此將郵件路由傳送至公用資料夾收件者,與將郵件路由傳送至信箱收件者相同。
連接器:傳送連接器會根據傳送連接器 (位址空間、限定範圍等設定,作為 SMTP 訊息的路由目的地。) 。 同樣地,傳遞代理程式連接器或外部連接器會作為非 SMTP 訊息的路由目的地。
通訊群組擴充伺服器:當通訊群組有指定的擴充伺服器 (負責展開群組成員資格清單的伺服器) 時,這是路由目的地。 通訊群組擴充伺服器是 Exchange 2013 或更新版本的信箱伺服器或 Exchange 2010 中樞傳輸伺服器。
請注意,這些路由目的地存在於舊版 Exchange 中,但它們不稱為路由目的地。
傳遞群組
一或多部傳輸伺服器的集合負責將郵件傳遞至每個路由目的地。 這個傳輸伺服器集合稱為 傳遞群組。 之所以使用 「傳輸伺服器 」一詞,是因為伺服器可以混合使用 Exchange 2013 或更新版本的信箱伺服器, (傳輸服務) 或 Exchange 2010 中樞傳輸伺服器。 下表說明路由目的地與傳遞群組之間的關聯性:
路由目的地 | 傳遞群組 |
---|---|
Exchange 2013 或更新版本的信箱資料庫 | Exchange 2013 或更新版本的信箱伺服器。 |
Exchange 2016 組織中的 Exchange 2010 信箱資料庫 | 只有 Exchange 2010 Hub Transport Server。 |
連接器 | Exchange 2013 或更新版本信箱伺服器或 Exchange 2010 Hub Transport Server。 |
通訊群組擴充伺服器 | Exchange 2013 或更新版本信箱伺服器或 Exchange 2010 Hub Transport Server。 |
訊息的路由方式取決於來源傳遞群組與目的地傳遞群組之間的關聯性:
如果來源和目的地傳遞群組相同,則不需要路由決策。 路由目的地是訊息的下一個躍點。
如果來源傳遞群組不在目的地傳遞群組之外,則需要路由決策。 訊息會沿著成本最低的路由路徑轉送至目的地傳遞群組。 根據 Exchange 環境的大小和複雜度,訊息可能會透過許多傳輸伺服器轉送,以連線到目的地傳遞群組以傳遞至路由目的地。
下表摘要說明 Exchange 2016 中存在的不同傳遞群組類型。
傳遞群組類型 | 傳遞群組 | 路由目的地 | 註解 |
---|---|---|---|
可路由的 DAG |
|
DAG 中的信箱資料庫 | 當郵件抵達 DAG 中的信箱伺服器之後,傳輸服務會將訊息路由傳送至 DAG 成員上的信箱傳輸傳遞服務,該成員會保存目的地信箱資料庫的作用中複本。 信箱傳輸傳遞服務接著會將訊息傳遞至本機信箱資料庫。 雖然 DAG 可能包含位於不同 Active Directory 網站的信箱伺服器,但 DAG 會定義傳遞群組,而不是 Active Directory 網站。 |
Exchange 2013 或更新版本 (信箱傳遞群組) | Active Directory 網站中的 Exchange 2013 或更新版本信箱伺服器。 | Active Directory 網站中不屬於 DAG 之 Exchange 2013 或更新版本伺服器上的信箱資料庫。 | 位於不屬於 DAG 之伺服器上的信箱資料庫是由相同 Active Directory 月臺中信箱伺服器上的傳輸服務所服務。 當郵件抵達 Active Directory 網站的信箱伺服器之後,傳輸服務會使用 SMTP 將郵件傳送到信箱伺服器上保存信箱資料庫的信箱傳輸傳遞服務。 信箱傳輸傳遞服務接著會使用 RPC 將訊息傳遞至本機信箱資料庫。 換句話說,不同版本的 Exchange 之間支援下列郵件傳遞路徑:
|
Exchange 2010 (信箱傳遞群組) | Active Directory 網站中的 Exchange 2010 Hub Transport Server。 | Active Directory 網站中 Exchange 2010 信箱伺服器上的信箱資料庫。 | 位於 Exchange 2010 信箱伺服器上的信箱資料庫是由相同 Active Directory 月臺中的 Exchange 2010 中樞傳輸伺服器提供服務。 p > 在訊息抵達 Active Directory 網站中的隨機 Exchange 2010 Hub Transport Server 之後,中樞傳輸伺服器上的存放區驅動程式會使用 RPC 將訊息寫入信箱資料庫。 |
連接器來源伺服器 | 混合任何 Exchange 2013 或更新版本的信箱伺服器,或定義為連接器來源傳輸伺服器的 Exchange 2010 中樞傳輸伺服器。 | 傳送連接器、傳遞代理程式連接器或外部連接器。 | 如果連接器的範圍 (即限制為相同 Active Directory 月臺) 中的傳輸伺服器,則只有該月臺中的其他傳輸伺服器知道連接器,而且可以使用連接器來路由傳送郵件。 如果連接器未設定範圍,則整個 Active Directory 樹系中的所有傳輸伺服器都會知道連接器,而且可以使用連接器來路由傳送郵件。 |
伺服器清單 | Exchange 2013 或更新版本的信箱伺服器或 Exchange 2010 Hub Transport Server,定義為通訊群組的擴充伺服器。 | 通訊群組擴充伺服器。 | 無 |
AD 站台 | 存在於下列任何混合的 Exchange 2013 或更新版本信箱伺服器或 Exchange 2010 中樞傳輸伺服器:
|
無。 訊息必須經由 Active Directory 網站傳送至實際路由目的地。 | 此傳遞群組類型是 Exchange 2013 或更新版本中唯一仍然使用 延遲傳送傳送的 路由案例。 當多個路由目的地共用成本最低路由路徑的一部分時,延遲的展開傳送嘗試會減少訊息傳輸數目。 只有當 Active Directory 網站沿著訊息成本最低的路由路徑存在時,才會使用中樞網站。 br/ > 針對 Edge Transport Server,不論該伺服器是否參與 EdgeSync 同步處理,已訂閱 Active Directory 月臺中任何信箱伺服器上的傳輸服務都能夠將訊息傳送至 Edge Transport Server。 如需詳細資訊,請參閱 Edge Transport Server。 |
注意事項
傳遞群組成員資格不會相互排斥。 例如,屬於 DAG 成員的信箱伺服器也可以是傳送連接器的來源傳輸伺服器。 信箱伺服器屬於 DAG 中信箱資料庫的可路由 DAG 傳遞群組,以及傳送連接器的連接器來源伺服器傳遞群組。
佇列
從傳送傳輸伺服器的觀點來看,每個訊息傳遞佇列都代表特定訊息的目的地。 當傳輸服務選取郵件的目的地時,目的地會在收件者上加上戳記為 NextHopSolutionKey 屬性。 如果將單一訊息傳送給多個收件者,則每個收件者都有 NextHopSolutionKey 屬性。 接收傳輸伺服器也會執行訊息分類,並將訊息排入佇列以進行傳遞。 郵件放入佇列之後,您可以檢查特定佇列的傳遞類型,以判斷郵件是否會在抵達下一個躍點目的地時再次進行轉送。 NextHopSolutionKey屬性的每個唯一值都會對應至個別的訊息傳遞佇列。
如需詳細資訊,請參閱 NextHopSolutionKey。
路由傳送郵件
當必須將一封郵件傳遞至遠端傳遞群組時,必須替該郵件決定一條路由路徑。 Exchange 會使用以下邏輯,選擇一封郵件的路由路徑。 此還輯基本上和 Exchange 2010 沒有差異:
加總必須周遊才能到達目的地之 IP 站台連結的成本,來計算最低成本路由路徑。 如果目的地是連接器,指派給位址空間的成本也要加總至到達所選取連接器的成本中。 如果可行的路由路徑有數條,則會使用彙總成本最低的路由路徑。
注意:連接器的大小限制是這裡的一個因素。 設定訊息大小限制小於訊息大小的連接器會從考慮中排除。 如需詳細資訊,請參閱 外部訊息路由中的連接器選取專案。
如果有多條路由路徑的彙總成本相同,則會評估每個路徑中的躍點數量,然後使用躍點數量最少的路由路徑。
如果仍有多條路由路徑可用,就會考量在目的地之前的 Active Directory 站台所獲指派的名稱。 Active Directory 站台最接近目的地且英數字元順序最低的路由路徑會獲得採用。 如果對於受評估的所有路由路徑而言,最接近目的地的站台是相同的,則會考慮使用字元順序較優先的站台名稱。
在 Exchange 2010 中,每個郵件收件者只會與一個 Active Directory 網站相關聯,而且只有一個成本最低的路由從來源 Active Directory 網站到目的地網站。 在 Exchange 2013 或更新版本中,傳遞群組可能會跨越多個 Active Directory 網站,而且這些網站可能會有多個成本最低的路由路徑。 Exchange 會將目的地傳遞群組中的單一 Active Directory 月臺指定為 主要月臺。 根據前述的路由邏輯,主要站台是最接近的 Active Directory 站台。 若要成功在傳遞群組之間路由傳送訊息,Exchange 會將下列問題納入考慮:
沿著成本最低的路由路徑存在一或多個中樞月臺:如果主要月臺的最低成本路由路徑包含任何中樞月臺,則必須透過中樞網站路由傳送訊息。 已選擇最低成本路由路徑上最接近的中樞站台作為類型 AD site 的新傳遞群組,這包含該中樞站台內所有的傳輸伺服器。 在郵件周遊中樞站台之後,會繼續沿著最低成本路由路徑路由傳送郵件。 如果主要站台正好為中樞站台,基於以下原因仍會視該主要站台為中樞站台:
如果目的地傳遞群組跨越多個 Active Directory 站台,則來源伺服器應該只會嘗試與該中樞站台內的伺服器建立連線。
偏好在中樞網站中屬於目標傳遞群組的伺服器。
如同舊版 Exchange,不在主要月臺成本最低路由路徑中的中樞月臺會被忽略。
要在目的地路由群組中選取的目標 Exchange 伺服器:當目的地傳遞群組跨越多個 Active Directory 網站時,傳遞群組內特定伺服器的路由路徑可能會有不同的成本。 根據最低成本路由路徑,位於最接近的 Active Directory 站台中的伺服器會被選為該傳遞群組的目標伺服器,而那些伺服器所在的 Active Directory 站台會被選為主要站台。
目的地路由群組中所有伺服器的連線嘗試失敗時的後援選項:如果目的地傳遞群組跨越多個 Active Directory 月臺,則第一個後援選項是其他 Active Directory 月臺中未選取為目標伺服器之目的地傳遞群組中的所有其他伺服器。 伺服器選取是以其他 Active Directory 月臺的最低成本路由路徑為基礎。 如果目的地傳遞群組有任何一台伺服器位於本機 Active Directory 站台內,由於郵件已非常接近目標路由目的地,因此不會有其他的後援選項。 如果目的地傳遞群組有伺服器位於遠端 Active Directory 站台內,選項則為嘗試與該主要站台內的所有其他伺服器建立連線。
在 Acitve Directory 站台之間路由傳送郵件
Exchange 在 Active Directory 網站之間路由傳送訊息的方式,幾乎與 Exchange 2010 相同。 如需詳細資訊,請參閱在 Acitve Directory 站台之間路由傳送郵件。
信箱伺服器上前端傳輸服務中的路由
前端傳輸服務可作為所有輸入和 (的無狀態 Proxy,並選擇性地) Exchange 組織的輸出外部 SMTP 流量。 對於傳出訊息,只有在特別設定為這麼做時,傳輸服務才會與前端傳輸服務通訊。 如需詳細資訊,請參閱 Configure Send connectors to proxy outbound mail。
針對傳入訊息,前端傳輸服務必須快速找到單一狀況良好的傳輸服務,才能接收訊息傳輸,不論收件者的數量或類型為何。 若未這麼做,會導致傳送伺服器將電子郵件服務視為無法使用。 如同傳輸服務,前端傳輸服務會根據來自 Active Directory 的資訊載入路由表,並使用傳遞群組來判定路由傳送郵件的方法。 不過,前端傳輸服務所使用的路由表具有以下的獨特特性:
前端傳輸服務永遠不會被視為傳遞群組的成員,即使信箱伺服器和用戶端存取伺服器安裝在相同的實體伺服器上 (在 Exchange 2016 或更新版本) 中一律是這種情況。 這會強制前端傳輸服務只與傳輸服務通訊。
路由表不含任何傳送連接器路線。
路由表包含一份本機 Active Directory 站台中信箱伺服器的特殊清單,其目的在於快速進行容錯轉移。
在前端傳輸服務中進行路由傳送能夠解析信箱資料庫的郵件收件者。 前端傳輸服務所使用的信箱伺服器清單是根據郵件收件者的信箱資料庫而建立的。 請注意,有可能會發生沒有任何收件者擁有信箱的情況,例如,如果收件者是通訊群組或郵件使用者。 前端傳輸服務會針對每一個信箱資料庫查詢傳遞群組和相關路由資訊。 前端傳輸服務所使用的傳遞群組為:
可路由的 DAG
信箱傳遞群組
AD 站台
根據收件者的數量和類型,前端傳輸服務會執行下列其中一個操作:
針對寄給單一信箱收件者的郵件,請在目標傳遞群組中選取信箱伺服器,然後根據 Active Directory 站台的距離設定信箱伺服器的優先順序。 將訊息路由傳送至收件者可能牽涉到透過中樞網站路由傳送訊息。
針對寄給多個信箱收件者的郵件,請根據 Active Directory 站台的距離,使用前 20 個收件者來選取最近傳遞群組中的信箱伺服器。 請注意,前端傳輸中不會發生郵件混淆,因此,不論郵件中的收件者數目為何,最終只會選取一部信箱伺服器。
如果該郵件未含信箱收件者,在本機 Active Directory 站台中任選一台信箱伺服器。
Mailbox Server 的信箱傳輸服務中的路由
信箱傳輸服務是由兩個不同的服務所組成:信箱傳輸提交服務和信箱傳輸傳遞服務。 信箱傳輸傳遞服務會從傳輸服務接收 SMTP 訊息,並使用 RPC 來傳遞訊息,以連線到本機信箱資料庫。 信箱傳輸提交服務會使用 RPC 來擷取訊息,並透過 SMTP 將訊息提交至傳輸服務,以連線到本機信箱資料庫。 信箱傳輸服務是無狀態的,而且不會使用郵件傳遞佇列。
如同傳輸服務,信箱傳輸服務會根據來自 Active Directory 的資訊載入路由表,並使用傳遞群組來判定路由傳送郵件的方法。 不過,信箱傳輸服務具有獨特的路由問題:
因為傳輸服務和信箱傳輸服務存在於相同的信箱伺服器上,所以信箱傳輸服務一律屬於與信箱伺服器相同的傳遞群組。 此傳遞群組稱為 本機傳遞群組。
信箱信箱傳輸提交服務不會自動將郵件傳送至所屬的本機傳遞群組中之本機信箱伺服器上或其他信箱伺服器上的傳輸服務。 信箱傳輸提交服務和傳輸服務一樣有權存取相同的路由拓撲資訊,因此,信箱傳輸提交服務可將郵件傳送至傳遞群組外部信箱伺服器上的傳輸服務。 本機傳遞群組中的信箱伺服器是作為後援選項及傳遞至非信箱收件者之用途。
信箱傳輸服務只會與信箱伺服器上的傳輸服務通訊。
信箱傳輸服務只會與本機信箱資料庫通訊。 信箱傳輸服務決不會與其他信箱伺服器上的信箱資料庫進行通訊。
當使用者從他們的信箱傳送郵件時,信箱傳輸提交服務會解析信箱資料庫的郵件收件者。 信箱傳輸提交服務所使用的信箱伺服器清單是根據郵件收件者的信箱資料庫而建立的。 請注意,有可能會發生沒有任何收件者擁有信箱的情況,例如,如果收件者是通訊群組或郵件使用者。 信箱傳輸提交服務會針對每一個信箱資料庫查詢傳遞群組和相關路由資訊。 信箱傳輸提交服務所使用的傳遞群組為:
可路由的 DAG
信箱傳遞群組
AD 站台
根據收件者的數量和類型,信箱傳輸提交服務會執行下列其中一個操作:
針對寄給單一信箱收件者的郵件,請在目標傳遞群組中選取信箱伺服器,然後根據 Active Directory 站台的距離設定信箱伺服器的優先順序。 將訊息路由傳送至收件者可能牽涉到透過中樞網站路由傳送訊息。
針對寄給多個信箱收件者的郵件,請根據 Active Directory 站台的距離,使用前 20 個收件者來選取最近傳遞群組中的信箱伺服器。
如果該郵件未含信箱收件者,在本機傳遞群組中選擇一台信箱伺服器。
當信箱傳輸傳遞服務從傳輸服務接收郵件時,它可以接受或拒絕將郵件傳送到本機信箱資料庫。 如果收件者位於本機信箱資料庫主動副本中,則信箱傳輸傳遞服務可以傳遞該郵件。 但是,如果收件者位於本機信箱資料庫的主動副本中,郵件傳輸傳遞服務就無法傳遞該郵件,且必須提供一個未傳遞回應至傳輸服務。 舉例來說,如果該信箱資料庫的主動副本最近已移至另一台伺服器,則傳輸服務有可能會將郵件誤傳至一台目前保有該信箱資料庫之非作用副本的郵件伺服器。 信箱傳輸傳遞服務回傳至傳輸服務的未傳遞回應包括:
重試傳遞
產生 NDR (也稱為非傳遞報告、傳遞狀態通知、DSN 或退回的訊息)
重新路由傳送此郵件
Edge Transport Server 的傳輸服務中的路由
Edge Transport Server 上的傳輸服務為所有網際網路郵件流程提供 SMTP 轉送和智慧主機服務。 來自網際網路的訊息會儲存在 Edge Transport Server 上的訊息傳遞佇列中。 佇列會對應至外部網域或傳送連接器。 如需詳細資訊,請參閱 NextHopSolutionKey。
通常,當您在周邊網路中安裝 Edge Transport Server 時,即會將 Edge Transport Server 訂閱至 Active Directory 站台。 Active Directory 網站包含信箱伺服器,可在 Edge Transport Server 中來回轉送訊息。 Edge 訂閱程序會建立 Edge Transport Server 的 Active Directory 站台成員資格聯盟。 網站服務可讓 Active Directory 網站中的信箱伺服器將訊息轉送至 Edge Transport Server,而不需要設定明確的傳送連接器。
在多個 Active Directory 網站中有 Exchange 伺服器的組織中,從內部收件者到外部收件者的輸出郵件會先路由傳送至已訂閱的 Active Directory 網站。 目標 Active Directory 月臺中的傳輸伺服器是傳遞群組。 路由目的地是傳輸服務中的組織內傳送連接器,而傳輸服務位於已記閱 Active Directory 站台的任何 Mailbox Server 上。 組織 內部傳送連接器 是特殊的傳送連接器,存在於每個信箱伺服器上的傳輸服務中。 此傳送連接器是以隱含方式建立、不可見、不需要管理,以及用來在 Exchange 伺服器之間轉送郵件。
如需如何將郵件路由傳送至 Edge Transport Server 和從 Edge Transport Server 傳送的詳細資訊,請參閱 郵件流程和傳輸管線。