教學課程:使用 Azure 入口網站以路由表路由傳送網路流量
根據預設,Azure 會路由虛擬網路內所有子網路之間的流量。 您可以建立您自己的路由,以覆寫 Azure 的預設路由。 舉例來說,當您想要通過網路虛擬設備 (NVA) 路由傳送子網路之間的流量時,自訂路由便很有用。
在本教學課程中,您會了解如何:
- 建立虛擬網路和子網路
- 建立會路由傳送流量的 NVA
- 將虛擬機器 (VM) 部署到不同子網路
- 建立路由表
- 建立路由
- 建立路由表與子網路的關聯
- 透過 NVA 從一個子網路將流量路由傳送到另一個子網路
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 您可以免費建立帳戶。
登入 Azure
登入 Azure 入口網站。
建立虛擬網路和 Azure Bastion 主機
下列程序會建立具有資源子網路、Azure Bastion 子網路和 Bastion 主機的虛擬網路:
在入口網站中,搜尋並選取 [虛擬網路]。
在 [虛擬網路] 頁面上,選取 [+ 建立]。
在 [建立虛擬網路] 的 [基本] 索引標籤上,輸入或選取下列資訊:
設定 值 專案詳細資料 訂用帳戶 選取您的訂用帳戶。 資源群組 選取 [新建]
輸入 test-rg 作為名稱。
選取 [確定]。[執行個體詳細資料] 名稱 輸入 vnet-1。 區域 選取 [美國東部 2]。 選取 [下一步],繼續前往 [安全性] 索引標籤。
在 [Azure Bastion] 區段中,選取 [啟用 Azure Bastion]。
Bastion 會使用您的瀏覽器,透過安全殼層 (SSH) 或遠端桌面通訊協定 (RDP) 連線至虛擬網路中的 VM (使用其私人 IP 位址)。 VM 不需要公用 IP 位址、用戶端軟體或特殊設定。 如需詳細資訊,請參閱什麼是 Azure Bastion?。
在 Azure Bastion 中,輸入或選取下列資訊:
設定 值 Azure Bastion 主機名稱 輸入 bastion。 Azure Bastion 公用 IP 位址 選取 [建立公用 IP 位址]。
在 [名稱] 中輸入 public-ip-bastion。
選取 [確定]。選取 [下一步],繼續前往 [IP 位址] 索引標籤。
在 [子網路] 的 [位址空間] 方塊中,選取 [預設] 子網路。
在 [編輯子網路] 中,輸入或選取下列資訊:
設定 值 子網路用途 保留 Default 的預設值。 名稱 輸入 subnet-1。 IPv4 IPv4 位址範圍 保留 10.0.0.0/16 的預設值。 起始位址 保留預設值 [10.0.0.0]。 大小 保留 /24 (256 個位址) 的預設值。 選取 [儲存]。
選取視窗底部的 [檢閱 + 建立]。 通過驗證後,選取 [建立]。
建立子網路
本教學課程需要 DMZ 和私人子網路。 DMZ 子網路是您部署 NVA 的位置,而私人子網路是您部署要路由流量的虛擬機器位置。 subnet-1 是在上一個步驟中建立的子網路。 針對公用虛擬機器,請使用 subnet-1。
在入口網站頂端的搜尋方塊中,輸入虛擬網路。 選取搜尋結果中的 [虛擬網路]。
在 [虛擬網路] 中,選取 [vnet-1]。
在 vnet-1 中,從 [設定] 區段中選取 [子網路]。
在虛擬網路的子網路清單中,選取 [+ 子網路]。
在 [新增子網路] 中,輸入或選取下列資訊:
設定 值 子網路用途 保留 Default 的預設值。 名稱 輸入 subnet-private。 IPv4 IPv4 位址範圍 保留 10.0.0.0/16 的預設值。 起始位址 輸入 10.0.2.0。 大小 保留 /24 (256 個位址) 的預設值。 選取 [新增]。
選取 [+ 子網路]。
在 [新增子網路] 中,輸入或選取下列資訊:
設定 值 子網路用途 保留 Default 的預設值。 名稱 輸入 subnet-dmz。 IPv4 IPv4 位址範圍 保留 10.0.0.0/16 的預設值。 起始位址 輸入 10.0.3.0。 大小 保留 /24 (256 個位址) 的預設值。 選取 [新增]。
建立 NVA 虛擬機器
網路虛擬設備 (NVA) 是可協助路由和防火牆最佳化等網路功能的虛擬機器。 在本節中,使用 Ubuntu 24.04 虛擬機器建立 NVA。
在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。
選取 [+ 建立],然後選取 [Azure 虛擬機器]。
在 [建立虛擬機器] 的 [基本] 索引標籤中,輸入或選取下列資訊:
設定 值 專案詳細資料 訂用帳戶 選取您的訂用帳戶。 資源群組 選取 [test-rg]。 [執行個體詳細資料] 虛擬機器名稱 輸入 vm-nva。 區域 選取 [(美國) 美國東部 2]。 可用性選項 選取 [不需要基礎結構備援]。 安全性類型 選取 [標準]。 映像 選取 [Ubuntu Server 24.04 LTS - x64 Gen2]。 VM 架構 保留預設值 [x64]。 大小 選取大小。 系統管理員帳戶 驗證類型 選取 [密碼]。 使用者名稱 輸入使用者名稱。 密碼 輸入密碼。 確認密碼 重新輸入密碼。 輸入連接埠規則 公用輸入連接埠 選取 [無]。 選取 [下一步:磁碟],然後選取 [下一步:網路]。
在 [網路] 索引標籤中,輸入或選取以下資訊:
設定 值 網路介面 虛擬網路 選取 [vnet-1]。 子網路 選取 [subnet-dmz (10.0.3.0/24)]。 公用 IP 選取 [無]。 NIC 網路安全性群組 選取進階。 設定網路安全性群組 選取 [新建]
在 [名稱] 中,輸入 nsg-nva。
選取 [確定]。將其餘選項保留預設值,然後選取 [檢閱 + 建立]。
選取 建立。
建立公用和私人虛擬機器
在 vnet-1 虛擬網路中建立兩個虛擬機器。 一部虛擬機器位於 subnet-1 子網路中,另一部虛擬機器位於 subnet-private 子網路中。 針對這兩部虛擬機器,使用相同的虛擬機器映像。
建立公用虛擬機器
公用虛擬機器是用來模擬公用網際網路中的機器。 公用和私人虛擬機器是用來測試透過 NVA 虛擬機器的網路流量路由。
在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。
選取 [+ 建立],然後選取 [Azure 虛擬機器]。
在 [建立虛擬機器] 的 [基本] 索引標籤中,輸入或選取下列資訊:
設定 值 專案詳細資料 訂用帳戶 選取您的訂用帳戶。 資源群組 選取 [test-rg]。 [執行個體詳細資料] 虛擬機器名稱 輸入 vm-public。 區域 選取 [(美國) 美國東部 2]。 可用性選項 選取 [不需要基礎結構備援]。 安全性類型 選取 [標準]。 映像 選取 [Ubuntu Server 24.04 LTS - x64 Gen2]。 VM 架構 保留預設值 [x64]。 大小 選取大小。 系統管理員帳戶 驗證類型 選取 [密碼]。 使用者名稱 輸入使用者名稱。 密碼 輸入密碼。 確認密碼 重新輸入密碼。 輸入連接埠規則 公用輸入連接埠 選取 [無]。 選取 [下一步:磁碟],然後選取 [下一步:網路]。
在 [網路] 索引標籤中,輸入或選取以下資訊:
設定 值 網路介面 虛擬網路 選取 [vnet-1]。 子網路 選取 [subnet-1 (10.0.0.0/24)]。 公用 IP 選取 [無]。 NIC 網路安全性群組 選取 [無]。 將其餘選項保留預設值,然後選取 [檢閱 + 建立]。
選取 建立。
建立私人虛擬機器
在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。
選取 [+ 建立],然後選取 [Azure 虛擬機器]。
在 [建立虛擬機器] 的 [基本] 索引標籤中,輸入或選取下列資訊:
設定 值 專案詳細資料 訂用帳戶 選取您的訂用帳戶。 資源群組 選取 [test-rg]。 [執行個體詳細資料] 虛擬機器名稱 輸入 vm-private。 區域 選取 [(美國) 美國東部 2]。 可用性選項 選取 [不需要基礎結構備援]。 安全性類型 選取 [標準]。 映像 選取 [Ubuntu Server 24.04 LTS - x64 Gen2]。 VM 架構 保留預設值 [x64]。 大小 選取大小。 系統管理員帳戶 驗證類型 選取 [密碼]。 使用者名稱 輸入使用者名稱。 密碼 輸入密碼。 確認密碼 重新輸入密碼。 輸入連接埠規則 公用輸入連接埠 選取 [無]。 選取 [下一步:磁碟],然後選取 [下一步:網路]。
在 [網路] 索引標籤中,輸入或選取以下資訊:
設定 值 網路介面 虛擬網路 選取 [vnet-1]。 子網路 選取 [subnet-private (10.0.2.0/24)]。 公用 IP 選取 [無]。 NIC 網路安全性群組 選取 [無]。 將其餘選項保留預設值,然後選取 [檢閱 + 建立]。
選取 建立。
啟用 IP 轉送
若要透過 NVA 路由流量,請在 Azure 和 vm-nva 的作業系統中開啟 IP 轉送。 啟用 IP 轉送時,vm-nva 所接收的任何流量都會以不同的 IP 位址為目標,不會卸載,而且會轉送到正確的目的地。
在 Azure 中啟用 IP 轉送
在本節中,您會開啟 vm-nva 虛擬機器網路介面的 IP 轉送。
在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。
在 [虛擬機器] 中,選取 [vm-nva]。
在 [vm-nva] 中,展開 [網络],然後選取 [網路設定]。
選取 [網路介面:] 旁邊的介面名稱。 此名稱開頭為 vm-nva,且有指派給介面的隨機數字。 此範例中的介面名稱為 vm-nva313。
在網路介面概觀頁面中,從 [設定] 選取 [IP 設定]。
在 [IP 組態] 中,選取 [啟用 IP 轉送] 旁的方塊。
選取套用。
在作業系統中啟用 IP 轉送
在本節中,開啟 vm-nva 虛擬機器作業系統的 IP 轉送,以轉送網路流量。 使用 Azure Bastion 服務連線到 vm-nva 虛擬機器。
在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。
在 [虛擬機器] 中,選取 [vm-nva]。
在 [概觀] 區段中依次選取 [連結],[透過 Bastion 連接]。
輸入建立虛擬機器時所輸入的使用者名稱和密碼。
選取 Connect。
在虛擬機器提示時,輸入下列資訊,以啟用 IP 轉送:
sudo vim /etc/sysctl.conf
在 Vim 編輯器中,從行
net.ipv4.ip_forward=1
移除#
:按下 [Insert] 鍵。
# Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1
按下 [ESC] 鍵。
輸入
:wq
,然後按 Enter。關閉 Bastion 工作階段。
重新啟動虛擬機器。
建立路由表
在本節中,建立路由表來定義透過 NVA 虛擬機器的流量路由。 路由表會與部署 vm-public 虛擬機器的 subnet-1 子網路相關聯。
在入口網站頂端的搜尋方塊中,輸入路由表。 在搜尋結果中,選取 [路由表]。
選取 + 建立。
在 [建立路由表] 中,輸入或選取下列資訊:
設定 值 專案詳細資料 訂用帳戶 選取您的訂用帳戶。 資源群組 選取 [test-rg]。 [執行個體詳細資料] 區域 選取 [美國東部 2]。 名稱 輸入 route-table-public。 散佈閘道路由 保留預設值 [是]。 選取 [檢閱 + 建立]。
選取 建立。
建立路由
在本節中,我們會在先前步驟中建立的路由表中建立路由。
在入口網站頂端的搜尋方塊中,輸入路由表。 在搜尋結果中,選取 [路由表]。
選取 [route-table-public]。
展開 [設定] ,然後選取 [路由]。
在 [路由] 中,選取 [+ 新增]。
在 [新增路由] 中,輸入或選取下列資訊:
設定 值 路由名稱 輸入 to-private-subnet。 目的地類型 選取 [IP 位址]。 目的地 IP 位址/CIDR 範圍 輸入 10.0.2.0/24。 下一個躍點類型 選取 [虛擬設備]。 下一個躍點位址 輸入 10.0.3.4。
這是您在先前步驟中建立的 vm-nva IP 位址。。選取 [新增]。
在 [設定] 中選取 [子網路]。
選取 [+ 建立關聯]。
在 [關聯子網路] 中,輸入或選取下列資訊:
設定 值 虛擬網路 選取 [vnet-1 (test-rg)]。 子網路 選取 [subnet-1]。 選取 [確定]。
測試網路流量的路由
測試從 vm-public 到 vm-private 的網路流量路由。 測試從 vm-private 到 vm-public 的網路流量路由。
測試從 vm-public 到 vm-private 的網路流量
在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。
在 [虛擬機器] 中,選取 [vm-public]。
在 [概觀] 區段中依次選取 [連結],[透過 Bastion 連接]。
輸入建立虛擬機器時所輸入的使用者名稱和密碼。
選取 Connect。
在提示中,輸入下列命令來追蹤從 vm-public 到 vm-private 的網路流量路由:
tracepath vm-private
回應如下列範例所示:
azureuser@vm-public:~$ tracepath vm-private 1?: [LOCALHOST] pmtu 1500 1: vm-nva.internal.cloudapp.net 1.766ms 1: vm-nva.internal.cloudapp.net 1.259ms 2: vm-private.internal.cloudapp.net 2.202ms reached Resume: pmtu 1500 hops 2 back 1
您可以看到,針對從 vm-public 到 vm-private 的
tracepath
ICMP 流量,上述回應中有兩個躍點。 第一個躍點為 vm-nva。 第二個躍點為目的地 vm-private。Azure 會透過 NVA 傳送來自 subnet-1 的流量,而不是直接傳送至 subnet-private,因為您先前已將 to-private-subnet 路由新增至 route-table-public,並將其關聯至 subnet-1。
關閉 Bastion 工作階段。
測試從 vm-private 到 vm-public 的網路流量
在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。
在 [虛擬機器] 中,選取 [vm-private]。
在 [概觀] 區段中依次選取 [連結],[透過 Bastion 連接]。
輸入建立虛擬機器時所輸入的使用者名稱和密碼。
選取 Connect。
在提示中,輸入下列命令來追蹤從 vm-private 到 vm-public 的網路流量路由:
tracepath vm-public
回應如下列範例所示:
azureuser@vm-private:~$ tracepath vm-public 1?: [LOCALHOST] pmtu 1500 1: vm-public.internal.cloudapp.net 2.584ms reached 1: vm-public.internal.cloudapp.net 2.147ms reached Resume: pmtu 1500 hops 1 back 2
您可以看到上述回應中有一個躍點,也就是目的地 vm-public。
Azure 會將流量直接從 subnet-private 傳送至 subnet-1。 根據預設,Azure 會直接路由傳送子網路之間的流量。
關閉 Bastion 工作階段。
使用完所建立的資源時,您可以刪除資源群組及其所有資源。
在 Azure 入口網站中,搜尋並選取 [資源群組]。
在 [資源群組] 頁面上,選取 [test-rg] 資源群組。
在 [test-rg] 頁面上,選取 [刪除資源群組]。
在 [輸入資源群組名稱以確認刪除] 中輸入 test-rg,然後選取 [刪除]。
下一步
在本教學課程中,您已:
已建立路由表並將其與子網路產生關聯。
已建立簡單的 NVA,可將來自公用子網路的流量路由傳送至私人子網路。
您可以從 Azure Marketplace 部署不同的預先設定 NVA,以獲得許多有用的網路功能。
若要了解如何透過虛擬網路服務端點來限制對 PaaS 資源的網路存取,請前進到下一個教學課程。