针对虚拟网络对等互连配置 VPN 网关传输

本文介绍如何针对虚拟网络对等互连配置网关传输。 虚拟网络对等互连可以无缝地连接两个 Azure 虚拟网络,为了连接目的将两个虚拟网络合并成一个。 网关传输是一个对等互连属性,它允许一个虚拟网络使用对等互连的虚拟网络中的 VPN 网关进行跨界连接或 VNet 到 VNet 连接。

下图说明了在虚拟网络对等互连中使用网关传输的工作原理。 在图中,对等互连的虚拟网络通过网关传输来使用 Hub-RM 中的 Azure VPN 网关。 在 VPN 网关上提供的连接(包括 S2S 连接、P2S 连接和 VNet 到 VNet 连接)适用于所有三种虚拟网络。

Diagram of Gateway transit.

传输选项可用于相同或不同部署模型之间的对等互连,并且可与除基本 SKU 之外的所有 VPN 网关 SKU 一起使用。 如果要配置不同部署模型之间的传输,中心虚拟网络和虚拟网络网关必须采用资源管理器部署模型,而不是旧版经典部署模型。

在中心辐射型网络体系结构中,辐射虚拟网络可以通过网关传输共享中心的 VPN 网关,不必在每个辐射虚拟网络中部署 VPN 网关。 通往网关连接的虚拟网络或本地网络的路由会通过网关传输传播到对等互连的虚拟网络的路由表。

可以禁用源自 VPN 网关的自动路由传播。 使用“禁用 BGP 路由传播”选项创建一个路由表,将路由表关联到子网,防止将路由分发到这些子网。 有关详细信息,请参阅虚拟网络路由表

本文介绍了两个方案。 选择适用于你的环境的方案。 大多数人使用“相同的部署模型”方案。 如果你未使用环境中已存在的经典部署模型 VNet(旧版 VNet),那么你无需使用“不同的部署模型”方案。

  • 相同的部署模型:两个虚拟网络都采用资源管理器部署模型创建。
  • 不同的部署模型:辐射虚拟网络是采用经典部署模型创建,中心虚拟网络和网关采用资源管理器部署模型创建。 需要连接经典部署模型中已存在的旧版 VNet 时,此方案非常有用。

注意

如果更改网络拓扑并且具有 VPN 客户端,必须再次下载和安装 Windows 客户端的 VPN 客户端包,以使更改应用于客户端。

先决条件

本文需要以下 VNet 和权限。 如果你没有使用“不同的部署模型”方案,则无需创建经典 VNet。

虚拟网络

VNet 配置步骤 虚拟网络网关
Hub-RM 资源管理器
Spoke-RM 资源管理器
Spoke-Classic 经典

权限

用于创建虚拟网络对等互连的帐户必须具有所需的角色或权限。 在以下示例中,若要将两个名为 Hub-RM 和 Spoke-Classic 的虚拟网络进行对等互连,帐户必须具有适用于每个虚拟网络的以下角色或权限 :

VNet 部署模型 角色 权限
Hub-RM 资源管理器 网络参与者 Microsoft.Network/virtualNetworks/virtualNetworkPeerings/write
经典 经典网络参与者 空值
Spoke-Classic 资源管理器 网络参与者 Microsoft.Network/virtualNetworks/peer
经典 经典网络参与者 Microsoft.ClassicNetwork/virtualNetworks/peer

详细了解内置角色以及将特定的权限分配到自定义角色(仅限资源管理器)。

相同的部署模型

这种情况更加常见。 在此场景中,两个虚拟网络都采用资源管理器部署模型。 使用以下步骤创建或更新虚拟网络对等互连,以便启用网关传输。

添加对等互连并启用传输

  1. Azure 门户中,创建或更新从 Hub-RM 进行对等互连的虚拟网络。 转到“Hub-RM”虚拟网络。 选择“对等互连”,然后选择“+ 添加”,以便打开“添加对等互连”。

  2. 在“添加对等互连”页面上,配置此虚拟网络的值。

    • 对等互连链接名称:为链接命名。 示例:HubRMToSpokeRM

    • 到远程虚拟网络的流量:Allow

    • 从远程虚拟网络转发的流量:Allow

    • 虚拟网络网关:使用此虚拟网络的网关或路由服务器

      Screenshot shows add peering.

  3. 在同一页面上,继续配置远程虚拟网络的值。

    • 对等互连链接名称:为链接命名。 示例:SpokeRMtoHubRM

    • 虚拟网络部署模型:资源管理器

    • 我知道我的资源 ID:保留为空。 只有在对要进行对等互连的虚拟网络或订阅没有读取访问权限时,才需要选中此框。

    • 订阅:选择订阅。

    • 虚拟网络:Spoke-RM

    • 到远程虚拟网络的流量:Allow

    • 从远程虚拟网络转发的流量:Allow

    • 虚拟网络网关:使用远程虚拟网络的网关或路由服务器

      Screenshot shows values for remote virtual network.

  4. 选择“添加”以创建对等互连。

  5. 验证两个虚拟网络上的对等互连状态是否为“已连接”。

修改用于传输的现有对等互连

如果已有现有的对等互连,可修改对等互连来进行传输。

  1. 转到虚拟网络。 选择“对等互连”,然后选择要修改的对等互连。 例如,在 Spoke-RM VNet 上,选择 SpokeRMtoHubRM 对等互连。

  2. 更新 VNet 对等互连。

    • 到远程虚拟网络的流量:Allow
    • 转发到远程虚拟网络的流量;允许
    • 虚拟网络网关或路由服务器:使用远程虚拟网络的网关或路由服务器
  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 采用资源管理器部署模型。 配置部署模型之间的传输时,必须为资源管理器 VNet 配置虚拟网络网关,不需要为经典 VNet 配置虚拟网络网关。

对于此配置,你只需要配置 Hub-RM 虚拟网络。 不需要在 Spoke-Classic VNet 上配置任何内容。

  1. 在 Azure 门户中,转到“Hub-RM”虚拟网络,选择“对等互连”,然后选择“+ 添加”。

  2. 在“添加对等互连”页面上,配置以下值:

    • 对等互连链接名称:为链接命名。 示例:HubRMToClassic

    • 到远程虚拟网络的流量:Allow

    • 从远程虚拟网络转发的流量:Allow

    • 虚拟网络网关或路由服务器:使用此虚拟网络的网关或路由服务器

    • 对等互连链接名称:对于虚拟网络部署模型选择“经典”时,此值将消失。

    • 虚拟网络部署模型:经典

    • 我知道我的资源 ID:保留为空。 只有在对要进行对等互连的虚拟网络或订阅没有读取访问权限时,才需要选中此框。

      Add peering page for Spoke-Classic

  3. 验证订阅是否正确,然后从下拉列表中选择虚拟网络。

  4. 选择“添加”以添加对等互连。

  5. 验证 Hub-RM 虚拟网络上的对等互连状态是否为“已连接”。

对于此配置,无需在 Spoke-Classic 虚拟网络上配置任何内容。 在状态显示“已连接”后,辐射虚拟网络可以通过中心虚拟网络中的 VPN 网关使用连接。

PowerShell 示例

也可使用 PowerShell 来创建或更新对等互连。 将变量和订阅 ID 替换为虚拟网络和资源组以及订阅的值。 只需在中心虚拟网络上创建虚拟网络对等互连。

$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

后续步骤