實作 IaaS 虛擬機器 IP 路由
身為 Contoso 的網路系統工程師,您對於 Azure 資源、往返網際網路和內部部署基礎結構內的網路流量流動特別有興趣。 您決定調查 Azure 路由,以及如何實作路由來滿足 Contoso 的需求。 您會了解 Azure VNet 中的每個子網路,Azure 會建立路由表,並在其中填入系統預設路由。 藉由新增至預設路由,您可以建立自己的自訂路由。
系統路由
您無法建立系統路由,也無法覆寫現有的系統路由。 不過,您可以藉由定義自訂路由來變更路由行為。
注意
Azure 會依據子網路路由表中的路由,來路由傳送子網路的流量。
預設
當您建立路由時,您必須定義其位址首碼和下一個躍點。 當離開子網路的流量傳送至已定義路由位址首碼內的 IP 位址時,包含該首碼的路由就是 Azure 使用的路由。 如果多個路由包含相同的位址首碼,則 Azure 會根據下列順序選取路由:
- 先使用使用者定義的路由。
- 接下來,請使用邊界閘道協定 (BGP) 路由。
- 如果沒有其他替代方案存在,請使用系統路由。
當您建立 VNet 時,Azure 會自動建立數個預設路由,如下表所述。
來源 | 位址首碼 | 下一個躍點類型 |
---|---|---|
預設 | 虛擬網路獨有 | 虛擬網路 |
預設 | 0.0.0.0/0 | 網際網路 |
預設 | 10.0.0.0/8 | 無 |
預設 | 192.168.0.0/16 | 無 |
預設 | 100.64.0.0/10 | 無 |
下表說明 Azure 如何解譯下一個躍點類型。
下一個躍點類型 | Azure 如何判斷路由 |
---|---|
虛擬網路 | 在 VNet 位址空間內的位址範圍間路由傳送流量。 Azure 會使用位址首碼來建立路由,該路由會對應至 VNet 位址空間內所定義的每個位址範圍。 如果 VNet 位址空間有多個定義的位址範圍,則 Azure 會為每個位址範圍建立個別路由。 Azure 會自動使用針對每個位址範圍建立的路由,在子網路之間路由傳送流量。 |
網際網路 | 將位址首碼所指定的流量路由傳送到網際網路。 系統預設路由會指定 0.0.0.0/0 位址首碼。 Azure 會針對其他 Azure 服務流量除外的 VNet 內位址範圍未指定的任何位址,將流量路由傳送至網際網路。 如果目的地位址適用於 Azure 的其中一個服務,Azure 會透過 Azure 的骨幹網路將流量直接路由傳送至該服務,而不是將流量路由傳送至網際網路。 |
無 | 路由傳送至下一個躍點類型為 [無] 的流量,不會路由傳送至子網路以外的地方,而是將其捨棄。 |
提示
您可以使用自訂路由來覆寫位址首碼為 0.0.0.0/0 的 Azure 預設系統路由。
提示
您不需要為 Azure 定義閘道,便能在子網路之間路由傳送流量。
選用預設值
如果您新增特定 Azure 功能,Azure 會建立其他預設規則。 您必須為 Azure 啟用這些功能,才能建立這些選用預設規則。 下表描述規則。
來源 | Prefix | 下一個躍點類型 | VNet 內的子網路,Azure 會在其中新增路由 |
---|---|---|---|
預設 | 在 VNet 中是唯一的,例如:10.2.0.0/16 | VNet 對等互連 | 全部 |
虛擬網路閘道 | 使用 BGP 從內部部署公佈的首碼,或在本機網路閘道中設定的首碼 | 虛擬網路閘道 | 全部 |
預設 | 多個 | VirtualNetworkServiceEndpoint | 僅限服務端點已啟用的子網路 |
下表說明 Azure 如何解譯下一個躍點類型。
下一個躍點類型 | Azure 如何路由傳送 |
---|---|
VNet 對等互連 | 當您在兩個 VNet 之間建立 VNet 對等互連時,Azure 會為針對其建立對等互連的每個 VNet 位址空間內的每個位址範圍,新增路由。 |
虛擬網路閘道 | 當您將 VNet 閘道新增至虛擬網路時,Azure 會新增一或多個其 VNet 閘道已列為下一個躍點類型的路由。 來源也是 VNet 閘道,因為閘道會將路由新增至子網路。 如果您的內部部署網路閘道會交換邊界閘道協定 (BGP) 路由與 Azure 虛擬網路閘道,則系統會針對每個從內部部署網路閘道散佈的每個路由新增路由。 |
VirtualNetworkServiceEndpoint | 當您對特定服務啟用服務端點時,Azure 會將服務的公用 IP 位址新增至路由表。 系統會為 VNet 內的個別子網路啟用服務端點,因此只會將路由新增至已啟用服務端點的子網路路由表。 |
注意
Azure 服務的公用 IP 位址會定期變更。 當位址變更時,Azure 會自動管理路由表中的位址。
自訂路由
您可以在 Azure 中建立使用者定義的自訂路由,也可以透過與內部部署網路基礎結構和 Azure VNet 閘道交換 BGP 路由來產生自訂路由。
使用者定義
您可以在 Azure 中建立使用者定義的自訂路由,以覆寫 Azure 的預設系統路由。 在 Azure 中,您會建立路由表,然後使該路由表與零個或多個虛擬網路子網路產生關聯。 每個子網路可以有零個或一個與其相關聯的路由表。 如果您建立路由表,並將其與子網路建立關聯,則資料表內的路由會結合,或覆寫 Azure 預設新增至子網路的預設路由。
下表定義下一個躍點類型,您可以在建立自訂路由時使用選取。
下一個躍點類型 | 說明 |
---|---|
虛擬設備 | 選擇流量何時以網路應用程式 (例如防火牆) 為目的地。 使用虛擬設備躍點類型建立路由時,您也會指定下一個躍點 IP 位址。 IP 位址可以是連結至 VM 的網路介面私人 IP 位址,或是 Azure 內部負載平衡器的私人 IP 位址。 |
虛擬網路閘道 | 當您想要將以特定位址首碼為目的地的流量路由傳送至 VNet 閘道時,請選擇此選項。 |
無 | 當您想要將已定義首碼的網路流量捨棄時,請選擇此選項。 |
VNet | 選擇您是否要覆寫 VNet 內的預設路由。 |
網際網路 | 當您想要明確地將位址首碼指定的流量路由傳送至網際網路時,或您想要 Azure 服務所用的流量 (具有公用 IP 位址) 保留在 Azure 骨幹網路中時,請選擇此選項。 |
延伸閱讀
若要深入了解,請檢閱下列文件:
- 虛擬網路流量路由 \(部分機器翻譯\)
- 什麼是路由喜好設定?
- 什麼是 Azure 虛擬網路?