Azure 虛擬網絡與子網

Azure 虛擬網路(VNets)與子網是每個 Azure 網路的基礎建構組件。 本文說明 VNet 如何提供隔離、子網路如何組織資源,以及如何為生產工作負載規劃與結構化網路。

本文涵蓋的內容

本文涵蓋 VNet 隔離邊界、子網大小與保留位址、Azure 防火牆 與應用閘道等服務專用平台子網、VNet 對等,以及常見的網路佈局模式。

誰需要這篇文章

如果你符合以下情況,請閱讀這篇文章:

  • 如果您正要將第一個工作負載部署到 Azure,並且需要在建立資源之前了解網路如何運作。
  • 正在規劃一個多工作負載環境,需要決定要建立多少 VNet 和子網路。
  • 正在將本地工作負載遷移到 Azure,需要了解 Azure 網路與實體網路的差異。
  • 需要為 Azure 平台服務(例如 Azure 防火牆、VPN 閘道 或 Azure Kubernetes Service(AKS))正確設定子網路大小。
  • 想了解什麼時候該把工作負載拆分成不同的 VNet,什麼時候應該保持在同一個 VNet。

以隨即轉移為重點:在 Azure 中比照內部部署的子網路分段。 將現有的 VLAN 和安全區域對應到子網,保持位址空間與團隊已運作的範圍一致,並慷慨地調整子網大小,避免遷移時重新定址。

現代化焦點: 設計圍繞平台服務與自動化的子網路。 為 AKS、私有端點及專用平台服務提供適尺寸子網路,並規劃 Azure Virtual Network Manager 以在多個 VNet 間套用一致的設定。

跨雲焦點:在建立任何 VNet 之前,先規劃 Azure、AWS 和 Google Cloud 之間的不重疊位址空間。 保留不會與現有 VPC 衝突的 CIDR 範圍,這樣你可以在沒有 NAT 的情況下與雲端進行對等或 VPN 連線。

Azure 服務與功能

以下服務與功能構成了 Azure 虛擬網路基礎:

服務或特色 它所提供的是什麼 何時使用它
Azure 虛擬網路 (VNet) 一個獨立的 Azure 私有網路。 所有 Azure 網路的運作都從這裡開始。 同一 VNet 中的資源預設可以通訊;不同 VNet 中的資源無法溝通,除非你明確連結它們。 永遠如此:每個需要網路連線的工作負載都需要 VNet。
Subnet VNet 位址空間的分割。 子網是網路安全群組(NSG)與路由表關聯的範圍。 始終:依功能或安全邊界將工作負載元件組織成子網。
VNet 對等互連 同一區域內的兩個 VNet 之間,或跨區域的低延遲、私密連線。 流量則保留在 Microsoft 骨幹網路上。 對等互連不是傳遞性;每個對等互連都是直接連結。 當不同 VNet 的資源需要通訊時, 關於跨區域對等連線,請參見 跨區域連接
子網路對等互連 (預覽版) 特定子網路之間的對等互連,而非整個 VNet。 可精細控制哪些子網路參與對等互連關係。 當您需要在不同 VNet 中特定子網路之間進行細緻的對等互連控制時, 請參見 約束 部分。
路由表 / 使用者定義路由(UDR) 在 Azure 中覆寫系統預設路由,以控制流量傳送方向。 應用於子網層級。 當你需要強制讓流量通過防火牆或網路虛擬設備(NVA)時, 中樞和輪輻 egress 控制的必要項。 請參閱 Azure 防火牆 設計Hub-and-spoke 拓撲
Azure Virtual Network Manager (AVNM) 集中建立、管理並將網路設定套用至跨多個訂用帳戶的 VNet。 當管理多個訂用中的多個 VNet 時。 參見 集中式網路管理

顯示 VNet 的圖表,其中包含適用於 Web、應用程式和資料層的工作負載子網路,以及適用於閘道、防火牆和 Bastion 的專用平台子網路

如何選擇

什麼是虛擬網路?

虛擬網路(VNet)是 Azure 中由軟體定義的隔離網路。 可以把它想像成你在 Azure 中的私有網路。 與使用線纜、交換器和路由器的實體網路不同,VNet 完全由軟體定義。 你建立它,指派一個位址空間,然後部署資源進去。

主要特性:

  • Region-scoped:VNet 存在於單一 Azure 區域。 該 VNet 中的所有資源必須位於同一區域。 VNet 確實跨越該區域內的可用區域。
  • 預設隔離:一個 VNet 中的資源無法與另一個 VNet 的資源通訊,除非你明確建立連線(對等或 VPN)。
  • 預設內部連線:同一 VNet 內的資源可透過 Azure 提供的系統路由預設彼此通訊。

什麼是子網?

子網是你 VNet 內的 IP 位址範圍。 子網路可讓您:

  • 依照工作負載元件(例如網頁層級、應用層級、資料層級)來區隔網路。
  • 套用安全規則: NSG 會附加在子網路層級以過濾流量。
  • 控制路由: 路由表附在子網層級以導引流量。

Azure 在每個子網路中保留五個 IP 位址:前四個和最後一個。 例如,在一個 /24 子網路(256 個位址)中,只有 251 個可用。 將此預訂納入你的尺寸計算中。

範例:三層應用

一個典型的三層網頁應用程式會使用三個子網路來區隔關注點並套用不同的安全規則:

Subnet CIDR 範圍 Purpose 範例資源
web-subnet 10.0.1.0/24 前端網頁伺服器,接受來自網際網路或應用閘道的 HTTP/HTTPS 入站流量 Azure App Service 環境、執行 NGINX 的虛擬機器擴展集
app-subnet 10.0.2.0/24 中階應用邏輯。 只接受來自網頁子網的流量。 Azure Functions(整合至虛擬網路)、執行商業邏輯的虛擬機器
data-subnet 10.0.3.0/24 資料儲存。 只接受來自應用程式子網的流量。 無法直接上網。 Azure SQL 受控執行個體、Azure SQL Database 或 Cosmos DB 的私人端點

這種配置允許你對每個子網路套用 NSG,限制流量只限該層級所需的流量。 Web 子網允許傳入的 HTTPS 連線(埠 443)。 應用程式子網只允許來自網頁子網 IP 範圍的入站流量。 資料子網只允許來自應用程式子網 IP 範圍的入站流量。

對於以 AKS 為基礎的現代化模式,在部署 Azure CNI Overlay 時,你可能會針對叢集節點集區使用 aks-nodes 子網路,例如 10.0.4.0/24。 在該模型中,只有節點會使用子網中的 VNet IP 位址。 Pod 使用獨立的重疊 CIDR,讓您能將節點子網路規模維持得小於平坦網路 AKS 設計。

常見模式

以下子網路佈局涵蓋最常見的 Azure 部署情境:

樣式 子網路 何時使用
簡單網頁應用程式 web + data 兩層應用程式,包含前端和資料庫。 複雜度極低。
三層企業 web + app + data + management 傳統企業工作負載分為不同層級,並有用於管理的跳板機或堡壘子網路。
AKS 與共用服務 aks-nodes + aks-ingress + appgw + shared 具有專用 Ingress 控制器子網路和用於 WAF 的 Application Gateway 的 Kubernetes 工作負載。
中樞與輪幅 egress AzureFirewallSubnet + GatewaySubnet + AzureBastionSubnet + management hub VNet 採用中樞與輪幅拓撲。 使用輪幅 VNet 的共用服務會透過此處路由流量。 參見 樞紐輻射拓撲
資料工作負載 compute + data + private-endpoints + management 分析與資料平台工作負載中,儲存與資料庫的私有端點需要自己的子網以促進 IP 規劃的清晰度。

有多少個 VNet 和子網?

指導原則很直接: 每個應用程式使用一個虛擬網路每個元件 (層級)使用一個子網。 這種預設設定讓每個工作負載保持隔離,讓層級間的流量容易透過網路安全群組控制,並留有擴展空間。 再根據共用服務、隔離需求和規模進行調整。

請使用此決策表來決定您的 VNet 及子網策略:

您的情況 建議方法
單一工作負載、單一團隊,無需共享服務 一個 VNet,每個應用程式元件(網頁、應用邏輯、資料)都有子網。 參見 單工作負載拓撲
多個獨立的工作負載共用一個閘道器或防火牆 用於共用服務的中樞 VNet + 每個工作負載各有一個輪幅 VNet。 參見 樞紐輻射拓撲
工作負載間嚴格隔離(爆炸半徑、合規要求) 每個工作負載只能用一個 VNet,且兩者之間沒有對等連接。
具有多個訂閱和區域的大規模環境 Azure Virtual WAN 與自動化中樞管理。 參見 Virtual WAN 拓撲

專用子網路規模參考

許多 Azure 平台服務需要有專屬的子網路,並有特定名稱和最小大小。 下圖顯示專用平台子網的命名要求與最小大小:

顯示五個專用平台子網(包括閘道器、防火牆、Bastion 及路由伺服器)最小子網大小的示意圖

規劃地址空間時請使用此表:

Azure 服務 最小子網大小 所需子網路名稱 Notes
Azure 防火牆 /26(59 個可用 IP) AzureFirewallSubnet 所有防火牆 SKU 都必須使用。 請參閱 Azure 防火牆 設計
VPN 閘道 /27(27個可用IP) GatewaySubnet Microsoft 建議 /27 或更大來擴展餘量。
Azure Bastion /26(59 個可用 IP) AzureBastionSubnet 適用於 2021 年 11 月之後建立的所有部署,最小值為 /26。
應用程式閘道 v2 /24推薦(251 個可用 IP) 無需指定姓名 強烈推薦 /24 來配合自動擴展。 最小值依公式計算 (執行個體數量 + 5 個保留位址 + 1 個私人前端 IP 位址)。
App Service 環境 /24 (生產)、/23 (最大比例) 無需指定姓名 擴展會消耗子網的 IP。 如果你打算擴展到接近 200 個實例的最大值,可以用 /23。
Azure 路由伺服器 /26(59 個可用 IP) RouteServerSubnet 這是與 NVA 進行 BGP 路由交換所必需的。
Azure DNS 私人解析器 每個端點子網路最少 /28 專用入站和出站子網路 需要為進站端點和出站端點設置不同的子網。 無法與其他資源共用。
AKS (Azure Kubernetes 服務) 公式型(依賴 CNI) 無需指定姓名 請參考 AKS 尺寸指南

Note

私有端點會消耗現有子網的 IP 位址。 它們不需要專用子網路。 將這些 IP 位址耗用量納入子網路大小規劃的考量。 詳細的 IP 規劃請參見 IP 位址規劃

AKS 子網大小

AKS 子網大小取決於你選擇的容器網路介面(CNI)外掛。 沒有單一的最小尺寸:

  • Azure CNI Overlay:子網只需要容納節點,因為 Pod 使用獨立的私有 CIDR(無類別網域間路由)區塊。 與扁平網路相比,明顯較小的子網是可以接受的。
  • Azure CNI(扁平網路):子網必須同時容納節點和 Pod。 公式: (nodes + surge) × (max_pods + 1)。 對於擁有 50 個或以上節點的叢集,通常會使用 /21 或更大。
  • Kubenet:只有節點會使用 VNet 子網 IP。 Pod 會獲得叢集內部的 IP 位址。

關於每個 CNI 選項的大小公式,請參見 AKS 叢集的 IP 位址規劃

子網路對等互連限制

子網路對等互連是指特定子網路在 VNet 間連接,而非整個位址空間。 此方法可精細控制哪些子網會參與對等互連。

Important

子網路對等互連目前處於預覽版,並有以下限制:

  • 需要訂閱加入核准名單(非自助註冊)
  • CLI、ARM 範本、Terraform 或僅 PowerShell(不支援入口網站)
  • 若要用於正式環境,必須使用 Intel 型 V5 SKU (或 AMD Genoa/Cobalt 100 型 SKU),以避免舊一代 SKU 上的已知錯誤:目前的硬體需求請參閱 設定子網對等互連
  • 每個對等互連連結的每一端最多可有 200 個子網路
  • 每個 VNet 的所有對等互連連結合計最多可有 1,000 個子網路
  • 子網必須屬於唯一且不重疊的位址空間

如需了解目前的限制與註冊程序,請參見 設定子網路對等互連

Note

Azure Virtual Network Manager (AVNM) 無法區分子網路對等互連與虛擬網路對等互連。 如果你使用 AVNM 來管理對等配置,請注意子網層級的對等關係在 AVNM 中會呈現為標準的 VNet 對等。

設計考量

隨即轉移 VNet 與子網路設計焦點

  • 重建你的本地分段:將每個 VLAN 或安全區域映射到子網路,讓現有防火牆邊界和營運所有權能以最小的重新設計延續。
  • 含空餘空間的子網路大小。 遷移後重新定址會造成干擾,因此分配比現有主機數量還要大的 CIDR 範圍,以吸收成長及 Azure 每個子網的五個保留地址。
  • 盡可能讓 Azure 的位址空間與本地區域對齊,以簡化路由,避免透過 VPN 閘道 或 ExpressRoute 連線時重疊。
  • 預設為每個移轉的應用程式使用一個 VNet,並為每個層級各配置一個子網路。 這種設計反映了典型的三層內部配置,並保持搬遷的可預測性。

現代化 VNet 與子網路設計焦點

  • 先圍繞平台服務設計子網:為 Azure 防火牆、Application Gateway 和 Bastion 設置專用子網路,並根據你的 CNI 選擇,為 AKS 設計適當大小的子網路。
  • 使用 Azure CNI Overlay for AKS 來保持較小空間的節點子網路,因為 Pod 是從獨立的 CIDR 覆蓋層取用,而非 VNet 位址空間。
  • 為私有端點預留專用子網路,這樣隨著你採用更多 Azure PaaS 服務,IP 消費量會保持可預測。
  • 請盡早採用 Azure Virtual Network Manager,以便在跨訂閱的 VNet 數量增加時,仍能一致地套用網路群組、連線及安全性設定。

跨雲 VNet 與子網設計重點

  • 在建立任何 VNet 之前,先建立一個全域位址計畫。 為 Azure 保留不與現有 AWS VPC 或 Google Cloud VPC 網路衝突的非重疊 CIDR 區塊。 路由式 VPN 或互連必須進行此預留。
  • 將每個雲端的網路原語映射到 Azure:AWS VPC 或 Google Cloud VPC 網路對應 Azure VNet,安全群組對應 NSG。
  • 預留子網空間給跨雲連接元件,例如 GatewaySubnet VPN 閘道 或 Azure Virtual WAN 使用的樞紐,讓中繼基礎設施有擴展空間。
  • 標準化跨雲端的子網命名與標籤,讓營運團隊在排查多雲流量時能對應相當的層級。

先決條件

在設計虛擬網路與子網路佈局前,請確保具備:

  • Azure 訂用:一個有權限建立網路資源的作用中 Azure 訂用 (Network 貢獻者角色或更高等級)。
  • 資源群組:目標區域內的資源群組,用來包含 VNet 資源。
  • 區域決策:根據與使用者的距離、合規需求及服務可用性選擇主要 Azure 區域。
  • 位址空間規劃:決定一個 IP 位址範圍(CIDR 區塊),且該範圍不得與您的內部部署網路或您打算進行對等互連的其他 VNet 重疊。 請參閱 IP 位址規劃 以獲得指引。

安全性考慮

虛擬網路和子網是你網路分段的第一層。 請採取以下安全措施:

  • 網路安全群組(NSG):將 NSG 關聯到每個子網路,以過濾進出流量。 定義每個子網角色的允許規則,並預設拒絕其他所有規則。 詳細指引請參閱 網路安全群組與應用安全群組
  • UDR 強制隧道:如果您的合規要求所有網路流量必須通過本地檢測設備或雲端防火牆,請使用帶有使用者自訂路由的路由表來覆蓋預設的網路路由。 請參見 出站和輸出連線
  • 網隔離:將不同信任等級的資源放在不同的子網中。 例如,將資料庫放在只允許應用層子網入站流量的子網路中。 這種分離限制了攻擊者若破壞某一元件時的橫向移動。
  • 平台服務專用子網:許多 Azure 平台服務(Azure 防火牆、Application Gateway、Bastion)部署到專用子網中。 這種隔離確保平台服務路由和安全規則不會干擾你的工作負載子網。

NSG 與子網互動

當你將 NSG 與子網關聯時,NSG 規則會適用於該子網中的所有資源。 了解這些互動行為:

  • 累積評估:如果虛擬機的網卡同時有 NSG,Azure 會同時評估子網層級的 NSG 與 NIC 層級的 NSG。 對於入站流量,Azure 會先評估子網 NSG,再評估 NIC NSG。 對於出站流量,Azure 會先評估 NIC NSG,再評估子網 NSG。
  • 預設拒絕:Azure 包含允許 VNet 內部流量及外撥網際網路存取的預設規則。 新增自訂拒絕規則後,請確認合法流量(例如來自 IP 位址 168.63.129.16 的 Azure Load Balancer 健康狀態探查)不會遭到意外封鎖。
  • 服務標籤與 ASG:在 NSG 規則中使用服務標籤(如 AzureLoadBalancerInternetVirtualNetwork)和應用安全群組(ASG)取代原始 IP 位址。 此方法簡化規則管理,並能隨著 Azure IP 範圍變化自動調整。
  • 流量日誌以提升可見性:在每個子網層級 NSG 啟用 NSG 流量日誌,以捕捉已接受與拒絕的流量。 流程日誌幫助你驗證安全規則是否如預期運作,並提供合規稽核的證據。 請參閱 NSG 流程日誌 以取得設定說明。

這些 Azure 網路設計指南中的文章涵蓋相關主題:

瞭解更多資訊

欲了解更多關於 Azure 虛擬網路的資訊,請參閱以下資源:

下一步

Tip

自己探索? 回到 總覽導航 器,依能力尋找你的下一篇文章。

您的隨即轉移之旅的下一步:

規劃你的 IP 位址空間:分配一個 /16 CIDR 池,避免與本地位址範圍重疊。

接下來的現代化旅程:

規劃 IP 位址空間:分配跨兩個區域且位址範圍不重疊的 IP 集區,以用於主動-主動對等互連。

接下來的跨雲端旅程:

規劃您的 IP 位址空間:設計跨 Azure、Amazon Web Services(AWS)及 Google Cloud 的不重疊位址。