中樞和輪輻拓撲是 Azure 中的常見網路架構模式,可合併網路資源並集中網路服務。 此拓撲可為跨不同訂用帳戶或租用戶部署的虛擬網路提供網路連線和安全性。
您可以透過兩種方式實作中樞和輪輻架構:
- 自我管理中心與輻射式架構 (傳統):您可以保持對中樞虛擬網路和路由設定的完全控制。
- 虛擬 WAN:Microsoft 管理中樞虛擬網路,並透過 路由意圖和路由原則等功能簡化管理。
本文著重於自我管理的中樞和輪輻拓撲,您可以在其中完整地查看和控制中樞虛擬網路和 Azure 防火牆部署。
您可以使用 Azure Virtual Network Manager (AVNM) 來減少自我管理中樞和輪輻實作的管理額外負荷。 AVNM 可以自動化 Azure 路由表的設定,但與手動方法相比,整體設計和技術不會變更。 無論您是使用 AVNM 還是手動設定自我管理的中樞和輪輻拓撲,本文的內容都適用。
輪輻虛擬網路中 Azure 路由表的替代方案是使用 Azure 路由伺服器將路由插入子網路,如 輪輻虛擬網路中的預設路由插入中所述。 不過,由於 Azure 路由伺服器與 VPN 或 ExpressRoute 虛擬網路閘道之間的互動可能會產生複雜性,因此不常使用此模式。
在自我管理的「中樞和支點」(hub-and-spoke) 設定中:
- 中樞 (Hub):一個虛擬網路,透過 VPN、ExpressRoute 或軟體定義的廣域網路 (SD-WAN) 作為連接您的內部部署網路的中央連接點。 防火牆等網路安全性裝置會部署在中樞虛擬網路中。
- 支點 (Spoke):與中樞對等互連並託管您的工作負載的虛擬網路。
對於分散在多個區域的工作負載,您通常會為每個區域部署一個中樞,以彙總來自該區域中輪輻的流量。 下圖顯示兩個區域自我管理的中樞和輪輻架構,每個區域都有兩個輪輻虛擬網路:
單一區域中樞和輪輻架構
若要瞭解多區域設計,您首先需要瞭解單一區域概念。 下圖顯示第一個區域的路由表組態:
請考慮單一區域設計中每個潛在流量的路由需求,以瞭解使用者定義的路由組態:
-
支點對支點流量 (Spoke-to-spoke traffic):支點不會彼此對等互連,而虛擬網路對等互連不具有傳遞性。 每個輪輻預設都知道如何路由到達中樞虛擬網路,但不知道如何路由到達其他輪輻。 套用至所有支點子網路的
0.0.0.0/0路由涵蓋了支點對支點的流量傳輸。 -
支點到網際網路流量:
0.0.0.0/0支點路由表中的路由也涵蓋傳送至公用網際網路的流量。 依預設,此路由會覆寫公用子網路中包含的系統路由。 如需詳細資訊,請參閱 Azure 中的預設輸出存取。 -
因特網到分站流量:從因特網到分站的流量通常會先通過 Azure 防火牆。 Azure 防火牆已設定目的地網路位址轉譯 (DNAT) 規則,這也會轉譯來源 IP 位址 (來源網路位址轉譯或 SNAT)。 支點工作負載會將流量視為來自 Azure 防火牆子網路。 虛擬網路對等互連會建立到中樞 (
10.1.0.0/24) 的系統路由,因此支點知道如何路由回傳的流量。 -
內部部署對支點 (On-premises-to-spoke) 與支點對內部部署 (spoke-to-on-premises) 的流量:需要分別考慮每個方向:
-
內部部署至分支流量:流量從內部部署網路抵達 VPN 或 ExpressRoute 閘道。 使用 Azure 中的預設路由時,會在 Gateway 子網及中樞虛擬網路中的其他子網中為每個連接點建立系統路由。 您必須覆寫這些系統路由,並將下一個躍點設定為 Azure 防火牆的私人 IP 位址。 在此範例中,您需要在與閘道子網路相關聯的路由表中設定兩條路由,每個支點 (
10.1.1.0/24和10.1.2.0/24) 各有一條。 使用包含所有支點虛擬網路的匯總 (例如10.1.0.0/16) 無法運作,因為閘道子網路中的虛擬網路對等互連注入的系統路由更具體 (/24相較於/16匯總)。 此路由表必須啟用傳播閘道路由切換開關 (設定為是),否則閘道路由可能會變成無法預測。 -
支點對內部部署流量:中樞與支點之間的虛擬網路對等互連必須在中樞端啟用允許閘道傳輸,並在支點端啟用使用遠端閘道。 這些設定是必要的,以便 VPN 和 ExpressRoute 閘道能夠透過邊界閘道通訊協定 (BGP) 將支點首碼通告到內部部署網路。 這些設定也會讓支點在預設情況下學到從內部部署通告到 Azure 的首碼。 由於內部部署的前綴比支點路由表中的使用者定義路由
0.0.0.0/0更具體,從支點到內部部署的流量預設會繞過防火牆。 若要防止這種情況,請在支點路由表中將傳播閘道路由切換開關設定為否,這樣就不會學到內部部署首碼,且0.0.0.0/0路由會用於到內部部署的流量。
-
內部部署至分支流量:流量從內部部署網路抵達 VPN 或 ExpressRoute 閘道。 使用 Azure 中的預設路由時,會在 Gateway 子網及中樞虛擬網路中的其他子網中為每個連接點建立系統路由。 您必須覆寫這些系統路由,並將下一個躍點設定為 Azure 防火牆的私人 IP 位址。 在此範例中,您需要在與閘道子網路相關聯的路由表中設定兩條路由,每個支點 (
附註
在與閘道子網路相關聯的路由表中,請使用確切的支點虛擬網路 IP 首碼,而不是網路匯總。 由與各個支點的虛擬網路對等互連所引入的系統路由會覆寫您的使用者定義路由,因為它們更具體。
您可以使用 Azure Virtual Network Manager 管理與輪輻子網相關聯的路由表,以及與閘道子網相關聯的路由表,以減少系統管理額外負荷。 如需詳細資訊,請參閱 使用 Azure 防火牆作為下一個躍點。
中樞虛擬網路工作負載
如果您在中樞虛擬網路中部署工作負載 (例如 Active Directory 網域控制站、DNS 伺服器或其他共用基礎結構) ,這會增加中樞和輪輻設計的複雜性。 建議您避免將工作負載放置在中樞虛擬網路 (Hub) 中,而是將其部署在專用的支點虛擬網路 (Spoke) 中,以提供共用服務。
本節說明中樞工作負載所需的組態,以便您可以評估此複雜度是否符合您的需求。 我們還描述了一個可能導致非對稱流量和資料包丟棄的常見錯誤。
下圖顯示中樞虛擬網路中具有工作負載子網路的單一區域設計:
關鍵細節在於,閘道子網路和支點子網路中設定的使用者定義路由是針對特定工作負載子網路定義的,而不是針對整個中樞虛擬網路首碼定義的:
-
閘道子網設定:在閘道子網中設定整個中樞虛擬網路的路由 (
10.1.0.0/24在此範例中) 會覆寫中樞虛擬網路的系統路由。 這會導致 VPN 或 ExpressRoute 閘道之間的子網內控制流量傳送至防火牆,可能會中斷閘道作業。 -
支點子網路組態:在各支點子網路中為整個中樞虛擬網路 (本例為
10.1.0.0/24) 設定路由會覆寫與中樞虛擬網路的對等互連所建立的系統路由。 傳送至中樞的所有流量都會傳送至 Azure 防火牆,包括來自 Azure 防火牆本身的流量,例如透過來源網路位址轉譯 (SNAT) 的因特網對支點流量。 此配置引入了非對稱流量並導致資料包丟棄。
附註
如果您在中樞虛擬網路中部署工作負載,請勿在使用者定義的路由中使用整個虛擬網路 IP 前置詞。
子網路間流量檢查
在目前的設定中,輪輻之間的流量會傳送至防火牆,但輪輻內流量會保留在輪輻虛擬網路內,並使用 網路安全性群組進行控制。 此設計會將虛擬網路視為安全性界限:防火牆只會檢查離開或進入虛擬網路的流量。
若要檢查相同樞紐虛擬網路中的子網段之間的流量,請修改與這些樞紐子網段相關聯的路由表,如下圖所示:
在上圖中,每個輪輻虛擬網路中都引進了兩個輪輻子網,並描述了虛擬網路 A2 中各個輪輻的路由表。 將子網路間流量傳送至防火牆需要每個子網路都有個別的路由表,因為每個子網路中要安裝的路由都不同。
對於子網路 A21,您需要以下兩個額外路由:
-
路由至
10.1.2.0/24:會覆寫虛擬網路內部流量的系統路由。 如果沒有其他路由,所有虛擬網路內流量都會傳送至 Azure 防火牆,即使是相同子網路中虛擬機器之間的流量。 -
將路由傳送至
10.1.2.0/26,下一個躍點為虛擬網路:這是對先前路由的一個例外,因此此特定子網路內的流量不會傳遞到防火牆,而是在虛擬網路內本地進行路由。 此路由特定於每個子網路,這就是為什麼您需要為每個子網路提供個別的路由表。
SD-WAN 網路虛擬設備
如果您使用 SD-WAN 網路虛擬設備 (NVA) 而不是 VPN 或 ExpressRoute 閘道,設計會類似,如下圖所示:
有不同的方式可以在 Azure 中整合 SD-WAN NVA。 如需詳細資訊,請參閱 SD-WAN 與 Azure 中樞和輪輻網路拓撲的整合。 本文示範使用 Azure 路由伺服器進行整合,這是將流量路由傳送至 SD-WAN 網路的最常見方法之一。 SD-WAN NVA 透過 BGP 將內部部署的網路前綴公告至 Azure 路由伺服器。 Azure 路由伺服器會在 Azure 防火牆子網路中插入這些前置詞,讓 Azure 防火牆具有內部部署網路的路由資訊。 由於支點路由表中停用了「傳播閘道路由」選項,因此支點無法學到內部部署首碼。
如果您不想在與 NVA 子網路相關聯的路由表中設定每個支點虛擬網路的首碼,您可以將 SD-WAN NVA 放在其專用的虛擬網路中。 NVA 虛擬網路不會學到支點的首碼,因為它們沒有直接建立對等連線;如下圖所示,可以使用匯總路由:
多區域中樞和輪輻架構
瞭解流量在單一中樞和輪輻區域內的運作方式之後,將設計延伸至多區域架構非常簡單。 下圖顯示更新的網路設計,其中樞位於兩個區域 (A 和 B):
設定的唯一新增內容是與每個區域中 Azure 防火牆子網路相關聯的路由表。 每個中樞虛擬網路只知道直接對等互連虛擬網路的首碼,因此沒有遠端支點首碼的路由。 為每個 Azure 防火牆子網路新增使用者定義的路由,以便將每個區域的流量路由傳送至對應的 Azure 防火牆。
在此範例中,每個區域都可以輕鬆總結:
- 區域 A 包含
10.1.0.0/16中的首碼 - 區域 B 包含前綴字元於
10.2.0.0/16
在每個區域中定義易於摘要的 IP 位址,可讓您的路由組態更簡單。 否則,您需要為每個遠端支點建立一個路由。
在 Azure 防火牆子網路路由表上啟用傳播閘道路由,以便防火牆可以從 VPN 和 ExpressRoute 閘道學到內部部署路由。
附註
如果部署 Azure 防火牆時沒有管理 NIC,則 Azure 防火牆子網需要具有下一個躍點「網際網路」的預設路由,才能新增先前所述的更特定路由。
若要簡化多區域環境中使用者定義路由的管理,您可以使用 Azure Virtual Network Manager。 如需詳細資訊,請參閱 使用 AVNM 管理跨多個中心輻射拓撲的使用者定義路由。
後續步驟
- 深入了解如何部署和設定 Azure 防火牆。