規劃及實作使用者定義的路由 (UDR)
您可以在 Azure 中建立自訂或使用者定義 (靜態)、路由來覆寫 Azure 的預設系統路由,或將其他路由新增至子網路的路由表。 在 Azure 中,您會建立路由表,然後使該路由表與零個或多個虛擬網路子網路產生關聯。 每個子網路可以有零個或一個與其相關聯的路由表。 若要了解您可以新增至路由表的最大路由數目,以及您可以為每個 Azure 訂用帳戶建立的最大使用者定義路由表數目,請參閱 Azure 限制。 當您建立路由表並將其與子網路建立關聯時,路由表中的路由會與子網路的預設路由合併。 如果有衝突的路由指派,由使用者所定義的路由會覆寫預設路由。
建立使用者定義路由時,您可以指定下列的下一個躍點類型:
虛擬設備:虛擬設備通常是執行網路應用程式 (例如防火牆) 的虛擬機器。 若要了解您可以在虛擬網路中部署的多種預設網路虛擬設備,請參閱 Azure Marketplace。 當您使用虛擬設備躍點類型建立路由時,您也會指定下一個躍點 IP 位址。 IP 位址可以是:
- 連接至虛擬機器的網路介面私人 IP 位址。 連接至虛擬機器,並將網路流量轉送至本身以外其他位址的任何網路介面,都必須啟用 Azure 啟用 IP 轉送選項。 該設定會使 Azure 停止檢查網路介面的來源和目的地。 深入了解如何啟用網路介面的 IP 轉送。 雖然 [啟用 IP 轉送] 是 Azure 的設定,但您可能也需要啟用虛擬機器作業系統內的 IP 轉送,以便設備轉送已指派給 Azure 網路介面的私人 IP 位址間的流量。 如果設備需要將流量路由傳送至公用 IP 位址,則必須代理流量或執行網路位址轉譯 (NAT),從來源的私人 IP 位址轉換到自己的私人 IP 位址。 接著,Azure 會先對公用 IP 位址執行 NAT,再將流量傳送至網際網路。 若要判斷虛擬機器內的必要設定,請參閱作業系統或網路應用程式的文件。 若要了解 Azure 中的輸出連線,請參閱了解輸出連線。
- Azure 內部負載平衡器的私人 IP 位址。 負載平衡器通常作為網路虛擬設備高可用性策略的一部分使用。
- 連接至虛擬機器的網路介面私人 IP 位址。 連接至虛擬機器,並將網路流量轉送至本身以外其他位址的任何網路介面,都必須啟用 Azure 啟用 IP 轉送選項。 該設定會使 Azure 停止檢查網路介面的來源和目的地。 深入了解如何啟用網路介面的 IP 轉送。 雖然 [啟用 IP 轉送] 是 Azure 的設定,但您可能也需要啟用虛擬機器作業系統內的 IP 轉送,以便設備轉送已指派給 Azure 網路介面的私人 IP 位址間的流量。 如果設備需要將流量路由傳送至公用 IP 位址,則必須代理流量或執行網路位址轉譯 (NAT),從來源的私人 IP 位址轉換到自己的私人 IP 位址。 接著,Azure 會先對公用 IP 位址執行 NAT,再將流量傳送至網際網路。 若要判斷虛擬機器內的必要設定,請參閱作業系統或網路應用程式的文件。 若要了解 Azure 中的輸出連線,請參閱了解輸出連線。
您可以定義一個位址前綴為 0.0.0.0/0 的路由和虛擬設備的下一個躍點類型。 此設定可讓設備檢查流量,並判斷要轉送或卸除流量。 如果您想要建立包含 0.0.0.0/0 位址首碼的使用者定義路由,請先了解 0.0.0.0/0 位址首碼。
- 虛擬網路閘道:當您想要將特定位址首碼指定的流量路由傳送至虛擬網路閘道時指定。 虛擬網路閘道必須搭配 VPN 類型建立。 您無法在使用者定義路由中指定建立為 ExpressRoute 類型的虛擬網路閘道,因為若使用 ExpressRoute,您必須使用適用於自訂路由的 BGP。 如果您有 VPN 和 ExpressRoute 共存連線,則無法指定虛擬網路閘道。 您可以定義路由,讓其目的地為 0.0.0.0/0 位址前綴的流量導向至路由型虛擬網路閘道。 在您的內部部署中,可能會有一個用來檢查流量以及決定是否要轉送或卸除流量的裝置。 如果您想要建立 0.0.0.0/0 位址首碼的使用者定義路由,請先了解 0.0.0.0/0 位址首碼。 您不需要設定 0.0.0.0/0 位址首碼的使用者定義路由,如果您已啟用 VPN 虛擬網路閘道的 BGP,則可以透過 BGP 公佈具有 0.0.0.0/0 首碼的路由。
- 無:當您想要卸除位址首碼的流量,而不是將流量轉送至目的地時指定。 如果有功能尚未設定完畢,Azure 可能會針對某些選擇性系統路徑列出「無」。 例如,如果您看到下一個躍點類型為「虛擬網路閘道」或「虛擬設備」的下一個躍點 IP 位址列為「無」,這可能是因為裝置未執行或未完整設定。 Azure 會針對下一個躍點類型為無的保留位址首碼,建立系統預設路由。
- 虛擬網路:當您想要覆寫虛擬網路內的預設路由時,請指定 [虛擬網络] 選項。
- 網際網路:當您想要明確地將位址首碼指定的流量路由至網際網路時指定,或想要 Azure 服務所用的流量 (具有公用 IP 位址) 保留在 Azure 骨幹網路中時,請指定網際網路選項。 如需爲何該使用虛擬網路躍點類型建立路由的範例,請參閱路由範例。
您無法在使用者定義路由中指定虛擬網路對等互連或 VirtualNetworkServiceEndpoint 作為下一個躍點類型。 當您設定虛擬網路對等互連或服務端點時,具有虛擬網路對等互連或 VirtualNetworkServiceEndpoint 下一個躍點類型的路由只可由 Azure 建立。
使用者定義路由的服務標籤
您現在可以指定服務標籤作為使用者定義路由的位址首碼,而不是明確的 IP 範圍。 服務標籤代表來自指定 Azure 服務的一組 IP 位址首碼。 Microsoft 會管理服務標籤包含的位址前置詞,並隨著位址變更自動更新服務標籤。 因此,將使用者定義路由頻繁更新的複雜度降至最低,並減少您需要建立的路由數目。 您目前可以在每個路由表中建立最多 25 個具有服務標籤的路由。 此發行版本也支援在容器的路由案例中使用服務標籤。
完全相符
當具有明確 IP 前綴的路由與帶有服務標籤的路由之間存在完全相符的前綴時,系統會優先選擇具有明確 IP 前綴的路由。 當帶有服務標籤的多個路由具有相符的 IP 前綴時,路由將按下列順序進行評估:
- 區域標籤 (例如:Storage.EastUS、AppService.AustraliaCentral)
- 頂層標籤 (例如:儲存體、AppService)
- AzureCloud 區域標籤 (例如:AzureCloud.canadacentral、AzureCloud.eastasia)
- AzureCloud 標籤
若要使用此功能,請在路由表命令中指定位址前綴參數的服務標籤名稱。 例如,可在 PowerShell 中使用以下命令建立新的路由,將發送到 Azure 儲存體 IP 前綴的流量導向至虛擬設備:
Azure PowerShell
$param = @{ Name = 'StorageRoute' AddressPrefix = 'Storage' NextHopType = 'VirtualAppliance' NextHopIpAddress = '10.0.100.4' } New-AzRouteConfig @param
使用於 CLI 的相同命令如下所示:
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