使用 PowerShell 创建与 Azure 虚拟 WAN 的站点到站点连接

本文介绍如何通过 PowerShell 使用虚拟 WAN,以通过 IPsec/IKE(IKEv1 和 IKEv2)VPN 连接来与 Azure 中的资源建立连接。 此类型的连接要求位于本地的 VPN 设备分配有一个面向外部的公共 IP 地址。 有关虚拟 WAN 的详细信息,请参阅虚拟 WAN 概述。 可按照 Azure 门户说明创建此配置。

屏幕截图显示虚拟 WAN 的网络关系图。

先决条件

  • 确保拥有 Azure 订阅。 如果还没有 Azure 订阅,可以激活 MSDN 订户权益或注册试用版订阅

  • 确定要用于虚拟中心专用地址空间的 IP 地址范围。 配置虚拟中心时,将使用此信息。 虚拟中心是虚拟 WAN 创建和使用的虚拟网络。 这是区域中虚拟 WAN 网络的核心。 地址空间范围必须符合特定的规则。

    • 为中心指定的地址范围不能与连接到的任何现有虚拟网络重叠。
    • 地址范围不能与连接到的本地地址范围重叠。
    • 如果不熟悉本地网络配置中的 IP 地址范围,请咨询能够提供此类详细信息的人员。

Azure PowerShell

可以在计算机本地安装并运行 Azure PowerShell cmdlet。 PowerShell cmdlet 经常更新。 如果尚未安装最新版本,说明中指定的值可能会失败。 若要查找计算机上安装的 Azure PowerShell 版本,请使用 Get-Module -ListAvailable Az cmdlet。 若要进行安装或更新,请参阅安装 Azure PowerShell 模块

登录

使用提升的权限打开 PowerShell 控制台,并连接到 Azure 帐户。 Connect-AzAccount -Environment AzureChinaCloud cmdlet 将提示你输入凭据。 进行身份验证后,它会下载帐户设置,以便 Azure PowerShell 可以使用这些设置。 可以使用 Get-AzSubscriptionSelect-AzSubscription -SubscriptionName "Name of subscription" 更改订阅。

创建虚拟 WAN

创建虚拟 WAN 之前,必须先创建资源组来托管虚拟 WAN 或使用现有的资源组。 使用以下示例之一。

此示例在中国东部 2 位置创建一个名为 TestRG 的新资源组。 如果要改用现有资源组,可以修改 $resourceGroup = Get-AzResourceGroup -ResourceGroupName "NameofResourceGroup" 命令,然后使用自己的值完成本练习中的步骤。

  1. 创建资源组。

    New-AzResourceGroup -Location "chinaeast2" -Name "TestRG" 
    
  2. 使用 New-AzVirtualWan cmdlet 创建虚拟 WAN。

    $virtualWan = New-AzVirtualWan -ResourceGroupName TestRG -Name TestVWAN1 -Location "chinaeast2"
    

创建中心并配置中心设置

中心是一种虚拟网络,可包含适用于站点到站点、ExpressRoute 或点到站点功能的网关。 使用 New-AzVirtualHub 创建虚拟中心。 此示例使用指定的地址前缀和中心的位置创建一个名为“Hub1”的默认虚拟中心。

$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "TestRG" -Name "Hub1" -AddressPrefix "10.1.0.0/16" -Location "chinaeast2"

创建站点到站点 VPN 网关

本部分将创建一个站点到站点 VPN 网关,该网关与引用的虚拟中心位于同一位置。 创建 VPN 网关时,请指定所需的缩放单元。 创建网关需要大约 30 分钟时间。

  1. 如果关闭了 Azure Power Shell 或连接超时,则可能需要再次声明 $virtualHub 的变量。

    $virtualHub = Get-AzVirtualHub -ResourceGroupName "TestRG" -Name "Hub1"
    
  2. 使用 New-AzVpnGateway cmdlet 创建 VPN 网关。

    New-AzVpnGateway -ResourceGroupName "TestRG" -Name "vpngw1" -VirtualHubId $virtualHub.Id -VpnGatewayScaleUnit 2
    
  3. 创建 VPN 网关后,可以使用以下示例进行查看。

    Get-AzVpnGateway -ResourceGroupName "TestRG" -Name "vpngw1"
    

创建站点和连接

本部分将创建对应于物理位置和连接的站点。 这些站点包含本地 VPN 设备终结点,最多可以在虚拟 WAN 中为每个虚拟中心创建 1000 个站点。 如果有多个中心,则可以为每个中心创建 1000 个站点。

  1. 为 VPN 网关和位于本地站点上的 IP 地址空间设置变量。 发往此地址空间的流量将路由到本地站点。 如果没有为站点启用 BGP,则必须填写此字段。

    $vpnGateway = Get-AzVpnGateway -ResourceGroupName "TestRG" -Name "vpngw1"
    $vpnSiteAddressSpaces = New-Object string[] 2
    $vpnSiteAddressSpaces[0] = "192.168.2.0/24"
    $vpnSiteAddressSpaces[1] = "192.168.3.0/24"
    
  2. 创建链接来添加有关分支中物理链接的信息(包括有关链接速度的元数据、链接提供程序名称),并添加本地设备的公共 IP 地址。

    $vpnSiteLink1 = New-AzVpnSiteLink -Name "TestSite1Link1" -IpAddress "15.25.35.45" -LinkProviderName "SomeTelecomProvider" -LinkSpeedInMbps "10"
    $vpnSiteLink2 = New-AzVpnSiteLink -Name "TestSite1Link2" -IpAddress "15.25.35.55" -LinkProviderName "SomeTelecomProvider2" -LinkSpeedInMbps "100"
    
  3. 创建 VPN 站点,并引用刚刚创建的 VPN 站点链接的变量。

    如果关闭了 Azure Power Shell 或连接超时,请重新声明虚拟 WAN 变量:

    $virtualWan = Get-AzVirtualWAN -ResourceGroupName "TestRG" -Name "TestVWAN1"
    

    使用 New-AzVpnSite cmdlet 创建 VPN 站点。

    $vpnSite = New-AzVpnSite -ResourceGroupName "TestRG" -Name "TestSite1" -Location "chinaeast2" -VirtualWan $virtualWan -AddressSpace $vpnSiteAddressSpaces -DeviceModel "SomeDevice" -DeviceVendor "SomeDeviceVendor" -VpnSiteLink @($vpnSiteLink1, $vpnSiteLink2)
    
  4. 创建站点链接连接。 该连接由 2 条从分支/站点到可缩放网关的主动-主动隧道组成。

    $vpnSiteLinkConnection1 = New-AzVpnSiteLinkConnection -Name "TestLinkConnection1" -VpnSiteLink $vpnSite.VpnSiteLinks[0] -ConnectionBandwidth 100
    $vpnSiteLinkConnection2 = New-AzVpnSiteLinkConnection -Name "testLinkConnection2" -VpnSiteLink $vpnSite.VpnSiteLinks[1] -ConnectionBandwidth 10
    

将 VPN 站点连接到中心

使用 New-AzVpnConnection cmdlet 将 VPN 站点连接到中心站点到站点 VPN 网关。

  1. 在运行命令之前,可能需要重新声明以下变量:

    $virtualWan = Get-AzVirtualWAN -ResourceGroupName "TestRG" -Name "TestVWAN1"
    $vpnGateway = Get-AzVpnGateway -ResourceGroupName "TestRG" -Name "vpngw1"
    $vpnSite = Get-AzVpnSite -ResourceGroupName "TestRG" -Name "TestSite1"
    
  2. 将 VPN 站点连接到中心。

    New-AzVpnConnection -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testConnection" -VpnSite $vpnSite -VpnSiteLinkConnection @($vpnSiteLinkConnection1, $vpnSiteLinkConnection2)
    

将 VNet 连接到中心

下一步是将中心连接到 VNet。 如果为此练习创建了一个新的资源组,则资源组中通常还没有虚拟网络 (VNet)。 以下步骤可帮助你创建 VNet(如果还没有)。 然后,可创建中心与 VNet 之间的连接。

创建虚拟网络

可使用以下示例值创建 VNet。 请确保将示例中的值替换为用于环境的值。 有关详细信息,请参阅快速入门:使用 Azure PowerShell 创建虚拟网络

  1. 创建 VNet。

    $vnet = @{
       Name = 'VNet1'
       ResourceGroupName = 'TestRG'
       Location = 'chinaeast2'
       AddressPrefix = '10.21.0.0/16'
    }
    $virtualNetwork = New-AzVirtualNetwork @vnet
    
  2. 指定子网设置。

    $subnet = @{
       Name = 'Subnet-1'
       VirtualNetwork = $virtualNetwork
       AddressPrefix = '10.21.0.0/24'
    }
    $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
    
  3. 设置 VNet。

    $virtualNetwork | Set-AzVirtualNetwork
    

将 VNet 连接到中心

拥有 VNet 后,请按照本文中的步骤将 VNet 连接到 VWAN 中心:将 VNet 连接到虚拟 WAN 中心

配置 VPN 设备

若要配置本地 VPN 设备,请按照站点到站点:Azure 门户文章中的步骤进行操作。

清理资源

当不再需要所创建的资源时,请将其删除。 由于存在依赖关系,必须按特定顺序删除某些虚拟 WAN 资源。 大约需要 30 分钟才能完成删除。

按以下顺序删除所有网关实体:

  1. 声明变量。

    $resourceGroup = Get-AzResourceGroup -ResourceGroupName "TestRG" 
    $virtualWan = Get-AzVirtualWan -ResourceGroupName "TestRG" -Name "TestVWAN1"
    $virtualHub = Get-AzVirtualHub -ResourceGroupName "TestRG" -Name "Hub1"
    $vpnGateway = Get-AzVpnGateway -ResourceGroupName "TestRG" -Name "vpngw1"
    
  2. 删除 VPN 网关与 VPN 站点的连接。

    Remove-AzVpnConnection -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testConnection"
    
  3. 删除 VPN 网关。 删除 VPN 网关也会删除与其关联的所有 VPN ExpressRoute 连接。

    Remove-AzVpnGateway -ResourceGroupName "TestRG" -Name "vpngw1"
    
  4. 此时,可执行下面两项操作之一:

    • 可以删除整个资源组,以删除其中包含的所有剩余资源,包括中心、站点和虚拟 WAN。
    • 可选择删除资源组中的每个资源。

    删除整个资源组:

    Remove-AzResourceGroup -Name "TestRG"
    

    删除资源组中的每个资源:

    • 删除 VPN 站点。

      Remove-AzVpnSite -ResourceGroupName "TestRG" -Name "TestSite1"
      
    • 删除虚拟中心。

      Remove-AzVirtualHub -ResourceGroupName "TestRG" -Name "Hub1"
      
    • 删除虚拟 WAN。

      Remove-AzVirtualWan -Name "TestVWAN1" -ResourceGroupName "TestRG"
      

后续步骤

接下来,若要详细了解虚拟 WAN,请参阅虚拟 WAN 常见问题解答