规划和实施虚拟广域网(包括安全虚拟中心)
虚拟 WAN 通过 IPsec/IKE(IKEv1 和 IKEv2)VPN 连接来连接到 Azure 中的资源。 此类型的连接要求位于本地的 VPN 设备分配有一个面向外部的公共 IP 地址。
先决条件
确保拥有 Azure 订阅。 如果还没有 Azure 订阅,可以激活 MSDN 订户权益或注册获取免费帐户。
确定要用于虚拟中心专用地址空间的 IP 地址范围。 配置虚拟中心时,将使用此信息。 虚拟中心是虚拟 WAN 创建和使用的虚拟网络。 这是区域中虚拟 WAN 网络的核心。 地址空间范围必须符合特定的规则。
- 为中心指定的地址范围不能与连接到的任何现有虚拟网络重叠。
- 地址范围不能与连接到的本地地址范围重叠。
- 如果不熟悉本地网络配置中的 IP 地址范围,请咨询能够提供此类详细信息的人员。
- 为中心指定的地址范围不能与连接到的任何现有虚拟网络重叠。
Azure 门户或 Azure PowerShell
可以使用 Azure 门户或 Azure PowerShell cmdlet 创建到 Azure 虚拟 WAN 的站点到站点连接。 Cloud Shell 是免费的交互式 Shell,它预安装有常用 Azure 工具并将其配置为与帐户一起使用。
若要打开 Cloud Shell,只需从代码块的右上角选择“打开 Cloud Shell”即可。 也可以在单独的浏览器标签页中通过转到 https://shell.azure.com/powershell 打开 Cloud Shell。 选择“复制”以复制代码块,将其粘贴到 Cloud Shell 中,然后选择“Enter”键来运行这些代码。
还可以在计算机本地安装并运行 Azure PowerShell cmdlet。 PowerShell cmdlet 经常更新。 如果尚未安装最新版本,说明中指定的值可能会失败。 若要查找计算机上安装的 Azure PowerShell 的版本,请使用 Get-Module -ListAvailable Az cmdlet
。
登录
如果使用的是 Azure Cloud Shell,则在打开 Cloud Shell 后,系统会自动引导你登录自己的帐户。 无需运行 Connect-AzAccount
。 登录后,仍可根据需要使用 Get-AzSubscription
和 Select-AzSubscription
来更改订阅。
如果在本地运行 PowerShell,请使用提升的权限打开 PowerShell 控制台,然后连接到 Azure 帐户。 Connect-AzureRmAccount cmdlet 会提示输入凭据。 进行身份验证后,它会下载帐户设置,以便 Azure PowerShell 可以使用这些设置。 可以使用 Get-AzSubscription
和 Select-AzSubscription -SubscriptionName "Name of subscription"
更改订阅。
创建虚拟 WAN
创建虚拟 WAN 之前,必须先创建资源组来托管虚拟 WAN 或使用现有的资源组。 使用以下示例之一。
此示例在“美国东部”位置创建一个名为“TestRG”的新资源组。 如果要改用现有资源组,可以修改 $resourceGroup = Get-AzResourceGroup -ResourceGroupName "NameofResourceGroup"
命令,然后使用自己的值完成本练习中的步骤。
创建资源组。
New-AzResourceGroup -Location "East US" -Name "TestRG"
使用 New-AzVirtualWan cmdlet 创建虚拟 WAN。
$virtualWan = New-AzVirtualWan -ResourceGroupName TestRG -Name TestVWAN1 -Location "East US"
创建中心并配置中心设置
中心是一种虚拟网络,可包含适用于站点到站点、ExpressRoute 或点到站点功能的网关。 使用 New-AzVirtualHub
创建虚拟中心。 此示例使用指定的地址前缀和中心的位置创建一个名为“Hub1”的默认虚拟中心。
$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "TestRG" -Name "Hub1" -AddressPrefix "10.1.0.0/16" -Location "westus"
创建站点到站点 VPN 网关
本部分将创建一个站点到站点 VPN 网关,该网关与引用的虚拟中心位于同一位置。 创建 VPN 网关时,请指定所需的缩放单元。 创建网关需要大约 30 分钟时间。
如果关闭了 Azure Cloud 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 Cloud Shell 或连接超时,请重新声明虚拟 WAN 变量:
$virtualWan = Get-AzVirtualWAN -ResourceGroupName "TestRG" -Name "TestVWAN1"
使用 New-AzVpnSite cmdlet 创建 VPN 站点。
$vpnSite = New-AzVpnSite -ResourceGroupName "TestRG" -Name "TestSite1" -Location "westus" -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 站点连接到中心
在运行命令之前,可能需要重新声明以下变量:
$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。 请确保将示例中的值替换为用于环境的值。
创建 VNet。
$vnet = @{ Name = 'VNet1' ResourceGroupName = 'TestRG' Location = 'eastus' 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 连接到中心
通过以下步骤,你可以使用 PowerShell 将虚拟网络连接到虚拟中心。 也可以使用 Azure 门户来完成此任务。 针对要连接的每个 VNet 重复这些步骤。
在创建连接之前,请注意以下事项:
- 一个虚拟网络一次只能连接到一个虚拟中心。
- 为了将其连接到虚拟中心,远程虚拟网络不能有网关。
- 某些配置设置(如“传播静态路由”)目前只能在 Azure 门户中配置。
如果虚拟中心内存在 VPN 网关,则此操作以及连接的 VNet 上的任何其他写入操作都可能会导致点到站点客户端断开连接,以及站点到站点隧道的重新连接和边界网关协议 (BGP) 会话。
添加连接
声明现有资源(包括现有虚拟网络)的变量。
$resourceGroup = Get-AzResourceGroup -ResourceGroupName "TestRG" $virtualWan = Get-AzVirtualWan -ResourceGroupName "TestRG" -Name "TestVWAN1" $virtualHub = Get-AzVirtualHub -ResourceGroupName "TestRG" -Name "Hub1" $remoteVirtualNetwork = Get-AzVirtualNetwork -Name "VNet1" -ResourceGroupName "TestRG"
创建将虚拟网络与虚拟中心对等互连的连接。
New-AzVirtualHubVnetConnection -ResourceGroupName "TestRG" -VirtualHubName "Hub1" -Name "VNet1-connection" -RemoteVirtualNetwork $remoteVirtualNetwork
配置 VPN 设备
下载 VPN 配置
使用 VPN 设备配置文件来配置本地 VPN 设备。 下面是基本步骤:
在你的虚拟 WAN 页中,转到“中心”-> -“VPN (站点到站点)”页。>
在“VPN (站点到站点)”页面顶部,单击“下载 VPN 配置”。你会看到一系列消息,因为 Azure 会在资源组“microsoft-network-[location]”中新建一个存储帐户,其中,location 是 WAN 的位置。 还可以通过单击“使用现有”并添加启用了写入权限的有效 SAS URL 来添加现有存储帐户。
创建完文件后,请单击相应的链接以下载该文件。 这会在提供的 SAS url 位置新建一个具有 VPN 配置的文件。
将配置应用到本地 VPN 设备。 有关详细信息,请参阅本部分中的 VPN 设备配置。
将配置应用于 VPN 设备之后,你无需保留你已创建的存储帐户。
虚拟中心的虚拟网络的地址空间。
示例:
"AddressSpace":"10.1.0.0/24"
连接到虚拟中心的虚拟网络的地址空间。
示例:
"ConnectedSubnets":["10.2.0.0/16","10.3.0.0/16"]
虚拟中心 VPN 网关的 IP 地址空间。 由于每个 vpngateway 连接由采用主动 - 主动配置的 2 个隧道构成,因此,此文件中列出了这两个 IP 地址。 在此示例中,可以看到为每个站点指定了“Instance0”和“Instance1”。
示例:
"Instance0":"nnn.nn.nn.nnn"
"Instance1":"nnn.nn.nn.nnn"
公共 IP 地址:由 Azure 分配。
专用 IP 地址:由 Azure 分配。
默认 BGP IP 地址:由 Azure 分配。
自定义 BGP IP 地址:此字段保留给 APIPA(自动专用 IP 寻址)。 Azure 支持介于 169.254.21.* 与 169.254.22.* 范围之间的 BGP IP。 Azure 接受这些范围内的 BGP 连接,但会使用默认的 BGP IP 拨号连接。 用户可以为每个实例指定多个自定义 BGP IP 地址。 不应对这两个实例使用相同的自定义 BGP IP 地址。
VPN 设备配置文件
设备配置文件包含配置本地 VPN 设备时要使用的设置。 查看此文件时,请留意以下信息:
- vpnSiteConfiguration - 本部分表示当站点连接到虚拟 WAN 时设置的设备详细信息。 其中包括分支设备的名称和公共 IP 地址。
vpnSiteConnections - 此部分提供以下设置的信息:
- Vpngateway 连接配置详细信息,例如 BGP、预共享密钥等。PSK 是自动生成的预共享密钥。 始终可以在“概述”页中为自定义预共享密钥 (PSK) 编辑连接。
示例设备配置文件
{ "configurationVersion":{ "LastUpdatedTime":"2018-07-03T18:29:49.8405161Z", "Version":"r403583d-9c82-4cb8-8570-1cbbcd9983b5" }, "vpnSiteConfiguration":{ "Name":"testsite1", "IPAddress":"73.239.3.208" }, "vpnSiteConnections":[ { "hubConfiguration":{ "AddressSpace":"10.1.0.0/24", "Region":"West Europe", "ConnectedSubnets":[ "10.2.0.0/16", "10.3.0.0/16" ] }, "gatewayConfiguration":{ "IpAddresses":{ "Instance0":"104.45.18.186", "Instance1":"104.45.13.195" } }, "connectionConfiguration":{ "IsBgpEnabled":false, "PSK":"bkOWe5dPPqkx0DfFE3tyuP7y3oYqAEbI", "IPsecParameters":{ "SADataSizeInKilobytes":102400000, "SALifeTimeInSeconds":3600 } } } ] }, { "configurationVersion":{ "LastUpdatedTime":"2018-07-03T18:29:49.8405161Z", "Version":"1f33f891-e1ab-42b8-8d8c-c024d337bcac" }, "vpnSiteConfiguration":{ "Name":" testsite2", "IPAddress":"66.193.205.122" }, "vpnSiteConnections":[ { "hubConfiguration":{ "AddressSpace":"10.1.0.0/24", "Region":"West Europe" }, "gatewayConfiguration":{ "IpAddresses":{ "Instance0":"104.45.18.187", "Instance1":"104.45.13.195" } }, "connectionConfiguration":{ "IsBgpEnabled":false, "PSK":"XzODPyAYQqFs4ai9WzrJour0qLzeg7Qg", "IPsecParameters":{ "SADataSizeInKilobytes":102400000, "SALifeTimeInSeconds":3600 } } } ] }, { "configurationVersion":{ "LastUpdatedTime":"2018-07-03T18:29:49.8405161Z", "Version":"cd1e4a23-96bd-43a9-93b5-b51c2a945c7" }, "vpnSiteConfiguration":{ "Name":" testsite3", "IPAddress":"182.71.123.228" }, "vpnSiteConnections":[ { "hubConfiguration":{ "AddressSpace":"10.1.0.0/24", "Region":"West Europe" }, "gatewayConfiguration":{ "IpAddresses":{ "Instance0":"104.45.18.187", "Instance1":"104.45.13.195" } }, "connectionConfiguration":{ "IsBgpEnabled":false, "PSK":"YLkSdSYd4wjjEThR3aIxaXaqNdxUwSo9", "IPsecParameters":{ "SADataSizeInKilobytes":102400000, "SALifeTimeInSeconds":3600 } } } ] }
配置 VPN 设备
注意
如果正在使用虚拟 WAN 合作伙伴解决方案,则会自动进行 VPN 设备配置。 设备控制器将从 Azure 获取配置文件并应用于设备以设置与 Azure 的连接。 这意味着,无需知道如何手动配置 VPN 设备。
查看或编辑网关设置
可以随时查看和编辑 VPN 网关设置。 转到你的虚拟中心-“VPN (站点到站点)”并选择“查看/配置”。>
在“编辑 VPN 网关”页上,可以看到以下设置: