你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

将站点到站点连接添加到包含现有 VPN 网关连接的 VNet(经典)

本文逐步讲解如何使用 PowerShell 将站点到站点 (S2S) 连接添加到包含使用经典(旧的)部署模型的现有连接的 VPN 网关。 这种类型的连接有时称为“多站点”配置。 本文中的步骤不适用于 ExpressRoute/站点到站点共存连接配置。

本文中的步骤适用于经典(旧的)部署模型,不适用于当前部署模型“资源管理器”。 除非就是希望使用经典部署模型,否则建议使用本文中提到的资源管理器版本

注意

本文为经典(旧的)部署模型而写。 建议你改用最新的 Azure 部署模型。 资源管理器部署模型是最新的部署模型,提供比经典部署模型更多的选项和更强的功能兼容性。 请参阅了解部署模型和资源状态,了解这两种部署模型之间的差异。

如果要使用本文提到的其他版本,请使用左侧窗格中的目录。

关于连接

可以将多个本地站点连接到单个虚拟网络。 在构建混合云解决方案时,这种做法特别有用。 创建到 Azure 虚拟网络网关的多站点连接时,其操作与创建其他站点到站点连接的操作类似。 事实上,可以使用现有的 Azure VPN 网关,只要该网关是动态的(基于路由)即可。

如果已经有连接到虚拟网络的静态网关,可以将网关类型更改为动态,而不需要为了适应多站点而重建虚拟网络。 在更改路由类型之前,请确保本地 VPN 网关支持基于路由的 VPN 配置。

Diagram showing classic multi-site connection architecture.

考虑的要点

不可通过门户更改此虚拟网络。 需更改网络配置文件,而不是使用门户。 若在门户中进行更改,更改将覆盖此虚拟网络的多站点引用设置。

在完成多站点过程后,便可轻松自如地使用网络配置文件。 但是,如果有多个人在处理网络配置,需要确保每个人都知道这个限制。 这并不意味着完全不能使用门户。 除了无法对此特定虚拟网络进行配置更改以外,可以使用它来完成其他任何操作。

开始之前

在开始配置之前,请确认满足以下条件:

  • 每个本地位置都有兼容的 VPN 硬件。 查看关于用于虚拟网络连接的 VPN 设备,以确认要使用的设备是否是已知兼容的设备。
  • 每个 VPN 设备都有一个面向外部的公共 IPv4 IP 地址。 IP 地址不得位于 NAT 之后。 必须要这样做。
  • 有人能够熟练地配置 VPN 硬件。 必须非常了解如何配置 VPN 设备,或者与具有此能力的人员合作。
  • 要用于虚拟网络(如果尚未创建)的 IP 地址范围。
  • 要连接到的每个本地网络站点的 IP 地址范围。 需确保要连接到的每个本地网络站点的 IP 地址范围不重叠。 否则,门户或 REST API 将拒绝上传配置。
    例如,如果两个本地网络站点都包含 IP 地址范围 10.2.3.0/24,并且某个包包含目标地址 10.2.3.3,则 Azure 将不知道要将该包发送到哪个站点,因为地址范围是重叠的。 为了防止路由问题,Azure 不允许上传具有重叠范围的配置文件。

使用 Azure PowerShell

使用经典部署模型时,会无法使用 Azure Cloud Shell。 相反,用户必须在计算机上本地安装最新版本的 Service Management (SM) PowerShell cmdlet。 这些 cmdlet 不同于 AzureRM 或 Az cmdlet。 要安装 SM cmdlet,请参阅“安装服务管理 cmdlet”。 有关一般 Azure PowerShell 的详细信息,请参阅 Azure PowerShell 文档

1. 创建站点到站点 VPN

如果已有使用动态路由网关的站点到站点 VPN,那太好了! 可以转到导出虚拟网络配置设置。 否则,请执行以下操作:

如果已有一个站点到站点虚拟网络,但该虚拟网络使用静态(基于策略的)路由网关:

  1. 将网关类型更改为动态路由。 多站点 VPN 需要动态(也称为基于路由的)路由网关。 要更改网关类型,首先需要删除现有网关,然后创建新网关。
  2. 配置新网关并创建 VPN 隧道。 有关说明,请参阅指定 SKU 和 VPN 类型。 请确保将“路由类型”指定为“动态”。

如果没有站点到站点虚拟网络:

  1. 按照以下说明创建站点到站点虚拟网络:创建使用站点到站点 VPN 连接的虚拟网络
  2. 按照以下说明配置动态路由网关:配置 VPN 网关。 请务必为网关类型选择“动态路由”。

2. 导出网络配置文件

使用提升的权限打开 PowerShell 控制台。 若要切换到服务管理,请使用以下命令:

azure config mode asm

连接到帐户。 使用下面的示例来帮助连接:

Add-AzureAccount

通过运行以下命令,导出 Azure 网络配置文件。 如有必要,可以将文件的导出位置更改为其他位置。

Get-AzureVNetConfig -ExportToFile C:\AzureNet\NetworkConfig.xml

3. 打开网络配置文件

打开上一步骤中下载的网络配置文件。 使用偏好的任何 xml 编辑器。 该文件的内容类似于:

<NetworkConfiguration xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/ServiceHosting/2011/07/NetworkConfiguration">
  <VirtualNetworkConfiguration>
    <LocalNetworkSites>
      <LocalNetworkSite name="Site1">
        <AddressSpace>
          <AddressPrefix>10.0.0.0/16</AddressPrefix>
          <AddressPrefix>10.1.0.0/16</AddressPrefix>
        </AddressSpace>
        <VPNGatewayAddress>131.2.3.4</VPNGatewayAddress>
      </LocalNetworkSite>
      <LocalNetworkSite name="Site2">
        <AddressSpace>
          <AddressPrefix>10.2.0.0/16</AddressPrefix>
          <AddressPrefix>10.3.0.0/16</AddressPrefix>
        </AddressSpace>
        <VPNGatewayAddress>131.4.5.6</VPNGatewayAddress>
      </LocalNetworkSite>
    </LocalNetworkSites>
    <VirtualNetworkSites>
      <VirtualNetworkSite name="VNet1" AffinityGroup="USWest">
        <AddressSpace>
          <AddressPrefix>10.20.0.0/16</AddressPrefix>
          <AddressPrefix>10.21.0.0/16</AddressPrefix>
        </AddressSpace>
        <Subnets>
          <Subnet name="FE">
            <AddressPrefix>10.20.0.0/24</AddressPrefix>
          </Subnet>
          <Subnet name="BE">
            <AddressPrefix>10.20.1.0/24</AddressPrefix>
          </Subnet>
          <Subnet name="GatewaySubnet">
            <AddressPrefix>10.20.2.0/29</AddressPrefix>
          </Subnet>
        </Subnets>
        <Gateway>
          <ConnectionsToLocalNetwork>
            <LocalNetworkSiteRef name="Site1">
              <Connection type="IPsec" />
            </LocalNetworkSiteRef>
          </ConnectionsToLocalNetwork>
        </Gateway>
      </VirtualNetworkSite>
    </VirtualNetworkSites>
  </VirtualNetworkConfiguration>
</NetworkConfiguration>

4. 添加多个站点引用

在添加或删除站点引用信息时,会对 ConnectionsToLocalNetwork/LocalNetworkSiteRef 进行配置更改。 添加新的本地站点引用会触发 Azure 来创建新隧道。 在以下示例中,网络配置适用于单站点连接。 更改完后,请保存该文件。

  <Gateway>
    <ConnectionsToLocalNetwork>
      <LocalNetworkSiteRef name="Site1"><Connection type="IPsec" /></LocalNetworkSiteRef>
    </ConnectionsToLocalNetwork>
  </Gateway>

若要添加其他站点引用(创建多站点配置),只需添加其他“LocalNetworkSiteRef”行,如下例所示:

  <Gateway>
    <ConnectionsToLocalNetwork>
      <LocalNetworkSiteRef name="Site1"><Connection type="IPsec" /></LocalNetworkSiteRef>
      <LocalNetworkSiteRef name="Site2"><Connection type="IPsec" /></LocalNetworkSiteRef>
    </ConnectionsToLocalNetwork>
  </Gateway>

5. 导入网络配置文件

导入网络配置文件。 在导入这个包含更改的文件时,会添加新的隧道。 这些隧道使用前面创建的动态网关。 可以使用 PowerShell 导入文件。

6. 下载密钥

添加新的隧道后,使用 PowerShell cmdlet“Get-AzureVNetGatewayKey”获取每个隧道的 IPsec/IKE 预共享密钥。

例如:

Get-AzureVNetGatewayKey –VNetName "VNet1" –LocalNetworkSiteName "Site1"
Get-AzureVNetGatewayKey –VNetName "VNet1" –LocalNetworkSiteName "Site2"

如果需要,也可以使用获取虚拟网络网关共享密钥 REST API 来获取预共享密钥。

7. 验证连接

检查多站点隧道状态。 下载每个隧道的密钥后,需要验证连接。 使用“Get-AzureVnetConnection”获取虚拟网络隧道的列表,如下例所示。 VNet1 是 VNet 的名称。

Get-AzureVnetConnection -VNetName VNET1

示例返回:

    ConnectivityState         : Connected
    EgressBytesTransferred    : 661530
    IngressBytesTransferred   : 519207
    LastConnectionEstablished : 5/2/2014 2:51:40 PM
    LastEventID               : 23401
    LastEventMessage          : The connectivity state for the local network site 'Site1' changed from Not Connected to Connected.
    LastEventTimeStamp        : 5/2/2014 2:51:40 PM
    LocalNetworkSiteName      : Site1
    OperationDescription      : Get-AzureVNetConnection
    OperationId               : 7f68a8e6-51e9-9db4-88c2-16b8067fed7f
    OperationStatus           : Succeeded

    ConnectivityState         : Connected
    EgressBytesTransferred    : 789398
    IngressBytesTransferred   : 143908
    LastConnectionEstablished : 5/2/2014 3:20:40 PM
    LastEventID               : 23401
    LastEventMessage          : The connectivity state for the local network site 'Site2' changed from Not Connected to Connected.
    LastEventTimeStamp        : 5/2/2014 2:51:40 PM
    LocalNetworkSiteName      : Site2
    OperationDescription      : Get-AzureVNetConnection
    OperationId               : 7893b329-51e9-9db4-88c2-16b8067fed7f
    OperationStatus           : Succeeded

后续步骤

若要了解有关 VPN 网关的详细信息,请参阅关于 VPN 网关