使用 ExpressRoute 私人對等互連規劃災害復原
ExpressRoute 專為「高可用性」而設計,可對 Microsoft 資源建立電訊廠商等級的私人網路連線。 換句話說,Microsoft 網路內的 ExpressRoute 路徑中沒有單一失敗點。 如需將 ExpressRoute 線路可用性最大化的設計列入考量,請參閱使用 ExpressRoute 設計高可用性和 Well-Architectured Framework
不過,如同墨菲定律提到的--凡事只要可能出錯,就一定會出錯,讓我們在將焦點放在本文中除了使用單一 ExpressRoute 線路來解決失敗以外的其他解決方案。 我們將探討網路架構的考量,以使用異地備援 ExpressRoute 線路來建立強大的後端網路連線,以進行災害復原。
注意
在虛擬 WAN 之下或外面建立 ExpressRoute 線路時,本文所述的概念同樣適用。
需要有備援連線解決方案
在某些情況下,ExpressRoute 對等互連位置或整體區域服務是有可能降級的。 這類區域性服務中斷的根本原因包括自然災害。 因此,針對商務持續性和任務關鍵性應用程式規劃災害復原,是很重要的。
注意
如果需要在講求時效的情況下實作災害復原設計,例如在發生自然災害期間維護商務持續性,您應考量下列因素:
- 本文件提供相關指引,說明如何為透過不同對等互連位置設定的多個 ExpressRoute 線路實作健全的災害復原設計。 此案例假設您有足夠的時間和資源可設定 ExpressRoute 線路。
- 如果您需要為非異地備援的單一 ExpressRoute 線路快速設定災害復原設計,可以使用下列替代方案:
- 使用站對站 VPN 作為私人對等互連流量的備援。
- 使用網際網路連線作為 Microsoft 對等互連流量的備援。
無論您是在 Azure 區域中執行任務關鍵性應用程式,還是在內部部署或其他地方執行任務關鍵性應用程式,都可以使用另一個 Azure 區域作為容錯移轉網站。 下列文章說明從應用程式和前端存取角度進行的災害復原:
如果您依賴內部部署網路與 Microsoft 之間的 ExpressRoute 連線能力,您在規劃透過 ExpressRoute 進行災害復原時,必須考量下列事項:
- 使用異地備援 ExpressRoute 線路
- 針對不同的 ExpressRoute 線路使用不同的服務提供者網路
- 設計每個 ExpressRoute 線路以獲得高可用性
- 在客戶網路上的不同位置終止不同的 ExpressRoute 線路
- 使用可用性區域感知 ExpressRoute 虛擬網路閘道
使用多個 ExpressRoute 線路的挑戰
當您使用一個以上的連線來互連同一組網路時,您會在網路之間引進平行路徑。 未正確架構的平行路徑可能會導致非對稱式路由。 如果您在路徑中有具狀態實體 (例如 NAT 或防火牆),非對稱路由可能會封鎖流量。 一般而言,透過 ExpressRoute 私人對等互連路徑,您將不會跨越可設定狀態的實體 (例如 NAT 或防火牆)。 因此,透過 ExpressRoute 私人對等互連的非對稱路由不一定會封鎖流量。
但是,如果您將流量負載平衡到異地備援的平行路徑,無論是否有具狀態實體,都會遇到不一致的網路效能。 這些異地備援的平行路徑可以透過依位置的提供者提頁面上找到的相同或不同的主動叢集來進行。
在相同叢集中搭配 ExpressRoute 線路的備援
許多主動叢集都有兩個 ExpressRoute 位置。 例如阿姆斯特丹和阿姆斯特丹 2。 設計備援時,您可以在相同的主動叢集中,建立兩個位置的 Azure 平行路徑。 您可以使用相同的提供者完成此工作,或選擇使用不同的服務提供者以改善復原。 這種設計的另一個優點是:當應用程式容錯移轉時,您的內部部署應用程式與 Microsoft 之間的端對端延遲可維持不變。 但是,如果有自然災害 (例如地震),這兩個路徑的連線可能都無法再使用。
在不同叢集中搭配 ExpressRoute 線路的備援
針對備援使用不同的主動叢集時,您應該選取相同地理政治區域中的次要位置。 若要選擇地緣政治區域以外的位置,您必須在平行路徑中使用進階版的 SKU 來執行這兩個線路。 這項設定的優點是導致兩個連結中斷的機率較低,但代價是端對端的延遲會增加。
注意
在 ExpressRoute 線路上啟用 BFD,有助於更快速地偵測 Microsoft Enterprise Edge (MSEE) 裝置和客戶/合作夥伴的邊緣路由器之間的連結失敗。 不過,在某些失敗狀況下,對備援網站的整體容錯移轉和聚合最多可能需要 180 秒的時間,而且您在這段時間可能會遇到延遲增加或效能降低的情況。
在本文中,我們將討論如何解決您在設定異地備援路徑時可能面臨的挑戰。
中小型內部部署網路考量
讓我們考慮下圖所示的範例網路。 在此範例中,Contoso 的內部部署位置和 Contoso 在 Azure 區域中的 VNet 之間建立了異地備援 ExpressRoute 連線能力。 在此圖中,藍色實線表示偏好路徑 (透過 ExpressRoute 1),而虛線則代表備用路徑 (透過 ExpressRoute 2)。
根據預設,如果您在所有 ExpressRoute 路徑上公告相同的路由,Azure 就會使用等價多重路徑 (ECMP) 路由,將內部部署繫結流量負載平衡到所有 ExpressRoute 路徑。
不過,有了異地備援的 ExpressRoute 線路,我們必須考慮不同網路路徑的不同網路效能 (特別是網路延遲)。 若要在正常操作期間獲得更一致的網路效能,建議您使用可提供最短延遲的 ExpressRoute 線路。
您可以使用下列其中一種方法 (以有效性順序列出),讓 Azure 使用另一個 ExpressRoute 線路:
- 相較於其他 ExpressRoute 線路,會在偏好 ExpressRoute 線路上公告更明確的路由
- 在連線上設定更高的連線權數,以將虛擬網路連結至慣用的 ExpressRoute 線路
- 以較不慣用的 ExpressRoute 線路 (以 AS 路徑開頭) 來公告路由
更特定的路由
下圖說明如何使用更特定的路由公告來影響 ExpressRoute 路徑選取範圍。 在說明的範例中,Contoso 內部部署/24 IP 範圍會透過慣用的路徑 (ExpressRoute 1) 公告為兩個 /25 個位址範圍;而且會透過備用的路徑 (ExpressRoute 2) 公告為 /24 個位址範圍。
由於相較於 /24,/25 更明確,Azure 會透過 ExpressRoute 1 以正常狀態傳送目的地為 10.1.11.0/24 的流量。 如果 ExpressRoute 1 的兩個連線都停止運作,則 VNet 只會透過 ExpressRoute 2 查看 10.1.11.0/24 路由公告;因此,此失敗狀態會使用待命線路。
連線權數
下列螢幕擷取畫面說明如何透過 Azure 入口網站設定 ExpressRoute 連線的權數。
下圖說明如何使用連線權數來影響 ExpressRoute 路徑選取範圍。 預設連線權數為 0。 在下列範例中,ExpressRoute 1 的連線權數設定為 100。 當 VNet 收到透過多個 ExpressRoute 線路所公告的路由前置詞時,VNet 會優先使用權數最高的連線。
如果 ExpressRoute 1 的兩個連線都停止運作,則 VNet 只會透過 ExpressRoute 2 查看 10.1.11.0/24 路由公告;因此,此失敗狀態會使用待命線路。
AS 路徑首碼
下圖說明如何使用 AS 路徑首碼來影響 ExpressRoute 路徑選取範圍。 在圖表中,透過 ExpressRoute 1 的路由公告表示 eBGP 的預設行為。 在透過 ExpressRoute 2 的路由公告上,內部部署網路的 ASN 會額外在路由的 AS 路徑加上。 當透過多個 ExpressRoute 線路收到相同的路由時,根據 eBGP 路由選取流程,VNet 會偏好使用最短路徑的路由。
如果兩個 ExpressRoute 1 的連線都停止運作,則 VNet 只會看到透過 ExpressRoute 2 的 10.1.11.0/24 路由公告。 因此,較長的路徑會變成不相關。 因此,會在此失敗狀態中使用待命線路。
使用任何一項方法時,如果您讓 Azure 優先使用其中一個 ExpressRoute,也必須確定內部部署網路也偏好使用相同的 ExpressRoute 路徑來進行 Azure 繫結的流量,以避免非對稱流量。 一般而言,本機喜好設定值會用來影響內部部署網路,以優先使用其中一個 ExpressRoute 線路。 本機喜好設定是內部 BGP (iBGP) 度量。 系統會偏好本機喜好設定值最高的 BGP 路由。
重要
使用特定 ExpressRoute 線路備用時,您需要主動管理,並定期測試容錯移轉作業。
大型分散式商業網路
當您有大型的分散式商業網路時,可能會有多個 ExpressRoute 線路。 在本節中,我們將了解如何使用主動-主動 ExpressRoute 線路來設計災害復原,而不需要另使用其他獨立線路。
讓我們考慮下圖所示的範例。 在此範例中,Contoso 在兩個不同的對等互連位置中透過 ExpressRoute 線路,在兩個不同的 Azure 區域中,連線到兩個 Contoso IaaS 部署的兩個內部部署位置。
我們架構災害復原的方式,會影響跨區域到跨位置 (region1/region2 到 location2/location1) 流量的路由方式。 讓我們假設有兩個不同的災害架構會以不同方式路由傳送跨區域位置的流量。
實例 1
在第一個案例中,讓我們設計災害復原,讓 Azure 區域與內部部署網路之間的所有流量,都會流經處於穩定狀態的本機 ExpressRoute 線路。 如果本機 ExpressRoute 線路失敗,則會將遠端 ExpressRoute 線路用於 Azure 和內部部署網路之間的所有流量。
下圖說明案例 1。 在圖表中,綠色線表示 VNet1 和內部部署網路之間流量的路徑。 藍色線表示 VNet2 和內部部署網路之間流量的路徑。 實線表示在穩定狀態中所需的路徑,而虛線表示具有穩定狀態流量的對應 ExpressRoute 線路失敗時的流量路徑。
您可以使用連線權數來設計案例,以對內部部署網路繫結流量的本機對等互連位置 ExpressRoute 影響 VNet。 若要完成此解決方案,您必須確保對稱的反向流量。 您可以在 BGP 路由器之間的 iBGP 工作階段使用本機喜好設定 (在內部部署端) 的 ExpressRoute 線路,以優先使用 ExpressRoute 線路。 下圖提供相關解決方案。
案例 2
下圖說明案例 2。 在圖表中,綠色線表示 VNet1 和內部部署網路之間流量的路徑。 藍色線表示 VNet2 和內部部署網路之間流量的路徑。 在穩定狀態下 (圖表中的實線),VNet 與內部部署位置之間的所有流量一般都會透過 Microsoft 骨幹流動,只有在 ExpressRoute 的失敗狀態下 (圖表中的虛線),才會透過內部部署位置之間的相互連線流動。
下圖提供相關解決方案。 如圖所示,您可以使用更特定的路由 (選項 1) 來設計案例,或使用 AS 首碼路徑 (選項 2),來影響 VNet 路徑選取範圍。 若要對 Azure 繫結流量影響內部部署網路路由選取範圍,您需要設定內部部署位置之間的互相連線。 您可以視需要設定互連連線,取決於內部部署網路內使用的路由通訊協定。 您可以搭配使用 iBGP 或計量與 IGP (OSPF 或 IS-IS) 來使用本機喜好設定。
重要
當一或多個 ExpressRoute 線路連線到多個虛擬網路時,可以透過 ExpressRoute 路由傳送虛擬網路到虛擬網路流量。 不過,不建議這樣做。 若要啟用虛擬網路對虛擬網路連線能力,請設定虛擬網路對等互連。
下一步
在本文中,我們討論了如何設計 ExpressRoute 線路私人對等互連連線的災害復原。 下列文章說明從應用程式和前端存取角度進行的災害復原: