虛擬網路流量路由 \(部分機器翻譯\)
了解 Azure 如何在 Azure、內部部署和網際網路資源間路由流量。 Azure 會在 Azure 虛擬網路內自動為每個子網路建立路由表,並將系統的預設路由新增至該表格。 若要深入了解虛擬網路和子網路,請參閱虛擬網路概觀。 您可以使用自訂路由覆寫某些 Azure 的系統路由,並將更多自訂路由新增至路由表。 Azure 會依據子網路路由表中的路由,來路由子網路的輸出流量。
系統路由
Azure 會自動建立系統路由,並將路由指派給虛擬網路中的每個子網路。 您無法建立系統路由,也無法移除系統路由,但是您可以使用自訂路由覆寫某些系統路由。 當您使用特定 Azure 功能時,Azure 會為每個子網路建立預設的系統路由,並將更多選擇性預設路由新增至特定子網路或每個子網路。
預設
每個路由都包含位址首碼和下一個躍點類型。 當流量離開子網路並傳送至具有路由位址首碼的 IP 位址時,包含該首碼的路由就是 Azure 使用的路由。 了解有多個路由都包含相同或重疊的首碼時,Azure 如何選取路由。 每當建立虛擬網路時,Azure 就會自動為虛擬網路內的每個子網路建立下列預設系統路由:
來源 | 位址首碼 | 下一個躍點類型 |
---|---|---|
預設 | 虛擬網路獨有 | 虛擬網路 |
預設 | 0.0.0.0/0 | 網際網路 |
預設 | 10.0.0.0/8 | 無 |
預設 | 172.16.0.0/12 | 無 |
預設 | 192.168.0.0/16 | 無 |
預設 | 100.64.0.0/10 | 無 |
上表中所列的下一個躍點代表 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 | VNet 對等互連 | 全部 |
虛擬網路閘道 | 透過 BGP 從內部部署公佈的首碼,或在本機網路閘道中設定的首碼 | 虛擬網路閘道 | 全部 |
預設 | 多個 | VirtualNetworkServiceEndpoint | 僅限服務端點已啟用的子網路。 |
虛擬網路 (VNet) 對等互連:當您在兩個虛擬網路之間建立虛擬網路對等互連時,系統會在每個涉及對等互連的虛擬網路位址空間中,為每個位址範圍新增路由。 深入了解虛擬網路對等互連。
虛擬網路閘道:將虛擬網路閘道新增到虛擬網路時,系統會新增一個或多個下一個躍點類型列為虛擬網路閘道的路由。 來源也是虛擬網路閘道,因為閘道會將路由新增至子網路。 如果您的內部部署網路閘道會與虛擬網路閘道交換邊界閘道通訊協定 (BGP) 路由,則系統會為每個路由新增路由。 這些路由會從內部部署網路閘道傳播。 建議您將內部部署路由彙總至可能的最大位址範圍,使得您可將最少量的路由傳播至 Azure 虛擬網路閘道。 您可以散佈至 Azure 虛擬網路閘道的路由數目有限。 如需詳細資訊,請參閱 Azure 限制。
VirtualNetworkServiceEndpoint:當您對特定服務啟用服務端點時,Azure 會將該服務的公用 IP 位址新增至路由表。 系統會為虛擬網路內的個別子網路啟用服務端點,因此只會將路由新增至已啟用服務端點的子網路路由表。 Azure 服務的公用 IP 位址會定期變更。 當位址變更時,Azure 會自動管理路由表中的位址。 深入了解虛擬網路服務端點,以及可以對其建立服務端點的服務。
注意
VNet 對等互連和 VirtualNetworkServiceEndpoint 下一個躍點類型只會新增至虛擬網路內子網路的路由表,而這些子網路是透過 Azure Resource Manager 部署模型所建立的。 如果路由表是與透過傳統部署模型建立的虛擬網路子網路相關聯,則下一個躍點類型不會新增至該路由表。 深入了解 Azure 部署模型。
自訂路由
您可以透過建立使用者定義路由,或藉由交換邊界閘道協定 (BGP) 路由,在內部網路閘道和 Azure 虛擬網路閘道間建立自訂路由。
使用者定義
若要自定義流量路由,您不應該修改預設路由,但應該建立自定義或使用者定義的路由,以覆寫 Azure 的預設系統路由。 在 Azure 中,您會建立路由表,然後使該路由表與零個或多個虛擬網路子網路產生關聯。 每個子網路可以有零個或一個與其相關聯的路由表。 若要了解您可以新增至路由表的最大路由數目,以及您可以為每個 Azure 訂用帳戶建立的最大使用者定義路由表數目,請參閱 Azure 限制。
根據預設,路由表最多可包含 400 個使用者定義的路由(UDR)。 透過 Azure 虛擬網絡 Manager 的路由設定,這可擴充至每個路由表 1000 個 UDR。 此增加的限制支援更進階的路由設定,例如,當您有較高的輪輻虛擬網路數目時,透過防火牆將來自內部部署數據中心的流量導向至中樞和輪輻拓撲中的每個輪輻虛擬網路。
當您建立路由表並將其與子網路建立關聯時,路由表中的路由會與子網路的預設路由合併。 如果有衝突的路由指派,由使用者所定義的路由會覆寫預設路由。
建立使用者定義路由時,您可以指定下列的下一個躍點類型:
虛擬設備:虛擬設備通常是執行網路應用程式 (例如防火牆) 的虛擬機器。 若要了解您可以在虛擬網路中部署的多種預設網路虛擬設備,請參閱 Azure Marketplace。 當您使用虛擬設備躍點類型建立路由時,您也會指定下一個躍點 IP 位址。 IP 位址可以是:
連接至虛擬機器的網路介面私人 IP 位址。 連接至虛擬機器,並將網路流量轉送至本身以外其他位址的任何網路介面,都必須啟用 Azure 啟用 IP 轉送選項。 該設定會使 Azure 停止檢查網路介面的來源和目的地。 深入了解如何啟用網路介面的 IP 轉送。 啟用 IP 轉送 是 Azure 設定。 您可能需要在虛擬機的操作系統內啟用IP轉送,讓設備轉送指派給 Azure 網路介面的私人IP位址之間的流量。 如果設備需要將流量路由傳送至公用 IP 位址,則必須代理流量或執行網路位址轉譯 (NAT),從來源的私人 IP 位址轉換到自己的私人 IP 位址。 接著,Azure 會先對公用 IP 位址執行 NAT,再將流量傳送至網際網路。 若要判斷虛擬機器內的必要設定,請參閱作業系統或網路應用程式的文件。 若要了解 Azure 中的輸出連線,請參閱了解輸出連線。
注意
將虛擬設備部署至與資源不同的子網路,則會透過該虛擬設備路由。 將虛擬設備部署至相同子網路,然後將路由表套用至會透過虛擬設備路由流量的子網路,可能導致路由迴圈,使得流量永遠不會離開子網路。
下一個躍點私人 IP 位址必須有直接連線能力,而不需透過 ExpressRoute 閘道或虛擬 WAN 進行路由傳送。 將下一個躍點設定為沒有直接連線能力的 IP 位址會導致使用者定義路由設定無效。
Azure 內部負載平衡器的私人 IP 位址。 負載平衡器通常作為網路虛擬設備高可用性策略的一部分使用。
您可以定義一個位址前綴為 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 位址首碼。 如果 已啟用 VPN 虛擬網路網關 的 BGP,您可以透過 BGP 公告具有 0.0.0.0/0 前置綴的路由,而不是設定 0.0.0.0/0 位址前綴的使用者定義路由。
無:當您想要卸除位址首碼的流量,而不是將流量轉送至目的地時指定。 如果未設定功能,Azure 可能會列出 某些選擇性系統路由的 None 。 例如,如果您看到 [無] 列為具有虛擬網路閘道或虛擬設備下一個躍點類型的下一個躍點 IP 位址,可能是因為裝置未執行或未完全設定。 Azure 會針對下一個躍點類型為無的保留位址首碼,建立系統預設路由。
虛擬網路:當您想要覆寫虛擬網路內的預設路由時,指定 [虛擬網路] 選項。 請參閱路由範例,以針對您想以虛擬網路躍點類型建立路由的原因取得範例。
網際網路:當您想要明確地將以某個位址前置詞為目的地的流量路由至網際網路時,或如果您想要將以具有公用 IP 位址的 Azure 服務為目標的流量保留在 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 首碼的流量導向虛擬設備:
$param = @{
Name = 'StorageRoute'
AddressPrefix = 'Storage'
NextHopType = 'VirtualAppliance'
NextHopIpAddress = '10.0.100.4'
}
New-AzRouteConfig @param
使用於 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 入口網站和命令列工具之間是不同的,以及在 Azure Resource Manager 和傳統部署模型之間也不同。 下表列出的名稱可用來參照使用不同工具和部署模型的每種下一個躍點類型:
下一個躍點類型 | Azure CLI 和 PowerShell (Resource Manager) | Azure 傳統 CLI 和 PowerShell (傳統) |
---|---|---|
虛擬網路閘道 | VirtualNetworkGateway | VPNGateway |
虛擬網路 | VNetLocal | VNETLocal (傳統部署模型模式無法在傳統 CLI 中使用) |
網際網路 | 網際網路 | 因特網 (傳統部署模型模式中的傳統 CLI 無法使用) |
虛擬設備 | VirtualAppliance | VirtualAppliance |
無 | 無 | Null (傳統部署模型模式中的傳統 CLI 無法使用) |
虛擬網路對等互連 | VNet 對等互連 | 不適用 |
虛擬網路服務端點 | VirtualNetworkServiceEndpoint | 不適用 |
邊界閘道協定
內部部署網路閘道可以使用邊界閘道通訊協定 (BGP) 交換路由與 Azure 虛擬網路閘道。 是否要對 Azure 虛擬網路閘道使用 BGP,取決於您建立閘道時選取的類型:
ExpressRoute:您必須使用 BGP 將內部部署路由公佈至 Microsoft 邊緣路由器。 如果您部署的虛擬網路閘道是以 ExpressRoute 類型部署,就無法建立使用者定義路由來強制 ExpressRoute 虛擬網路閘道的流量。 您可以使用使用者定義的路由,強制執行從 Express Route 到例如網路虛擬裝置的流量。
VPN:您可以選擇性地使用 BGP。 如需詳細資訊,請參閱BGP 與站台對站 VPN 連線。
當您使用 BGP 交換 Azure 與路由時,系統會針對每個公佈的首碼,將個別路由新增至虛擬網路中的所有子網路路由表。 新增路由的來源和下一個躍點類型會列為虛擬網路閘道。
ER 與 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 會選取具有使用者來源的路由,因為使用者定義路由的優先順序高於系統預設路由。
請參閱路由範例,以取得完整路由資料表,表中有路由的說明。
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 地區。 但當您以虛擬網路閘道或虛擬設備建立使用者定義或 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 路由表包含下列路由:
識別碼 | 來源 | 州/省 | 位址首碼 | 下一個躍點類型 | 下一個躍點 IP 位址 | 使用者定義路由名稱 |
---|---|---|---|---|---|---|
1 | 預設 | 無效 | 10.0.0.0/16 | 虛擬網路 | ||
2 | User | 使用中 | 10.0.0.0/16 | 虛擬設備 | 10.0.100.4 | Within-VNet1 |
3 | User | 使用中 | 10.0.0.0/24 | 虛擬網路 | Within-Subnet1 | |
4 | 預設 | 無效 | 10.1.0.0/16 | VNet 對等互連 | ||
5 | 預設 | 無效 | 10.2.0.0/16 | VNet 對等互連 | ||
6 | User | 使用中 | 10.1.0.0/16 | 無 | ToVNet2-1-Drop | |
7 | User | 使用中 | 10.2.0.0/16 | 無 | ToVNet2-2-Drop | |
8 | 預設 | 無效 | 10.10.0.0/16 | 虛擬網路閘道 | [X.X.X.X] | |
9 | User | 使用中 | 10.10.0.0/16 | 虛擬設備 | 10.0.100.4 | To-On-Prem |
10 | 預設 | 使用中 | [X.X.X.X] | VirtualNetworkServiceEndpoint | ||
11 | 預設 | 無效 | 0.0.0.0/0 | 網際網路 | ||
12 | User | 使用中 | 0.0.0.0/0 | 虛擬設備 | 10.0.100.4 | Default-NVA |
每個路由 ID 的說明如下:
ID1:Azure 已自動為 Virtual-network-1 內的所有子網路新增此路由,因為 10.0.0.0/16 是虛擬網路位址空間中定義的唯一位址範圍。 如果您未在路由識別碼 2 中建立使用者定義的路由,則傳送至 10.0.0.1 與 10.0.255.254 之間的任何位址的流量會在虛擬網路內路由。 此程序是因為前置詞超過 0.0.0.0/0,因此未落在任何其他路由的位址前置詞內。 當 ID2 (使用者定義路由) 已新增時,Azure 會自動將狀態從「作用中」變更為「無效」,因為其首碼與預設路由一樣,而使用者定義路由會覆寫預設路由。 Subnet2 的此路由狀態仍然是「作用中」,因為其中有使用者定義路由 (ID2) 的路由表並未與 Subnet2 產生關聯。
ID2:當 10.0.0.0/16 位址首碼的使用者定義路由已與 Virtual-network-1 中 Subnet1 子網路產生關聯時,Azure 就會新增此路由。 使用者定義路由會指定 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 位址首碼的使用者定義路由已與 Subnet1 子網路產生關聯時,Azure 就會新增此路由。 10.0.0.1 到 10.0.0.254 之間位址的流量仍保留在子網內。 流量不會路由傳送至上一個規則中指定的虛擬設備(ID2),因為它的前置詞比ID2路由長。 此路由並未與Subnet2 產生關聯,因此路由不會出現在 Subnet2 的路由表中。 針對 Subnet1 內的流量,此路由有效地覆寫 ID2 路由。 此路由是為符合需求 3 而存在。
ID4:當虛擬網路與 Virtual-network-1 對等互連時,Azure 會針對 Virtual-network-2 內的所有子網路,自動在 ID 4 和 ID 5 中新增路由。Virtual-network-2 在其位址空間中有兩個位址範圍:10.1.0.0/16 和 10.2.0.0/16,因此 Azure 會為每個範圍新增路由。 如果您未在路由識別碼 6 和 7 中建立使用者定義的路由,則傳送至 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 中的路由相同,而使用者定義的路由會覆寫預設路由。 Subnet2 中 ID 4 和 ID 5 的路由狀態仍然是「作用中」,因為包含 ID 6 和 ID 7 中使用者定義路由的路由表並未與 Subnet2 產生關聯。 虛擬網路對等互連是為符合需求 1 而建立。
ID5:與 ID4 的說明相同。
ID6:當 10.1.0.0/16 和 10.2.0.0/16 位址首碼的使用者定義路由已與 Subnet1 子網路產生關聯時,Azure 就會新增此路由和 ID7 中的路由。 Azure 會捨棄目的地為至 10.1.0.1-10.1.255.254 和 10.2.0.1-10.2.255.254 之間位址的流量,而不是路由至對等互連的虛擬網路,因為使用者定義路由會覆寫預設路由。 這些路由並未與 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 位址首碼的使用者定義路由已新增至與 Subnet1 相關聯的路由表時,Azure 就會新增此路由。 此路由會覆寫 ID8。 路由會將所有內部部署網路指定的流量傳送至 NVA 以進行檢查,而不是將流量直接路由至內部部署。 此路由是為符合需求 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) 的使用者定義路由已與子網路產生關聯時,Azure 會自動將 Subnet1 子網路的狀態從「作用中」變更為「無效」。 對於兩個虛擬網路內的所有其他子網路而言,此路由的狀態仍是「作用中」,因為路由並未與任何其他虛擬網路內的任何其他子網路產生關聯。
ID12:當 0.0.0.0/0 位址首碼的使用者定義路由已與 Subnet1 子網路產生關聯時,Azure 就會新增此路由。 使用者定義路由會指定 10.0.100.4 為虛擬設備的 IP 位址。 此路由並未與 Subnet2 產生關聯,因此路由不會出現在 Subnet2 的路由表中。 如果流量是由不在任何其他路由位址首碼內的位址所用,則所有流量都會傳送至虛擬設備。 此路由的增加會將 Subnet1 的 0.0.0.0/0 位址首碼 (ID11) 預設路由狀態從「作用中」變更為「無效」,因為使用者定義路由會覆寫預設路由。 此路由是為符合第三個需求而存在。
Subnet2
圖片中的 Subnet2 路由表包含下列路由:
來源 | 州/省 | 位址首碼 | 下一個躍點類型 | 下一個躍點 IP 位址 |
---|---|---|---|---|
預設 | 使用中 | 10.0.0.0/16 | 虛擬網路 | |
預設 | 使用中 | 10.1.0.0/16 | 虛擬網路對等互連 | |
預設 | 使用中 | 10.2.0.0/16 | 虛擬網路對等互連 | |
預設 | 使用中 | 10.10.0.0/16 | 虛擬網路閘道 | [X.X.X.X] |
預設 | 使用中 | 0.0.0.0/0 | 網際網路 | |
預設 | 使用中 | 10.0.0.0/8 | 無 | |
預設 | 使用中 | 100.64.0.0/10 | 無 | |
預設 | 使用中 | 192.168.0.0/16 | 無 |
Subnet2 的路由表包含所有 Azure 建立的預設路由和選用的虛擬網路對等互連與虛擬網路閘道選用的路由。 當閘道和對等互連新增至虛擬網路時,Azure 就會將選擇性路由新增至虛擬網路中的所有子網路。 將 0.0.0.0/0 位址首碼的使用者定義路由新增至 Subnet1 時,Azure 從 Subnet1 路由表中移除 10.0.0.0/8、192.168.0.0/16 和 100.64.0.0/10 位址首碼的路由。
下一步
檢視子網路的所有路由。 使用者定義路由表只會顯示使用者定義路由,而不會顯示子網路的預設和 BGP 路由。 檢視所有路由會顯示子網路 (內含網路介面) 的預設、BGP 及使用者定義路由。
在虛擬機器和目的地 IP 位址間判斷下一個躍點類型。 Azure 網路監看員的下一個躍點功能,可讓您判斷流量是否離開子網路且正在路由到您覺得正確的地方。