為虛擬網路對等互連設定 VPN 閘道傳輸

本文將協助您為虛擬網路對等互連設定閘道傳輸。 虛擬網路對等互連可緊密連接兩個 Azure 虛擬網路,將兩個虛擬網路合併為一個以用於連線。 閘道傳輸是一個對等互連的屬性,可讓一個虛擬網路利用對等虛擬網路中的 VPN 閘道,來進行跨單位或 VNet 對 VNet 連線。

下圖顯示閘道傳輸搭配虛擬網路對等互連的運作方式。 在圖表中,閘道傳輸可讓對等的虛擬網路在 Hub-RM 中使用 Azure VPN 閘道。 VPN 閘道上可用的連線 (包括 S2S、P2S 和 VNet 對 VNet 連線) 皆適用於這三個虛擬網路。

Diagram of Gateway transit.

傳輸選項可用於相同或不同部署模型之間的對等互連功能,並可搭配基本 SKU 以外的所有 VPN 閘道 SKU 使用。 如果您要設定不同部署模型之間的傳輸,中樞虛擬網路和虛擬網路閘道必須位於 Resource Manager 部署模型中,而不是舊版傳統部署模型。

在中樞與輪輻式 (hub-and-spoke) 網路架構中,閘道傳輸會讓輪輻虛擬網路共用中樞內的 VPN 閘道,而不是將 VPN 閘道部署在每個輪輻虛擬網路中。 通往閘道連線虛擬網路或內部部署網路的路由,會傳播到使用閘道傳輸的對等虛擬網路路由表。

您可以從 VPN 閘道中停用自動路由傳播 建立具有「停用 BGP 路由傳播」選項的路由表,然後讓路由表與子網路產生關聯,以防止路由發佈至這些子網路。 如需詳細資訊,請參閱虛擬網路由表

本文有兩個案例。 請選取適用於您環境的案例。 大部份的使用者是使用相同部署模型案例。 如果您未使用環境中已存在的傳統部署模型 VNet (舊版 VNet),則不需要使用不同的部署模型案例。

  • 相同的部署模型:兩個虛擬網路都是在 Resource Manager 部署模型中建立。
  • 不同的部署模型:輪輻虛擬網路是在傳統部署模型中建立,而中樞虛擬網路和閘道則位於 Resource Manager 部署模型中。 當您需要連接已存在於傳統部署模型的舊版 VNet 時,此案例將有所助益。

注意

如果您對網路拓撲進行變更並擁有 Windows VPN 用戶端,則必須重新下載並安裝 Windows 用戶端的 VPN 用戶端套件,才能將變更套用至用戶端。

必要條件

本文需要下列 VNet 和權限。 如果您未使用不同的部署模型案例,則不需要建立傳統 VNet。

虛擬網路

VNet 設定步驟 虛擬網路閘道
Hub-RM Resource Manager
Spoke-RM Resource Manager No
Spoke-Classic 傳統 No

權限

您用於建立虛擬網路對等互連的帳戶必須具有必要角色或權限。 在以下範例中,如果您要將兩個虛擬網路 (分別名為 Hub-RMSpoke-Classic) 對等互連,您的帳戶必須具有每個虛擬網路的下列角色或權限:

VNet 部署模型 角色 權限
Hub-RM Resource Manager 網路參與者 Microsoft.Network/virtualNetworks/virtualNetworkPeerings/write
傳統 傳統網路參與者 N/A
Spoke-Classic Resource Manager 網路參與者 Microsoft.Network/virtualNetworks/peer
傳統 傳統網路參與者 Microsoft.ClassicNetwork/virtualNetworks/peer

深入了解內建角色以及如何對自訂角色指派特定權限 (僅限 Resource Manager)。

相同部署模型

這是較為常見的案例。 在此案例中,虛擬網路位於 Resource Manager 部署模型中。 使用下列步驟來建立或更新虛擬網路對等互連,以啟用閘道傳輸。

新增對等互連並啟用傳輸

  1. Azure 入口網站中,建立或更新來自中樞-RM 的虛擬網路對等互連。 移至 Hub-RM 虛擬網路。 選取 [對等互連],然後按一下 [+ 新增] 開啟 [新增對等互連]

  2. 在 [新增對等互連] 頁面上,設定此虛擬網路的值。

    • 對等互連連結名稱:為連結命名。 範例:HubRMToSpokeRM

    • 連到遠端虛擬網路的流量:允許

    • 從遠端虛擬網路轉送的流量:允許

    • 虛擬網路閘道:使用此虛擬網路的閘道或路由伺服器

      Screenshot shows add peering.

  3. 在相同的頁面上,繼續設定遠端虛擬網路的值。

    • 對等互連連結名稱:為連結命名。 範例:SpokeRMtoHubRM

    • 虛擬網路部署模型:Resource Manager

    • 我知道資源識別碼:保留空白。 如果您無權讀取所要對等互連的虛擬網路或訂用帳戶,則只需要選取此選項。

    • 訂閱:選取訂閱。

    • 虛擬網路:Spoke-RM

    • 連到遠端虛擬網路的流量:允許

    • 從遠端虛擬網路轉送的流量:允許

    • 虛擬網路閘道:使用遠端虛擬網路的閘道或路由伺服器

      Screenshot shows values for remote virtual network.

  4. 選取 [新增] 以建立對等互連。

  5. 確認兩個虛擬網路上的對等互連狀態為已連線

修改現有的對等互連以進行傳輸

如果您已具備現有的對等互連,則可以修改對等互連以進行傳輸。

  1. 移至虛擬網路。 選取 [對等互連],然後選取您想要修改的對等互連。 例如,在 Spoke-RM VNet 上,選取 [SpokeRMtoHubRM] 對等互連。

  2. 更新 VNet 對等互連。

    • 連到遠端虛擬網路的流量:允許
    • 轉送至虛擬網路的流量:允許
    • 虛擬網路閘道或路由伺服器:使用遠端虛擬網路的閘道或路由伺服器
  3. 儲存對等互連設定。

PowerShell 範例

您也可以使用 PowerShell 來建立或更新對等互連。 使用您虛擬網路和資源群組的名稱取代變數。

$SpokeRG = "SpokeRG1"
$SpokeRM = "Spoke-RM"
$HubRG   = "HubRG1"
$HubRM   = "Hub-RM"

$spokermvnet = Get-AzVirtualNetwork -Name $SpokeRM -ResourceGroup $SpokeRG
$hubrmvnet   = Get-AzVirtualNetwork -Name $HubRM -ResourceGroup $HubRG

Add-AzVirtualNetworkPeering `
  -Name SpokeRMtoHubRM `
  -VirtualNetwork $spokermvnet `
  -RemoteVirtualNetworkId $hubrmvnet.Id `
  -UseRemoteGateways

Add-AzVirtualNetworkPeering `
  -Name HubRMToSpokeRM `
  -VirtualNetwork $hubrmvnet `
  -RemoteVirtualNetworkId $spokermvnet.Id `
  -AllowGatewayTransit

不同的部署模型

在此設定中,輪輻 VNet Spoke-Classic 是位在傳統部署模型中,而中樞 VNet Hub-RM 位於 Resource Manager 部署模型中。 設定部署模型之間的傳輸時,必須針對 Resource Manager VNet (而不是傳統 VNet) 設定虛擬網路閘道。

針對此設定,您只需要設定 Hub-RM 虛擬網路。 您不需要在 Spoke-Classic VNet 上進行任何設定。

  1. 在 Azure 入口網站中,移至 Hub-RM 虛擬網路,選取 [對等互連],然後選取 [+ 新增]

  2. 在 [新增對等互連] 頁面上,設定下列值:

    • 對等互連連結名稱:為連結命名。 範例:HubRMToClassic

    • 連到遠端虛擬網路的流量:允許

    • 從遠端虛擬網路轉送的流量:允許

    • 虛擬網路閘道或路由伺服器:使用此虛擬網路的閘道或路由伺服器

    • 對等互連連結名稱:當您針對虛擬網路部署模型選取 [傳統] 時,此值就會消失。

    • 虛擬網路部署模型︰傳統

    • 我知道資源識別碼:保留空白。 如果您無權讀取所要對等互連的虛擬網路或訂用帳戶,則只需要選取此選項。

      Add peering page for Spoke-Classic

  3. 確認訂用帳戶正確無誤,然後從下拉式清單中選取虛擬網路。

  4. 選取 [新增] 以新增對等互連。

  5. 確認 Hub-RM 虛擬網路上的對等互連狀態為 [已連線]

針對此設定,您不需要在 Spoke-Classic 虛擬網路上進行任何設定。 當狀態顯示為 [已連線] 時,輪輻虛擬網路可以透過中樞虛擬網路中的 VPN 閘道來使用連線能力。

PowerShell 範例

您也可以使用 PowerShell 來建立或更新對等互連。 使用您虛擬網路、資源群組和訂用帳戶的值,來取代變數和訂用帳戶識別碼。 您只需要在中樞虛擬網路上建立虛擬網路對等互連。

$HubRG   = "HubRG1"
$HubRM   = "Hub-RM"

$hubrmvnet   = Get-AzVirtualNetwork -Name $HubRM -ResourceGroup $HubRG

Add-AzVirtualNetworkPeering `
  -Name HubRMToClassic `
  -VirtualNetwork $hubrmvnet `
  -RemoteVirtualNetworkId "/subscriptions/<subscription Id>/resourceGroups/Default-Networking/providers/Microsoft.ClassicNetwork/virtualNetworks/Spoke-Classic" `
  -AllowGatewayTransit

下一步