在本文中,您將瞭解 Azure 虛擬網路流量路由如何在 Azure、內部部署和因特網資源之間運作。 Azure 會在 Azure 虛擬網路內自動為每個子網路建立路由表,並將系統的預設路由新增至該表格。 瞭解流量路由可協助您優化連線能力,並針對 Azure 環境中的網路問題進行疑難解答。 若要深入了解虛擬網路和子網路,請參閱虛擬網路概觀。 您可以使用自訂路由覆寫某些 Azure 的系統路由,並將更多自訂路由新增至路由表。 Azure 會依據子網路路由表中的路由,來路由子網路的輸出流量。
系統路由
Azure 會自動建立系統路由,並將路由指派給虛擬網路中的每個子網路。 您無法建立系統路由,也無法移除系統路由,但是您可以使用自訂路由覆寫某些系統路由。 當您使用特定 Azure 功能時,Azure 會為每個子網路建立預設的系統路由,並將更多選擇性預設路由新增至特定子網路或每個子網路。
默認系統路由
每個路由都包含位址前綴和下一躍點類型。 當流量從子網離開並前往IP位址時,Azure 會使用具有相符位址前綴的路由。 深入了解當多個路由包含相同或重疊前置詞時 ,Azure 如何選取路由 。 每次建立虛擬網路時,Azure 會在虛擬網路內自動為每個子網路建立下列預設系統路由:
| 來源 | 位址首碼 | 下一個躍點類型 |
|---|---|---|
| 預設 | 虛擬網路獨有 | 虛擬網路 |
| 預設 | 0.0.0.0/0 | 網際網路 |
| 預設 | 10.0.0.0/8 | None |
| 預設 | 172.16.0.0/12 | None |
| 預設 | 192.168.0.0/16 | None |
| 預設 | 100.64.0.0/10 | None |
上表列出的下一個躍點類型,代表 Azure 如何路由上述位址首碼指定的流量。 以下是下一個躍點類型的說明:
虛擬網路:在虛擬網路位址空間內的位址範圍間路由流量。 Azure 建立路由所用的位址首碼,會與每個虛擬網路位址空間中定義的位址範圍相對應。 如果虛擬網路位址空間有多個定義的位址範圍,則 Azure 會為每個位址範圍建立個別路由。 根據預設,Azure 會路由傳送子網路之間的流量。 您不需要為 Azure 定義路由表或閘道來路由子網路之間的流量。 Azure 不會為子網路位址範圍建立預設路由。 每個子網路位址範圍都在虛擬網路位址空間的位址範圍內。
網際網路:將位址首碼所指定的流量路由到網際網路。 系統預設路由會指定 0.0.0.0/0 位址首碼。 如果您不覆寫 Azure 的預設路由,Azure 會將所有不是由虛擬網路內位址範圍指定的流量路由至網際網路。 此路由有一個例外狀況。 如果目的地位址適用於 Azure 服務,Azure 會透過 Azure 後端網路將流量直接路由傳送至服務,而不是將流量路由傳送至網際網路。 Azure 服務之間的流量不會周遊網際網路。 虛擬網路所在的 Azure 區域或 Azure 服務執行個體部署所在的 Azure 區域並不重要。 您可以使用自訂路由,覆寫位址首碼為 0.0.0.0/0 的 Azure 預設系統路由。
無:路由至下一個躍點類型為無的流量會遭到捨棄,而不是路由至子網路以外的地方。 Azure 會為下列位址首碼自動建立預設路由:
- 10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16:在 RFC 1918 中保留以作為私人用途。
- 100.64.0.0/10:在 RFC 6598 中保留。
如果您在虛擬網路位址空間內指派上述任何位址範圍時,Azure 會自動將路由的下一個躍點類型從無變更至虛擬網路。 如果您對其指派位址範圍的虛擬網路位址空間中,包含四個保留位址首碼的其中一個 (但不是完全相同) 時,Azure 會移除該首碼的路由,並針對您新增的位址首碼來新增路由 (使用虛擬網路作為下一個躍點類型)。
選擇性預設路由
Azure 會為不同的 Azure 功能建立更多預設系統路由,但前提是您啟用這些功能。 根據功能,Azure 會建立選擇性的預設路由至虛擬網路內的特定子網或虛擬網路內的所有子網。 下表列出當您啟用不同功能時,Azure 可能新增的其他系統路由和下一個躍點類型。
| 來源 | 位址首碼 | 下一個躍點類型 | 虛擬網路中新增路由的子網路 |
|---|---|---|---|
| 預設 | 虛擬網路獨有,例如:10.1.0.0/16 | 虛擬網路對等互連 | 全部 |
| 虛擬網路閘道 | 透過邊界閘道協定 (BGP) 從內部部署公佈的首碼,或在本機網路閘道中設定的首碼 | 虛擬網路閘道 | 全部 |
| 預設 | 多個 | VirtualNetworkServiceEndpoint |
僅限已啟用服務端點的子網路 |
- 虛擬網路對等互連:當您在兩個虛擬網路之間建立虛擬網路對等互連時,系統會在每個涉及對等互連的虛擬網路位址空間中,為每個位址範圍新增路由。 深入了解虛擬網路對等互連。
- 虛擬網路閘道:將虛擬網路閘道新增到虛擬網路時,系統會新增一個或多個下一個躍點類型列為虛擬網路閘道的路由。 來源也是虛擬網路閘道,因為閘道會將路由新增至子網路。 如果您的內部部署網路閘道會與虛擬網路閘道交換 BGP 路由,則系統會為每個路由新增路由。 這些路由會從內部部署網路閘道傳播。 建議您將內部部署路由彙總至可能的最大位址範圍,使得您可將最少量的路由傳播至 Azure 虛擬網路閘道。 您可以散佈至 Azure 虛擬網路閘道的路由數目有限。 如需詳細資訊,請參閱 Azure 限制。
VirtualNetworkServiceEndpoint:當您啟用服務端點時,Azure 會包含路由表特定服務的公用IP位址。 Azure 僅包含這些路由至已啟用服務端點的子網。 Azure 會在服務 IP 位址變更時,自動更新路由表中的這些位址。 深入瞭解 虛擬網路服務端點 和支持的服務。附註
虛擬網路對等互連和
VirtualNetworkServiceEndpoint下一個躍點類型只會新增至透過 Azure Resource Manager 部署模型建立的虛擬網路子網路路由表。 如果路由表是與透過傳統部署模型建立的虛擬網路子網路相關聯,則下一個躍點類型不會新增至該路由表。 深入了解 Azure 部署模型。
自訂路由
您可以透過建立使用者定義的路由 (UDR),或藉由交換 BGP 路由,在內部網路閘道和 Azure 虛擬網路閘道間建立自訂路由。
使用者定義的路由
若要自訂流量路由,您不得修改預設路由。 您應該建立自訂或使用者定義 (靜態) 路由,以覆寫 Azure 預設系統路由。 在 Azure 中,您可以建立路由表,並將路由表與零個或多個虛擬網路子網路建立關聯。 每個子網路可以有零個或一個與其相關聯的路由表。 若要了解您可以新增至路由表的最大路由數目,以及您可以為每個 Azure 訂用帳戶建立的最大 UDR 表格數目,請參閱 Azure 限制。
根據預設,路由表最多可包含 400 個 UDR。 透過 Azure Virtual Network Manager 路由設定,此數字可以擴充至每個路由表 1,000 個 UDR。 此增加的限制支援更進階的路由設定。 例如,當您有較高的輪輻虛擬網路數目時,透過防火牆將來自內部部署資料中心的流量導向至中樞和輪輻拓撲中的每個輪輻虛擬網路。
當您建立路由表並關聯至子網路時,路由表的路由會結合子網路的預設路由。 如果有衝突的路由指派,UDR 會覆寫預設路由。
您可以在建立 UDR 時指定下列下一個躍點類型:
虛擬設備:一般執行網路應用程式 (例如防火牆) 的虛擬機器。 若要了解您可以在虛擬網路中部署的多種預設網路虛擬設備,請參閱 Azure Marketplace。 當您使用虛擬設備躍點類型建立路由時,您也會指定下一個躍點 IP 位址。 IP 位址可以是:
連接至虛擬機器的網路介面私人 IP 位址。 連接至虛擬機器,並將網路流量轉送至本身以外其他位址的任何網路介面,都必須啟用 Azure 啟用 IP 轉送選項。 該設定會使 Azure 停止檢查網路介面的來源和目的地。 深入了解如何啟用網路介面的 IP 轉送。 啟用 IP 轉送 是 Azure 設定。
您可能需要啟用虛擬機器作業系統內的 IP 轉送,以便設備轉送已指派給 Azure 網路介面的私人 IP 位址間的流量。 如果設備需要將流量路由傳送至公用 IP 位址,則必須通過 Proxy 處理流量,或執行從來源的私人 IP 位址到其私人 IP 位址的網路位址轉譯 (NAT)。 接著,Azure 會先對公用 IP 位址執行 NAT,再將流量傳送至網際網路。 若要決定虛擬機器內的必要設定,請參閱您作業系統或網路應用程式的文件。 若要了解 Azure 中的輸出連線,請參閱了解輸出連線。
附註
將虛擬設備部署至與資源不同的子網路,則會透過該虛擬設備路由。 如果將虛擬設備部署至相同子網路,然後將路由表套用至透過虛擬設備路由流量的子網路,就會造成路由迴圈,使得流量不會離開子網路。
下一個躍點私人 IP 位址必須有直接連線能力,而不需透過 Azure ExpressRoute 閘道或 Azure 虛擬 WAN 進行路由傳送。 將下一個躍點設定為沒有直接連線能力的 IP 位址,會導致無效的 UDR 設定。
Azure 內部負載平衡器的私人 IP 位址。 負載平衡器通常作為網路虛擬設備高可用性策略的一部分使用。
您可使用 0.0.0.0/0 作為位址首碼和虛擬設備的下一個躍點類型來定義路由。 此設定可讓設備檢查流量,並判斷要轉送或卸載流量。 如果您想要建立包含 0.0.0.0/0 位址首碼的 UDR,請先了解 0.0.0.0/0 位址首碼。
虛擬網路閘道:使用者定義的路由,其下一個躍點類型為虛擬網路閘道,允許您將流量傳送至虛擬網路的閘道。 虛擬網路會根據您的部署,由基礎軟體定義網路平台自動設定單一閘道。 只有在虛擬網路的網關是 VPN 閘道(而非 ExpressRoute、RouteServer 或虛擬 WAN 中樞路由器)時,才支援具有下一個躍點虛擬網路網關的使用者定義路由。
針對具有 VPN 閘道的虛擬網路、ExpressRoute 閘道和/或路由伺服器:
- 如果 RouteServer 部署在虛擬網路中,則 RouteServer 會設定為虛擬網路的閘道。
- 如果 VPN 閘道和 ExpressRoute 閘道部署在相同的虛擬網路中(不含 RouteServer),ExpressRoute 閘道會設定為虛擬網路的閘道。
- 如果 VPN 閘道或 ExpressRoute 閘道是虛擬網路中唯一的閘道(不含 RouteServer),則部署的閘道是虛擬網路的閘道。
對於使用閘道或 RouteServer 與另一個虛擬網路對等互連的虛擬網路,且 [使用遠端虛擬網路的閘道或路由伺服器] 設定已啟用:
- 如果 RouteServer 部署在對等互連的虛擬網路中,遠端 RouteServer 會設定為虛擬網路的閘道。
- 如果 VPN 閘道和 ExpressRoute 閘道部署在對等互連虛擬網路中(不含 RouteServer),遠端 ExpressRoute 閘道會設定為虛擬網路的閘道。
- 如果 VPN 閘道或 ExpressRoute 閘道是對等互連虛擬網路中唯一的閘道(不含 RouteServer),遠端閘道會設定為虛擬網路的閘道。
針對連線至虛擬 WAN 中樞的虛擬網路:
- 虛擬網路的閘道一律會設定為虛擬 WAN 中樞路由器。
在內部部署上,您可能有裝置可檢查流量並決定是否要轉送或捨棄流量。 如果您想要建立 0.0.0.0/0 位址首碼的 UDR,請先了解 0.0.0.0/0 位址首碼。 您不需要設定 0.0.0.0/0 位址首碼的 UDR,如果您已啟用 VPN 虛擬網路閘道的 BGP,則可透過 BGP 公佈具有 0.0.0.0/0 首碼的路由。
無:當您要捨棄位址首碼的流量,而不是將流量轉送至目的地時指定。 如果未設定功能,Azure 可能會針對某些選用系統路由顯示 [無]。 例如,如果您看到 [下一個躍點位址] 顯示 [無],而 [下一個躍點類型] 顯示 [虛擬網路閘道] 或 [虛擬設備],這可能是因為裝置未執行或未完整設定。 Azure 會針對下一個躍點類型為無的保留位址首碼,建立系統預設路由。
虛擬網路:當您想要覆寫虛擬網路內的預設路由時,指定 [虛擬網路] 選項。 如需取得您想以 [虛擬網路] 躍點類型建立路由的原因範例,請參閱路由範例。
網際網路:當您想要將目的地為地址首碼的流量明確地路由傳送至網際網路時,請指定 [網際網路] 選項。 或者,如果您希望送到具公用 IP 位址的 Azure 服務的流量保留在 Azure 骨幹網路內,請使用它。
您無法指定 [虛擬網路對等互連] 或 VirtualNetworkServiceEndpoint 做為 UDR 中的下一個躍點類型。 只有在設定虛擬網路對等互連或服務端點時,Azure 才會建立具有 [虛擬網路對等互連] 或 VirtualNetworkServiceEndpoint 下一個躍點類型的路由。
使用者定義路由的服務標籤
您現在可以指定服務標籤作為 UDR 的位址首碼,而不是明確的 IP 範圍。 服務標籤代表來自特定 Azure 服務的一組 IP 位址首碼。 Microsoft 會管理服務標籤包含的位址前置詞,並隨著位址變更自動更新服務標籤。 此支援可將頻繁更新至 UDR 的複雜性降到最低,並減少您需要建立的路由數目。 您目前可以在每個路由表中使用服務標籤來建立 25 個或更少的路由。 在此版本中,系統也支援在容器的路由案例中使用服務標籤。
完全相符
當路由與具有明確 IP 首碼的路由與具有服務標籤的路由之間有完全相符的首碼時,系統會優先考慮有明確首碼的路由。 如果有多個具有服務標籤的路由具備相符的 IP 首碼,則會以下列順序評估路由:
區域標籤 (例如
Storage.EastUS或AppService.AustraliaCentral)最上層標籤 (例如
Storage或AppService)AzureCloud區域標籤 (例如AzureCloud.canadacentral或AzureCloud.eastasia)AzureCloud標籤
若要使用此功能,請在路由表命令中為位址首碼參數指定服務標籤名稱。 例如,在 PowerShell 中,您可使用下列命令來建立新路由,以將傳送至 Azure 儲存體 IP 首碼的流量導向虛擬設備:
$param = @{
Name = 'StorageRoute'
AddressPrefix = 'Storage'
NextHopType = 'VirtualAppliance'
NextHopIpAddress = '10.0.100.4'
}
New-AzRouteConfig @param
適用於 Azure CLI 的相同命令如下:
az network route-table route create \
--resource-group MyResourceGroup \
--route-table-name MyRouteTable \
--name StorageRoute \
--address-prefix Storage \
--next-hop-type VirtualAppliance \
--next-hop-ip-address 10.0.100.4
Azure 工具之間的下一個躍點類型
下一個躍點類型的顯示和參照名稱在 Azure 入口網站和命令列工具之間是不同的,以及在 Resource Manager 和傳統部署模型之間也不同。 下表列出的名稱可用來參照使用不同工具和部署模型的每種下一個躍點類型。
| 下一個躍點類型 | Azure CLI 和 PowerShell (Resource Manager) | Azure 傳統 CLI 和 PowerShell (傳統) |
|---|---|---|
| 虛擬網路閘道 | VirtualNetworkGateway |
VPNGateway |
| 虛擬網路 | VNetLocal |
VNETLocal (不適用於傳統部署模型模式中的傳統 CLI) |
| 網際網路 | 網際網路 | 網際網路 (不適用於傳統部署模型模式中的傳統 CLI) |
| 虛擬設備 | VirtualAppliance |
VirtualAppliance |
| None | None | Null (不適用於傳統部署模型模式中的傳統 CLI) |
| 虛擬網路對等互連 | 虛擬網路對等互連 | 不適用 |
| 虛擬網路服務端點 | VirtualNetworkServiceEndpoint |
不適用 |
邊界閘道通訊協定 (BGP)
內部部署網路閘道可以使用 BGP 交換路由與 Azure 虛擬網路閘道。 是否要對 Azure 虛擬網路閘道使用 BGP,取決於您建立閘道時選取的類型:
- ExpressRoute:您必須使用 BGP 來宣告內部部署路由至 Microsoft 資料中心內的邊緣路由器。 如果您部署的虛擬網路閘道是以 ExpressRoute 類型部署,就無法建立 UDR 來強制 ExpressRoute 虛擬網路閘道的流量。 您可以使用 UDR,強制執行從 Express Route 到例如網路虛擬裝置的流量。
- VPN:您可以選擇性地使用 BGP。 如需詳細資訊,請參閱使用站對站 VPN 連線的 BGP。
當您使用 BGP 交換 Azure 與路由時,系統會針對每個公佈的首碼,將個別路由新增至虛擬網路中的所有子網路路由表。 新增路由的來源和下一個躍點類型會列為虛擬網路閘道。
您可以使用路由表上的屬性,停用子網路上的 ExpressRoute 和 Azure VPN 閘道路由傳播。 當您停用路由傳播時,系統不會將路由新增至所有已停用虛擬網路閘道路由傳播之子網路的路由表。 此流程同時適用於靜態路由和 BGP 路由。 使用下一個躍點類型為 [虛擬網路閘道] 的自訂路由,即可進行 VPN 連線。 如需詳細資訊,請參閱停用虛擬網路閘道路由傳播。
附註
GatewaySubnet 不應停用路由傳播。 如果停用此設定,閘道將無法運作。
Azure 如何選擇流量路由的路徑
當輸出流量從子網路送出時,Azure 會根據目的地 IP 位址選取路由 (使用最長的首碼比對演算法)。 例如,路由表有兩個路由。 一個路由指定 10.0.0.0/24 位址首碼,而其他路由指定 10.0.0.0/16 位址首碼。
Azure 會將目的地為 10.0.0.5 的流量導向具有 10.0.0.0/24 位址前置詞的路由中指定的下一個躍點類型。 發生此程序是因為前置詞 10.0.0.0/24 超過 10.0.0.0/16,即使 10.0.0.5 落在這兩個位址前置詞內也一樣。
Azure 會將目的地為 10.0.1.5 的流量導向具有 10.0.0.0/16 位址前置詞的路由中指定的下一個躍點類型。 發生此程序是因為 10.0.1.5 未包含在 10.0.0.0/24 位址首碼中,使得具有 10.0.0.0/16 位址首碼的路由是最長的相符首碼。
如果多個路由包含相同的位址首碼,則 Azure 會根據下列優先順序選取路由類型:
使用者定義路由
BGP 路由
系統路由
附註
系統仍會慣用與虛擬網路、虛擬網路對等互連或虛擬網路服務端點相關之流量的系統路由。 即使 BGP 路由更加明確,仍偏好使用它們。 即使使用路由表,也無法覆寫具有虛擬網路服務端點的路由,因為下一個躍點類型也無法覆寫。
例如,路由表包含下列路由:
| 來源 | 位址首碼 | 下一個躍點類型 |
|---|---|---|
| 預設 | 0.0.0.0/0 | 網際網路 |
| User | 0.0.0.0/0 | 虛擬網路閘道 |
當流量以路由表中任何其他路由的位址首碼以外的 IP 位址為目標時,Azure 會選取具有 [使用者] 來源的 路由。 因為 UDR 的優先順序高於系統預設路由,所以 Azure 會做此選擇。
請參閱路由範例,以取得完整路由表,表格中有路由的說明。
0.0.0.0/0 位址前置詞
具有 0.0.0.0/0 位址前置詞的路由會對 Azure 提供指示。 Azure 會使用這些指示來路由以未落在子網路路由表中任何其他路由的位址前置詞內的 IP 位址為目的地的流量。 建立子網路時,Azure 會建立 0.0.0.0/0 位址首碼的預設路由,且下一個躍點類型為網際網路。 如果您不覆寫此路由,Azure 就會將不包含在任何其他路由位址首碼的 IP 位址所用流量,路由至網際網路。
但有個例外,Azure 服務公用 IP 位址的流量會保留在 Azure 骨幹網路中,而不會路由至網際網路。 當您使用 [自訂] 路由覆寫此路由時,會導向目的地不在路由表中任何其他路由的位址前置詞內位址的流量。 目的地取決於您在自訂路由中指定網路虛擬設備或虛擬網路閘道。
當您覆寫 0.0.0.0/0 位址首碼時,來自子網路的輸出流量會流經虛擬網路閘道或虛擬設備。 Azure 預設路由也會發生下列變更:
Azure 會將所有流量傳送至路由中指定的下一個躍點類型,包括 Azure 服務公用 IP 位址指定的流量。
當 0.0.0.0/0 位址首碼路由的下個躍點類型是網際網路時,從子網路送往 Azure 服務公用 IP 位址的流量永遠不會離開 Azure 的骨幹網路,不論虛擬網路或 Azure 服務資源存在哪個 Azure 地區。
當您使用 [虛擬網路閘道] 或 [虛擬設備] 下一個躍點類型建立 UDR 或 BGP 路由時,所有流量都會傳送至路由中指定的下一個躍點類型。 包括傳送至未啟用 服務端點之 Azure 服務公用 IP 位址的流量。
當您為服務啟用服務端點時,Azure 會為服務建立具有位址前置詞的路由。 對服務的流量不會路由至具有 0.0.0.0/0 位址前置詞的路由中的下一個躍點類型。 服務的位址前置詞超過 0.0.0.0/0。
您已無法從網際網路直接存取子網路中的資源。 您可以間接從網際網路存取子網路中的資源。 具有 0.0.0.0/0 位址前置詞的路由的下一個躍點類型所指定的裝置必須處理輸入流量。 在流量周遊裝置之後,流量會到達虛擬網路中的資源。 如果路由包含下列的下一個躍點類型值:
虛擬設備:設備必須:
- 能夠從網際網路存取。
- 已有指派的公用 IP 位址。
- 沒有相關聯的網路安全性群組規則會阻止裝置通訊。
- 不會拒絕通訊。
- 能夠進行網路位址轉譯和轉送,或對傳送至子網路中目的地資源的流量設定 Proxy,並將流量傳回網際網路。
虛擬網路閘道:如果閘道是 ExpressRoute 虛擬網路閘道,則透過 ExpressRoute 的私人對等互連,連線到網際網路的裝置在內部部署上可以進行網路位址轉譯和轉送,或對傳送至子網路中目的地資源的流量設定 Proxy。
如果虛擬網路連線至 Azure VPN 閘道,請勿將路由表關聯至所含路由的目的地為 0.0.0.0/0 的閘道子網路。 這麼做會讓閘道無法正常運作。 如需詳細資訊,請參閱為何特定連接埠在我的 VPN 閘道上開啟?。
請參閱 Azure 與內部部署資料中心之間的 DMZ,以取得在網際網路與 Azure 之間使用虛擬網路閘道時的實作詳細資料。
路由範例
為了說明本文中的概念,下列各節說明:
- 案例與需求。
- 必須符合需求的自訂路由。
- 每個子網路都有的路由表,其中包含必須符合需求的預設與自訂路由。
附註
此範例不適合作為建議的實作或最佳做法的實作。 此範例僅供說明本文中的概念。
需求
在相同的 Azure 區域中實作兩個虛擬網路,並且讓資源可在虛擬網路之間通訊。
啟用內部部署網路,以透過 VPN 通道在網際網路間安全地與兩個虛擬網路進行通訊。 或者,您可使用 ExpressRoute 連線,但此範例會使用 VPN 連線。
針對一個虛擬網路中有一個子網路:
- 透過網路虛擬設備路由傳送來自子網路的所有輸出流量,以進行檢查和記錄。 從此路由中排除送到 Azure 儲存體和子網路內的流量。
- 請勿檢查子網路內私人 IP 位址之間的流量。 允許流量在所有資源之間直接流動。
- 捨棄任何傳送至其他虛擬網路的輸出流量。
- 允許傳送至 Azure 儲存體的輸出流量直接流向儲存體,而不強制透過網路虛擬設備。
允許所有其他子網路和虛擬網路之間的所有流量。
實作
透過符合上述需求的 Azure Resource Manager 部署模型所執行的實作如下圖所示。
箭號顯示流量的流動。
路由表
以下是上述路由範例的路由表。
Subnet1
上圖中 Subnet1 的路由表包含下列路由:
| ID | 來源 | State | 位址首碼 | 下一個躍點類型 | 下一個躍點 IP 位址 | UDR 名稱 |
|---|---|---|---|---|---|---|
| 1 | 預設 | 無效 | 10.0.0.0/16 | 虛擬網路 | ||
| 2 | User | Active | 10.0.0.0/16 | 虛擬設備 | 10.0.100.4 | Within-VNet1 |
| 3 | User | Active | 10.0.0.0/24 | 虛擬網路 | Within-Subnet1 | |
| 4 | 預設 | 無效 | 10.1.0.0/16 | 虛擬網路對等互連 | ||
| 5 | 預設 | 無效 | 10.2.0.0/16 | 虛擬網路對等互連 | ||
| 6 | User | Active | 10.1.0.0/16 | None | ToVNet2-1-Drop | |
| 7 | User | Active | 10.2.0.0/16 | None | ToVNet2-2-Drop | |
| 8 | 預設 | 無效 | 10.10.0.0/16 | 虛擬網路閘道 | [X.X.X.X] | |
| 9 | User | Active | 10.10.0.0/16 | 虛擬設備 | 10.0.100.4 | To-On-Prem |
| 10 | 預設 | Active | [X.X.X.X] | VirtualNetworkServiceEndpoint |
||
| 11 | 預設 | 無效 | 0.0.0.0/0 | 網際網路 | ||
| 12 | User | Active | 0.0.0.0/0 | 虛擬設備 | 10.0.100.4 | Default-NVA |
以下是每個路由 ID 的說明:
ID1:Azure 已自動為 Virtual-network-1 內的所有子網路新增此路由,因為 10.0.0.0/16 是虛擬網路位址空間中定義的唯一位址範圍。 如果您未在路由識別碼 2 中建立 UDR,則傳送至 10.0.0.1 與 10.0.255.254 之間的任何位址的流量會在虛擬網路內路由。 此流程因為首碼超過 0.0.0.0/0,因此未落在任何其他路由的位址首碼內而發生。
新增 ID2 UDR 時,Azure 會自動將狀態從 [作用中] 變更為 [無效]。 其具有與預設路由相同的首碼,而 UDR 會覆寫預設路由。 Subnet2 的此路由狀態仍然是 [作用中],因為其中有 UDR (ID2) 的路由表並未與 Subnet2 產生關聯。
ID2:當 10.0.0.0/16 位址首碼的 UDR 已與 Virtual-network-1 中 Subnet1 子網路產生關聯時,Azure 就會新增此路由。 UDR 會指定 10.0.100.4 作為虛擬設備的 IP 位址,因為該位址是指派給虛擬設備虛擬機器的私人 IP 位址。 此路由存在的路由表並未與 Subnet2 產生關聯,因此路由不會出現在 Subnet2 的路由表中。
此路由會覆寫 10.0.0.0/16 首碼 (ID1) 的預設路由,預設路由會透過虛擬網路的下一個躍點類型,自動在虛擬網路內路由位址 10.0.0.1 和 10.0.255.254 的流量。 此路由是為符合需求 3 而存在,會強制所有輸出流量通過虛擬設備。
ID3:當 10.0.0.0/24 位址首碼的 UDR 已與 Subnet1 子網路產生關聯時,Azure 就會新增此路由。 目標為 10.0.0.1 到 10.0.0.254 之間位址的流量仍保留在子網路內。 此流量不會路由傳送至上一個規則中指定的虛擬設備 (ID2),因為它的首碼比 ID2 路由還要長。
此路由並未與Subnet2 產生關聯,因此路由不會出現在 Subnet2 的路由表中。 針對 Subnet1 內的流量,此路由有效地覆寫 ID2 路由。 此路由是為符合需求 3 而存在。
ID4:當虛擬網路已與 Virtual-network-2 進行對等互連時,Azure 針對 Virtual-network-1 內的所有子網路自動新增識別碼 4 和 5 中的路由。Virtual-network-2 在其位址空間中有兩個位址範圍:10.1.0.0/16 和 10.2.0.0/16,因此 Azure 個別為這兩個範圍新增路由。 如果您未在路由識別碼 6 和 7 中建立 UDR,則傳送至 10.1.0.1-10.1.255.254 和 10.2.0.1-10.2.255.254 之間的任何位址的流量會路由至對等互連虛擬網路。 此流程因為首碼超過 0.0.0.0/0,因此未落在任何其他路由的位址首碼內而發生。
當您在識別碼 6 和 7 中新增路由時,Azure 會自動將狀態從 [使用中] 變更為 [無效]。 此流程是因為其首碼與識別碼 4 和 5 中的路由相同,而 UDR 會覆寫預設路由而發生。 Subnet2 中 ID 4 和 ID 5 的路由狀態仍然是「作用中」,因為包含 ID 6 和 ID 7 中 UDR 的路由表並未與 Subnet2 產生關聯。 虛擬網路對等互連是為符合需求 1 而建立。
ID5:與 ID4 的說明相同。
ID6:當 10.1.0.0/16 和 10.2.0.0/16 位址首碼的 UDR 已與 Subnet1 子網路產生關聯時,Azure 就會新增此路由和 ID7 中的路由。 Azure 會捨棄目的地為至 10.1.0.1-10.1.255.254 和 10.2.0.1-10.2.255.254 之間位址的流量,而不是路由至對等互連的虛擬網路,因為 UDR 會覆寫預設路由。 這些路由並未與 Subnet2 產生關聯,因此路由不會出現在 Subnet2 的路由表中。 針對離開 Subnet1 的流量,這些路由會覆寫 ID4 和 ID5 路由。 ID6 和 ID7 路由是為符合需求 3 而存在,會捨棄其他虛擬網路指定的流量。
ID7:與 ID6 的說明相同。
ID8:當 VPN 類型虛擬網路閘道在虛擬網路內建立時,Azure 會針對 Virtual-network-1 內的所有子網路,自動新增此路由。 Azure 會將虛擬網路閘道的公用 IP 位址新增至路由表。 傳送到 10.10.0.1 和 10.10.255.254 之間任何位址的流量會路由至虛擬網路閘道。 首碼長度大於 0.0.0.0/0,且不在任何其他路由的位址首碼內。 虛擬網路閘道是為符合需求 2 而建立。
ID9:當 10.10.0.0/16 位址首碼的 UDR 已新增至與 Subnet1 相關聯的路由表時,Azure 就會新增此路由。 此路由會覆寫 ID8。 路由會將所有內部部署網路指定的流量傳送至網路虛擬設備以進行檢查,而不是將流量直接路由至內部部署。 此路由是為符合需求 3 而建立。
ID10:當 Azure 服務的服務端點已為子網路啟用時,Azure 會自動將此路由新增至子網路。 Azure 會將流量從子網路路由至服務的公用 IP 位址 (透過 Azure 基礎結構網路)。 首碼長度大於 0.0.0.0/0,且不在任何其他路由的位址首碼內。 服務端點是為符合需求 3 而建立,會允許 Azure 儲存體指定的流量可直接流向 Azure 儲存體。
ID11:Azure 針對 Virtual-network-1 和 Virtual-network-2 內的所有子網路,自動將此路由新增至路由表。0.0.0.0/0 位址首碼為最短的首碼。 若流量傳送至位址首碼較長的位址,則流量會以其他路由為基礎進行路由。
依預設,Azure 會將位址指定的所有流量路由至網際網路,除非位址已在其他某個路由中指定。 當 0.0.0.0/0 位址首碼 (ID12) 的 UDR 已與子網路產生關聯時,Azure 會自動將 Subnet1 子網路的狀態從「作用中」變更為「無效」。 對於兩個虛擬網路內的所有其他子網路而言,此路由的狀態仍是「作用中」,因為路由並未與任何其他虛擬網路內的任何其他子網路產生關聯。
ID12:當 0.0.0.0/0 位址首碼的 UDR 已與 Subnet1 子網路產生關聯時,Azure 就會新增此路由。 UDR 會指定 10.0.100.4 做為虛擬設備的 IP 位址。 此路由並未與 Subnet2 產生關聯,因此路由不會出現在 Subnet2 的路由表中。 如果流量是由不在任何其他路由位址首碼內的位址所用,則所有流量都會傳送至虛擬設備。
此路由的增加會將 Subnet1 的 0.0.0.0/0 位址首碼 (ID11) 預設路由狀態從「作用中」變更為「無效」,因為 UDR 會覆寫預設路由。 此路由是為符合需求 3 而存在。
Subnet2
上圖中 Subnet2 的路由表包含下列路由:
| 來源 | State | 位址首碼 | 下一個躍點類型 | 下一個躍點 IP 位址 |
|---|---|---|---|---|
| 預設 | Active | 10.0.0.0/16 | 虛擬網路 | |
| 預設 | Active | 10.1.0.0/16 | 虛擬網路對等互連 | |
| 預設 | Active | 10.2.0.0/16 | 虛擬網路對等互連 | |
| 預設 | Active | 10.10.0.0/16 | 虛擬網路閘道 | [X.X.X.X] |
| 預設 | Active | 0.0.0.0/0 | 網際網路 | |
| 預設 | Active | 10.0.0.0/8 | None | |
| 預設 | Active | 100.64.0.0/10 | None | |
| 預設 | Active | 192.168.0.0/16 | None |
Subnet2 的路由表包含所有 Azure 建立的預設路由和選用的虛擬網路對等互連與虛擬網路閘道選用的路由。 當閘道和對等互連新增至虛擬網路時,Azure 就會將選擇性路由新增至虛擬網路中的所有子網路。
將 0.0.0.0/0 位址首碼的 UDR 新增至 Subnet1 時,Azure 從 Subnet1 路由表中移除 10.0.0.0/8、192.168.0.0/16 和 100.64.0.0/10 位址首碼的路由。
相關內容
- 使用路由和網路虛擬設備建立 UDR 表格。
- 設定適用於 Azure VPN 閘道的 BGP。
- 搭配使用 ExpressRoute 與 BGP。
- 檢視子網路的所有路由。 UDR 表格只會顯示子網路的 UDR,而不是預設值和 BGP 路由。 檢視所有路由會顯示網路介面所在子網路的預設、BGP 及 UDR。
- 在虛擬機器和目的地 IP 位址間判斷下一個躍點類型。 您可以使用 Azure 網路監看員的下一個躍點功能,判斷流量是否離開子網路且正在路由到您覺得正確的地方。