教學課程:使用 Azure 入口網站以路由表路由傳送網路流量

根據預設,Azure 會路由虛擬網路內所有子網路之間的流量。 您可以建立您自己的路由,以覆寫 Azure 的預設路由。 舉例來說,當您想要通過網路虛擬設備 (NVA) 路由傳送子網路之間的流量時,自訂路由便很有用。

Diagram of Azure resources created in tutorial.

在本教學課程中,您會了解如何:

  • 建立虛擬網路和子網路
  • 建立會路由傳送流量的 NVA
  • 將虛擬機器 (VM) 部署到不同子網路
  • 建立路由表
  • 建立路由
  • 建立路由表與子網路的關聯
  • 透過 NVA 從一個子網路將流量路由傳送到另一個子網路

必要條件

登入 Azure

登入 Azure 入口網站

建立虛擬網路和堡壘主機

下列程序會建立具有資源子網路、Azure Bastion 子網路和 Azure Bastion 主機的虛擬網路。

  1. 在入口網站中,搜尋並選取 [虛擬網路]

  2. 在 [虛擬網路] 頁面上,選取 [+ 建立]。

  3. 在 [建立虛擬網路] 的 [基本] 索引標籤中,輸入或選取下列資訊:

    設定
    專案詳細資料
    訂用帳戶 選取您的訂用帳戶。
    資源群組 選取 [新建]
    在 [名稱] 中輸入 test-rg
    選取 [確定]。
    [執行個體詳細資料]
    名稱 輸入 vnet-1
    區域 選取 [美國東部 2]

    Screenshot of Basics tab of Create virtual network in the Azure portal

  4. 選取 [下一步],繼續執行 [安全性] 索引標籤。

  5. [安全性] 索引標籤的 [Azure Bastion] 區段中,選取 [啟用 Bastion]

    Azure Bastion 會使用您的瀏覽器,透過安全殼層 (SSH) 或遠端桌面通訊協定 (RDP) 連線至您的虛擬網路中的 VM (使用其私人 IP 位址)。 VM 不需要公用 IP 位址、用戶端軟體或特殊設定。 如需 Azure Bastion 的詳細資訊,請參閱 Azure Bastion

    注意

    每小時定價從 Bastion 部署的那一刻開始,而不論輸出資料使用量為何。 如需詳細資訊,請參閱定價SKU

    如果您要將 Bastion 部署為教學課程或測試的一部分,建議您在完成使用之後刪除此資源。

  6. [Azure Bastion] 中,輸入或選取下列資訊:

    設定
    Azure Bastion 主機名稱 輸入 bastion
    Bastion 公用 IP 位址 選取 [建立公用 IP 位址]
    在 [名稱] 中輸入 public-ip
    選取 [確定]。

    Screenshot of enable bastion host in Create virtual network in the Azure portal.

  7. 選取 [下一步],繼續執行 [IP 位址] 索引標籤。

  8. 在選取位址空間方塊的 [子網路] 中,選取 [預設] 子網路。

  9. [編輯子網路] 中,輸入或選取下列資訊:

    設定
    子網路詳細資料
    子網路範本 保留預設值 Default
    名稱 輸入 subnet-1
    起始位址 保留預設值 10.0.0.0
    子網路大小 保留預設值 /24(256 addresses)

    Screenshot of default subnet rename and configuration.

  10. 選取 [儲存]。

  11. 選取畫面底部的 [檢閱 + 建立],然後在驗證通過時,選取 [建立]

建立子網路

本教學課程需要 DMZ私人子網路。 DMZ 子網路是您部署 NVA 的位置,而私人子網路是您部署要路由流量的虛擬機器位置。 subnet-1 是在上一個步驟中建立的子網路。 針對公用虛擬機器,請使用 subnet-1

  1. 在入口網站頂端的搜尋方塊中,輸入虛擬網路。 選取搜尋結果中的 [虛擬網路]

  2. [虛擬網路] 中,選取 [vnet-1]

  3. vnet-1 中,從 [設定] 區段中選取 [子網路]

  4. 在虛擬網路的子網路清單中,選取 [+ 子網路]

  5. [新增子網路] 中,輸入或選取下列資訊:

    設定
    名稱 輸入 subnet-private
    子網路位址範圍 輸入 10.0.2.0/24

    Screenshot of private subnet creation in virtual network.

  6. 選取 [儲存]。

  7. 選取 [+ 子網路]

  8. [新增子網路] 中,輸入或選取下列資訊:

    設定
    名稱 輸入 subnet-dmz
    子網路位址範圍 輸入 10.0.3.0/24

    Screenshot of DMZ subnet creation in virtual network.

  9. 選取 [儲存]。

建立 NVA 虛擬機器

網路虛擬設備 (NVA) 是可協助路由和防火牆最佳化等網路功能的虛擬機器。 在本節中,使用 Ubuntu 22.04 虛擬機器建立 NVA。

  1. 在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。

  2. 選取 [+ 建立],然後選取 [Azure 虛擬機器]

  3. [建立虛擬機器][基本] 索引標籤中,輸入或選取下列資訊:

    設定
    專案詳細資料
    訂用帳戶 選取您的訂用帳戶。
    資源群組 選取 [test-rg]
    [執行個體詳細資料]
    虛擬機器名稱 輸入 vm-nva
    區域 選取 [(美國) 美國東部 2]
    可用性選項 選取 [不需要基礎結構備援]
    安全性類型 選取 [標準]。
    映像 選取 [Ubuntu Server 22.04 LTS - x64 Gen2]
    VM 架構 保留預設值 x64
    大小 選取大小。
    系統管理員帳戶
    驗證類型 選取 [密碼]
    使用者名稱 輸入使用者名稱。
    密碼 輸入密碼。
    確認密碼 重新輸入密碼。
    輸入連接埠規則
    公用輸入連接埠 選取 [無]。
  4. 選取 [下一步: 磁碟],然後選取 [下一步: 網路]

  5. 在 [網路] 索引標籤中,輸入或選取下列資訊:

    設定
    網路介面
    虛擬網路 選取 [vnet-1]
    子網路 選取 [subnet-dmz (10.0.3.0/24)]
    公用 IP 選取 [無]。
    NIC 網路安全性群組 選取進階
    設定網路安全性群組 選取 [新建]
    [名稱] 中,輸入 nsg-nva
    選取 [確定]。
  6. 將其餘選項保留預設值,然後選取 [檢閱+建立]

  7. 選取 建立

建立公用和私人虛擬機器

vnet-1 虛擬網路中建立兩個虛擬機器。 一部虛擬機器位於 subnet-1 子網路中,另一部虛擬機器位於 subnet-private 子網路中。 針對這兩部虛擬機器,使用相同的虛擬機器映像。

建立公用虛擬機器

公用虛擬機器是用來模擬公用網際網路中的機器。 公用和私人虛擬機器是用來測試透過 NVA 虛擬機器的網路流量路由。

  1. 在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。

  2. 選取 [+ 建立],然後選取 [Azure 虛擬機器]

  3. [建立虛擬機器][基本] 索引標籤中,輸入或選取下列資訊:

    設定
    專案詳細資料
    訂用帳戶 選取您的訂用帳戶。
    資源群組 選取 [test-rg]
    [執行個體詳細資料]
    虛擬機器名稱 輸入 vm-public
    區域 選取 [(美國) 美國東部 2]
    可用性選項 選取 [不需要基礎結構備援]
    安全性類型 選取 [標準]。
    映像 選取 [Ubuntu Server 22.04 LTS - x64 Gen2]
    VM 架構 保留預設值 x64
    大小 選取大小。
    系統管理員帳戶
    驗證類型 選取 [密碼]
    使用者名稱 輸入使用者名稱。
    密碼 輸入密碼。
    確認密碼 重新輸入密碼。
    輸入連接埠規則
    公用輸入連接埠 選取 [無]。
  4. 選取 [下一步: 磁碟],然後選取 [下一步: 網路]

  5. 在 [網路] 索引標籤中,輸入或選取下列資訊:

    設定
    網路介面
    虛擬網路 選取 [vnet-1]
    子網路 選取 [subnet-1 (10.0.0.0/24)]
    公用 IP 選取 [無]。
    NIC 網路安全性群組 選取 [無]。
  6. 將其餘選項保留預設值,然後選取 [檢閱+建立]

  7. 選取 建立

建立私人虛擬機器

  1. 在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。

  2. 選取 [+ 建立],然後選取 [Azure 虛擬機器]

  3. [建立虛擬機器][基本] 索引標籤中,輸入或選取下列資訊:

    設定
    專案詳細資料
    訂用帳戶 選取您的訂用帳戶。
    資源群組 選取 [test-rg]
    [執行個體詳細資料]
    虛擬機器名稱 輸入 vm-private
    區域 選取 [(美國) 美國東部 2]
    可用性選項 選取 [不需要基礎結構備援]
    安全性類型 選取 [標準]。
    映像 選取 [Ubuntu Server 22.04 LTS - x64 Gen2]
    VM 架構 保留預設值 x64
    大小 選取大小。
    系統管理員帳戶
    驗證類型 選取 [密碼]
    使用者名稱 輸入使用者名稱。
    密碼 輸入密碼。
    確認密碼 重新輸入密碼。
    輸入連接埠規則
    公用輸入連接埠 選取 [無]。
  4. 選取 [下一步: 磁碟],然後選取 [下一步: 網路]

  5. 在 [網路] 索引標籤中,輸入或選取下列資訊:

    設定
    網路介面
    虛擬網路 選取 [vnet-1]
    子網路 選取 [subnet-private (10.0.2.0/24)]
    公用 IP 選取 [無]。
    NIC 網路安全性群組 選取 [無]。
  6. 將其餘選項保留預設值,然後選取 [檢閱+建立]

  7. 選取 建立

啟用 IP 轉送

若要透過 NVA 路由流量,請在 Azure 和 vm-nva 的作業系統中開啟 IP 轉送。 啟用 IP 轉送時,vm-nva 所接收的任何流量都會以不同的 IP 位址為目標,不會卸載,而且會轉送到正確的目的地。

在 Azure 中啟用 IP 轉送

在本節中,您會開啟 vm-nva 虛擬機器網路介面的 IP 轉送。

  1. 在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。

  2. [虛擬機器] 中,選取 [vm-nva]

  3. vm-nva 中,從 [設定] 區段中選取 [網路]

  4. 選取 [網路介面:] 旁邊的介面名稱。 此名稱開頭為 vm-nva,且有指派給介面的隨機數字。 此範例中的介面名稱為 vm-nva124

    Screenshot of network interface of NVA virtual machine.

  5. 在網路介面概觀頁面中,從 [設定] 選取 [IP 設定]

  6. [IP 組態] 中,選取 [啟用 IP 轉送] 旁的方塊。

    Screenshot of enablement of IP forwarding.

  7. 選取套用

在作業系統中啟用 IP 轉送

在本節中,開啟 vm-nva 虛擬機器作業系統的 IP 轉送,以轉送網路流量。 使用 Azure Bastion 服務連線到 vm-nva 虛擬機器。

  1. 在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。

  2. [虛擬機器] 中,選取 [vm-nva]

  3. [作業] 區段中,選取 [Bastion]

  4. 輸入建立虛擬機器時所輸入的使用者名稱和密碼。

  5. 選取 Connect

  6. 在虛擬機器提示時,輸入下列資訊,以啟用 IP 轉送:

    sudo vim /etc/sysctl.conf
    
  7. 在 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

  8. 關閉 Bastion 工作階段。

  9. 重新啟動虛擬機器。

建立路由表

在本節中,建立路由表來定義透過 NVA 虛擬機器的流量路由。 路由表會與部署 vm-public 虛擬機器的 subnet-1 子網路相關聯。

  1. 在入口網站頂端的搜尋方塊中,輸入路由表。 在搜尋結果中,選取 [路由表]

  2. 選取 + 建立

  3. [建立路由表] 中,輸入或選取下列資訊:

    設定
    專案詳細資料
    訂用帳戶 選取您的訂用帳戶。
    資源群組 選取 [test-rg]
    [執行個體詳細資料]
    區域 選取 [美國東部 2]
    名稱 輸入 route-table-public
    散佈閘道路由 保留預設值 [是]
  4. 選取 [檢閱 + 建立]。

  5. 選取 建立

建立路由

在本節中,我們會在先前步驟中建立的路由表中建立路由。

  1. 在入口網站頂端的搜尋方塊中,輸入路由表。 在搜尋結果中,選取 [路由表]

  2. 選取 [route-table-public]

  3. [設定] 中,選取 [路由]

  4. [路由] 中,選取 [+ 新增]

  5. [新增路由] 中,輸入或選取下列資訊:

    設定
    路由名稱 輸入 to-private-subnet
    目的地類型 選取 [IP 位址]
    目的地 IP 位址/CIDR 範圍 輸入 10.0.2.0/24
    下一個躍點類型 選取 [虛擬設備]
    下一個躍點位址 輸入 10.0.3.4
    這是您在先前步驟中建立的 vm-nva IP 位址。

    Screenshot of route creation in route table.

  6. 選取 [新增]。

  7. 在 [設定] 中選取 [子網路]

  8. 選取 [+ 建立關聯]

  9. [關聯子網路] 中,輸入或選取下列資訊:

    設定
    虛擬網路 選取 vnet-1 (test-rg)
    子網路 選取 [subnet-1]
  10. 選取 [確定]。

測試網路流量的路由

測試從 vm-publicvm-private 的網路流量路由。 測試從 vm-privatevm-public 的網路流量路由。

測試從 vm-public 到 vm-private 的網路流量

  1. 在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。

  2. [虛擬機器] 中,選取 [vm-public]

  3. [作業] 區段中,選取 [Bastion]

  4. 輸入建立虛擬機器時所輸入的使用者名稱和密碼。

  5. 選取 Connect

  6. 在提示中,輸入下列命令來追蹤從 vm-publicvm-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-publicvm-privatetracepath ICMP 流量,上述回應中有兩個躍點。 第一個躍點為 vm-nva。 第二個躍點為目的地 vm-private

    Azure 會透過 NVA 傳送來自 subnet-1 的流量,而不是直接傳送至 subnet-private,因為您先前已將 to-private-subnet 路由新增至 route-table-public,並將其關聯至 subnet-1

  7. 關閉 Bastion 工作階段。

測試從 vm-private 到 vm-public 的網路流量

  1. 在入口網站頂端的搜尋方塊中,輸入虛擬機器。 在搜尋結果中,選取 [虛擬機器]。

  2. [虛擬機器] 中,選取 [vm-private]

  3. [作業] 區段中,選取 [Bastion]

  4. 輸入建立虛擬機器時所輸入的使用者名稱和密碼。

  5. 選取 Connect

  6. 在提示中,輸入下列命令來追蹤從 vm-privatevm-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 會直接路由傳送子網路之間的流量。

  7. 關閉 Bastion 工作階段。

清除資源

當您完成使用已建立的資源時,您可以刪除資源群組及其資源。

  1. 在 Azure 入口網站中,搜尋並選取 [資源群組]。

  2. [資源群組] 頁面中,選取 test-rg 資源群組。

  3. [test-rg] 頁面上,選取 [刪除資源群組]

  4. [輸入資源群組名稱以確認刪除] 中輸入 test-rg,然後選取 [刪除]

下一步

在本教學課程中,您已:

  • 已建立路由表並將其與子網路產生關聯。

  • 已建立簡單的 NVA,可將來自公用子網路的流量路由傳送至私人子網路。

您可以從 Azure Marketplace 部署不同的預先設定 NVA,以獲得許多有用的網路功能。

若要深入了解路由,請參閱路由概觀管理路由表

若要了解如何透過虛擬網路服務端點來限制對 PaaS 資源的網路存取,請前進到下一個教學課程。