规划和实施虚拟广域网(包括安全虚拟中心)

已完成

虚拟 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-AzSubscriptionSelect-AzSubscription 来更改订阅。

如果在本地运行 PowerShell,请使用提升的权限打开 PowerShell 控制台,然后连接到 Azure 帐户。 Connect-AzureRmAccount cmdlet 会提示输入凭据。 进行身份验证后,它会下载帐户设置,以便 Azure PowerShell 可以使用这些设置。 可以使用 Get-AzSubscriptionSelect-AzSubscription -SubscriptionName "Name of subscription" 更改订阅。

创建虚拟 WAN

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

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

  1. 创建资源组。

    New-AzResourceGroup -Location "East US" -Name "TestRG"
    
    
    
    
    
    
    
    
  2. 使用 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 分钟时间。

  1. 如果关闭了 Azure Cloud 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 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)
    
    
    
    
    
    
    
    
  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 站点连接到中心

  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。 请确保将示例中的值替换为用于环境的值。

  1. 创建 VNet。

    $vnet = @{ Name = 'VNet1' ResourceGroupName = 'TestRG' Location = 'eastus' 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 连接到中心

通过以下步骤,你可以使用 PowerShell 将虚拟网络连接到虚拟中心。 也可以使用 Azure 门户来完成此任务。 针对要连接的每个 VNet 重复这些步骤。

在创建连接之前,请注意以下事项:

  • 一个虚拟网络一次只能连接到一个虚拟中心。
  • 为了将其连接到虚拟中心,远程虚拟网络不能有网关。
  • 某些配置设置(如“传播静态路由”)目前只能在 Azure 门户中配置。

如果虚拟中心内存在 VPN 网关,则此操作以及连接的 VNet 上的任何其他写入操作都可能会导致点到站点客户端断开连接,以及站点到站点隧道的重新连接和边界网关协议 (BGP) 会话。

添加连接

  1. 声明现有资源(包括现有虚拟网络)的变量。

    $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"
    
    
    
    
    
    
    
    
  2. 创建将虚拟网络与虚拟中心对等互连的连接。

    New-AzVirtualHubVnetConnection -ResourceGroupName "TestRG" -VirtualHubName "Hub1" -Name "VNet1-connection" -RemoteVirtualNetwork $remoteVirtualNetwork
    
    
    
    
    
    
    
    

配置 VPN 设备

下载 VPN 配置

使用 VPN 设备配置文件来配置本地 VPN 设备。 下面是基本步骤:

  1. 在你的虚拟 WAN 页中,转到“中心”-> -“VPN (站点到站点)”页。>

  2. 在“VPN (站点到站点)”页面顶部,单击“下载 VPN 配置”。你会看到一系列消息,因为 Azure 会在资源组“microsoft-network-[location]”中新建一个存储帐户,其中,location 是 WAN 的位置。 还可以通过单击“使用现有”并添加启用了写入权限的有效 SAS URL 来添加现有存储帐户。

  3. 创建完文件后,请单击相应的链接以下载该文件。 这会在提供的 SAS url 位置新建一个具有 VPN 配置的文件。

  4. 将配置应用到本地 VPN 设备。 有关详细信息,请参阅本部分中的 VPN 设备配置。

  5. 将配置应用于 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 网关”页上,可以看到以下设置:

屏幕截图显示了如何编辑虚拟专用网络网关设置。