使用 PowerShell 创建与 Azure 虚拟 WAN 的站点到站点连接
本文介绍如何通过 PowerShell 使用虚拟 WAN,以通过 IPsec/IKE(IKEv1 和 IKEv2)VPN 连接来与 Azure 中的资源建立连接。 此类型的连接要求位于本地的 VPN 设备分配有一个面向外部的公共 IP 地址。 有关虚拟 WAN 的详细信息,请参阅虚拟 WAN 概述。 可按照 Azure 门户说明创建此配置。
先决条件
确定要用于虚拟中心专用地址空间的 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-AzSubscription
和 Select-AzSubscription -SubscriptionName "Name of subscription"
更改订阅。
创建虚拟 WAN
创建虚拟 WAN 之前,必须先创建资源组来托管虚拟 WAN 或使用现有的资源组。 使用以下示例之一。
此示例在中国东部 2 位置创建一个名为 TestRG 的新资源组。 如果要改用现有资源组,可以修改 $resourceGroup = Get-AzResourceGroup -ResourceGroupName "NameofResourceGroup"
命令,然后使用自己的值完成本练习中的步骤。
创建资源组。
New-AzResourceGroup -Location "chinaeast2" -Name "TestRG"
使用 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 分钟时间。
如果关闭了 Azure Power Shell 或连接超时,则可能需要再次声明 $virtualHub 的变量。
$virtualHub = Get-AzVirtualHub -ResourceGroupName "TestRG" -Name "Hub1"
使用 New-AzVpnGateway cmdlet 创建 VPN 网关。
New-AzVpnGateway -ResourceGroupName "TestRG" -Name "vpngw1" -VirtualHubId $virtualHub.Id -VpnGatewayScaleUnit 2
创建 VPN 网关后,可以使用以下示例进行查看。
Get-AzVpnGateway -ResourceGroupName "TestRG" -Name "vpngw1"
创建站点和连接
本部分将创建对应于物理位置和连接的站点。 这些站点包含本地 VPN 设备终结点,最多可以在虚拟 WAN 中为每个虚拟中心创建 1000 个站点。 如果有多个中心,则可以为每个中心创建 1000 个站点。
为 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"
创建链接来添加有关分支中物理链接的信息(包括有关链接速度的元数据、链接提供程序名称),并添加本地设备的公共 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"
创建 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)
创建站点链接连接。 该连接由 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 网关。
在运行命令之前,可能需要重新声明以下变量:
$virtualWan = Get-AzVirtualWAN -ResourceGroupName "TestRG" -Name "TestVWAN1" $vpnGateway = Get-AzVpnGateway -ResourceGroupName "TestRG" -Name "vpngw1" $vpnSite = Get-AzVpnSite -ResourceGroupName "TestRG" -Name "TestSite1"
将 VPN 站点连接到中心。
New-AzVpnConnection -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testConnection" -VpnSite $vpnSite -VpnSiteLinkConnection @($vpnSiteLinkConnection1, $vpnSiteLinkConnection2)
将 VNet 连接到中心
下一步是将中心连接到 VNet。 如果为此练习创建了一个新的资源组,则资源组中通常还没有虚拟网络 (VNet)。 以下步骤可帮助你创建 VNet(如果还没有)。 然后,可创建中心与 VNet 之间的连接。
创建虚拟网络
可使用以下示例值创建 VNet。 请确保将示例中的值替换为用于环境的值。 有关详细信息,请参阅快速入门:使用 Azure PowerShell 创建虚拟网络。
创建 VNet。
$vnet = @{ Name = 'VNet1' ResourceGroupName = 'TestRG' Location = 'chinaeast2' AddressPrefix = '10.21.0.0/16' } $virtualNetwork = New-AzVirtualNetwork @vnet
指定子网设置。
$subnet = @{ Name = 'Subnet-1' VirtualNetwork = $virtualNetwork AddressPrefix = '10.21.0.0/24' } $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
设置 VNet。
$virtualNetwork | Set-AzVirtualNetwork
将 VNet 连接到中心
拥有 VNet 后,请按照本文中的步骤将 VNet 连接到 VWAN 中心:将 VNet 连接到虚拟 WAN 中心。
配置 VPN 设备
若要配置本地 VPN 设备,请按照站点到站点:Azure 门户文章中的步骤进行操作。
清理资源
当不再需要所创建的资源时,请将其删除。 由于存在依赖关系,必须按特定顺序删除某些虚拟 WAN 资源。 大约需要 30 分钟才能完成删除。
按以下顺序删除所有网关实体:
声明变量。
$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"
删除 VPN 网关与 VPN 站点的连接。
Remove-AzVpnConnection -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testConnection"
删除 VPN 网关。 删除 VPN 网关也会删除与其关联的所有 VPN ExpressRoute 连接。
Remove-AzVpnGateway -ResourceGroupName "TestRG" -Name "vpngw1"
此时,可执行下面两项操作之一:
- 可以删除整个资源组,以删除其中包含的所有剩余资源,包括中心、站点和虚拟 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 常见问题解答。