创建虚拟网络对等互连 - 不同的部署模型,相同的订阅

本文介绍如何在通过不同部署模型创建的虚拟网络间创建虚拟网络对等互连。 这两个虚拟网络位于同一订阅。 在两个虚拟网络之间建立对等互连可让不同虚拟网络中的资源以相同的带宽和延迟彼此通信,就像这些资源位于同一个虚拟网络中一样。 了解有关虚拟网络对等互连的详细信息。

创建虚拟网络对等互连的步骤有所不同,具体取决于虚拟网络是否位于相同订阅,以及创建虚拟网络的 Azure 部署模型。 单击下表中的方案,了解如何采用其他方案创建虚拟网络对等互连:

Azure 部署模型 Azure 订阅
均为资源管理器模型 相同
均为资源管理器模型 不同
一个为资源管理器模型,一个为经典模型 不同

不能在通过经典部署模型部署的两个虚拟网络之间创建对等互连。 只能在同一 Azure 区域中的两个虚拟网络之间创建虚拟网络对等互连。 如需连接均通过经典部署模型创建的虚拟网络或是位于不同 Azure 区域中的虚拟网络,可使用 Azure VPN 网关来连接虚拟网络。

可使用 Azure 门户、Azure 命令行接口 (CLI) 或 Azure PowerShell 创建虚拟网络对等互连。 单击以前的任何工具链接即可直接转到使用所选工具创建虚拟网络对等互连的步骤。

创建对等互连 - 门户

  1. 登录到 Azure 门户。 用于登录的帐户必须拥有创建虚拟网络对等互连的必要权限。 有关详细信息,请参阅本文的权限部分。
  2. 依次单击“+ 新建”、“网络”、“虚拟网络”。
  3. 在“创建虚拟网络”边栏选项卡中,为以下设置输入或选择值,然后单击“创建”:
    • 名称:myVnet1
    • 地址空间:10.0.0.0/16
    • 子网名称:默认值
    • 子网地址范围:10.0.0.0/24
    • 订阅:选择订阅
    • 资源组:选择“新建”并输入 myResourceGroup
    • 位置:中国东部
  4. 单击“+ 新建”。 在“搜索 Marketplace”框中,键入“虚拟网络”。 单击搜索结果中出现的“虚拟网络”。
  5. 在“虚拟网络”边栏选项卡的“选择部署模型”框中选择“经典”,单击“创建”。
  6. 在“创建虚拟网络”边栏选项卡中,为以下设置输入或选择值,然后单击“创建”:
    • 名称:myVnet2
    • 地址空间:10.1.0.0/16
    • 子网名称:默认值
    • 子网地址范围:10.1.0.0/24
    • 订阅:选择订阅
    • 资源组:选择“使用现有资源组”,然后选择“myResourceGroup”
    • 位置:中国东部
  7. 在门户顶部的“搜索资源”框中键入 myResourceGroup。 当“myResourceGroup”出现在搜索结果中时,请单击它。 随后将显示 myresourcegroup 资源组的边栏选项卡。 该资源组包含前面步骤中创建的两个虚拟网络。
  8. 单击“myVNet1”。
  9. 在显示的“myVnet1”边栏选项卡中,单击左侧垂直选项列表中的“对等互连”。
  10. 在显示的“myVnet1 - 对等互连”边栏选项卡中,单击“+ 添加”
  11. 在显示的“添加对等互连”边栏选项卡中,输入或选择以下选项,然后单击“确定”:
    • 名称:myVnet1ToMyVnet2
    • 虚拟网络部署模型:选择“经典”。
    • 订阅:选择订阅
    • 虚拟网络:单击“选择虚拟网络”,然后单击“myVnet2”。
    • 允许虚拟网络访问:确保选择“启用”。 本教程不使用其他任何设置。 若要了解所有对等互连设置,请阅读管理虚拟网络对等互连
  12. 在上一步骤中单击“确定”后,“添加对等互连”边栏选项卡将会关闭,并再次出现“myVnet1 - 对等互连”边栏选项卡。 几秒钟后,创建的对等互连将显示在该边栏选项卡中。 创建的 myVnet1ToMyVnet2 对等互连的“对等互连状态”列中列出了“已连接”。

    现已建立对等互连。 在任一虚拟网络中创建的任何 Azure 资源现在都可通过其 IP 地址相互通信。 如果为虚拟网络使用默认的 Azure 名称解析,则虚拟网络中的资源无法跨虚拟网络解析名称。 若要跨对等互连中的虚拟网络解析名称,必须创建自己的 DNS 服务器。 了解如何使用自己的 DNS 服务器进行名称解析

  13. 可选:尽管本教程未介绍如何创建虚拟机,但你可以在每个虚拟网络中创建一个虚拟机并将其相互连接,以验证连接性。
  14. 可选:若要删除在本教程中创建的资源,请完成本文删除资源部分所述步骤。

创建对等互连 - Azure CLI

  1. 安装 Azure CLI 1.0,创建虚拟网络(经典)。
  2. 使用 azure login -e AzureChinaCloud 命令打开命令会话并登录 Azure。
  3. 输入 azure config mode asm 命令,在服务管理模式下运行 CLI 命令。
  4. 输入以下命令创建虚拟网络(经典):

    azure network vnet create --vnet myVnet2 --address-space 10.1.0.0 --cidr 16 --location "China East"
    
  5. 创建资源组和虚拟网络(资源管理器)。 可使用 CLI 1.0 或 2.0(安装)。 本教程中使用 CLI 2.0 创建虚拟网络(资源管理器),因为必须使用 2.0 来创建对等互连。 从安装有 CLI 2.0.4 或更高版本的本地计算机执行以下 bash CLI 脚本。 有关在 Windows 客户端上运行 bash CLI 脚本的选项,请参阅在 Windows 中运行 Azure CLI。 还可使用 Azure Cloud Shell 运行该脚本。 Azure Cloud Shell 是可直接在 Azure 门户中运行的免费 Bash shell。 它预安装有 Azure CLI 并将其配置为与你的帐户一起使用。 单击下面脚本中的“试用”按钮,调用一个可用于登录 Azure 帐户的 Cloud Shell。 若要执行脚本,请单击“复制”按钮,将内容粘贴到 Cloud Shell,按 Enter

    #!/bin/bash
    
    # Create a resource group.
    az group create \
      --name myResourceGroup \
      --location chinaeast
    
    # Create the virtual network (Resource Manager).
    az network vnet create \
      --name myVnet1 \
      --resource-group myResourceGroup \
      --location chinaeast \
      --address-prefix 10.0.0.0/16
    
  6. 在通过不同部署模型创建的两个虚拟网络之间创建虚拟网络对等互连。 将以下脚本复制到电脑上的文本编辑器。 将 <subscription id> 替换为订阅 ID。如果不知道订阅 ID,请输入 az account show 命令。 输出中的 id 值就是订阅 ID。将修改后的脚本粘贴到 CLI 会话,按 Enter

    # Get the id for VNet1.
    vnet1Id=$(az network vnet show \
      --resource-group myResourceGroup \
      --name myVnet1 \
      --query id --out tsv)
    
    # Peer VNet1 to VNet2.
    az network vnet peering create \
      --name myVnet1ToMyVnet2 \
      --resource-group myResourceGroup \
      --vnet-name myVnet1 \
      --remote-vnet-id /subscriptions/<subscription id>/resourceGroups/Default-Networking/providers/Microsoft.ClassicNetwork/virtualNetworks/myVnet2 \
      --allow-vnet-access
    
  7. 执行该脚本后,请检查虚拟网络(资源管理器)的对等互连。 复制以下命令,将其粘贴到 CLI 会话,按 Enter

    az network vnet peering list \
      --resource-group myResourceGroup \
      --vnet-name myVnet1 \
      --output table
    

    该输出会在 PeeringState 列中显示“已连接”。

    在任一虚拟网络中创建的任何 Azure 资源现在都可通过其 IP 地址相互通信。 如果为虚拟网络使用默认的 Azure 名称解析,则虚拟网络中的资源无法跨虚拟网络解析名称。 若要跨对等互连中的虚拟网络解析名称,必须创建自己的 DNS 服务器。 了解如何使用自己的 DNS 服务器进行名称解析

  8. 可选:尽管本教程未介绍如何创建虚拟机,但你可以在每个虚拟网络中创建一个虚拟机并将其相互连接,以验证连接性。
  9. 可选:若要删除在本教程中创建的资源,请完成本文的删除资源中所述的步骤。

创建对等互连 - PowerShell

  1. 安装最新版本的 PowerShell AzureAzureRm 模块。 如果不熟悉 Azure PowerShell,请参阅 Azure PowerShell 概述
  2. 启动 PowerShell 会话。
  3. 在 PowerShell 中,输入 Add-AzureAccount -Environment AzureChinaCloud 命令登录 Azure。
  4. 若要通过 PowerShell 创建虚拟网络(经典),必须新建网络配置文件,或修改现有网络配置文件。 了解如何导出、更新和导入网络配置文件。 该文件应包括本教程中使用的虚拟网络的以下 VirtualNetworkSite 元素:

    <VirtualNetworkSite name="myVnet2" Location="China East">
      <AddressSpace>
        <AddressPrefix>10.1.0.0/16</AddressPrefix>
      </AddressSpace>
      <Subnets>
        <Subnet name="default">
          <AddressPrefix>10.1.0.0/24</AddressPrefix>
        </Subnet>
      </Subnets>
    </VirtualNetworkSite>
    

    Warning

    导入更改的网络配置文件会导致订阅中现有虚拟网络(经典)发生变化。 请确保只添加之前的虚拟网络,且不会从订阅中更改或删除任何现有虚拟网络。

  5. 输入 login-azurermaccount 命令,登录 Azure,创建虚拟网络(资源管理器)。 用于登录的帐户必须拥有创建虚拟网络对等互连的必要权限。 有关详细信息,请参阅本文的权限部分。
  6. 创建资源组和虚拟网络(资源管理器)。 复制该脚本,将其粘贴到 PowerShell,按 Enter

    # Create a resource group.
      New-AzureRmResourceGroup -Name myResourceGroup -Location chinaeast
    
    # Create the virtual network (Resource Manager).
      $vnet1 = New-AzureRmVirtualNetwork `
      -ResourceGroupName myResourceGroup `
      -Name 'myVnet1' `
      -AddressPrefix '10.0.0.0/16' `
      -Location chinaeast
    
  7. 在通过不同部署模型创建的两个虚拟网络之间创建虚拟网络对等互连。 将以下脚本复制到电脑上的文本编辑器。 将 <subscription id> 替换为订阅 ID。如果不知道订阅 ID,请输入 Get-AzureRmSubscription 命令查看。 返回的输出中的 Id 值就是订阅 ID。 若要执行该脚本,请从文本编辑器中复制修改后的脚本,在 PowerShell 会话中右键单击,按 Enter

    # Peer VNet1 to VNet2.
    Add-AzureRmVirtualNetworkPeering `
      -Name myVnet1ToMyVnet2 `
      -VirtualNetwork $vnet1 `
      -RemoteVirtualNetworkId /subscriptions/<subscription Id>/resourceGroups/Default-Networking/providers/Microsoft.ClassicNetwork/virtualNetworks/myVnet2
    
  8. 执行该脚本后,请检查虚拟网络(资源管理器)的对等互连。 复制以下命令,将其粘贴到 PowerShell 会话,按 Enter

    Get-AzureRmVirtualNetworkPeering `
      -ResourceGroupName myResourceGroup `
      -VirtualNetworkName myVnet1 `
      | Format-Table VirtualNetworkName, PeeringState
    

    该输出会在 PeeringState 列中显示“已连接”。

    在任一虚拟网络中创建的任何 Azure 资源现在都可通过其 IP 地址相互通信。 如果为虚拟网络使用默认的 Azure 名称解析,则虚拟网络中的资源无法跨虚拟网络解析名称。 若要跨对等互连中的虚拟网络解析名称,必须创建自己的 DNS 服务器。 了解如何使用自己的 DNS 服务器进行名称解析

  9. 可选:尽管本教程未介绍如何创建虚拟机,但你可以在每个虚拟网络中创建一个虚拟机并将其相互连接,以验证连接性。

  10. 可选:若要删除在本教程中创建的资源,请完成本文的删除资源中所述的步骤。

权限

用于创建虚拟网络对等互连的帐户必须具有所需的角色或权限。 例如,如果对等互连两个名为 myVnet1 和 myVnet2 的虚拟网络,则对于每个虚拟网络,必须为帐户分配以下最低角色或权限:

虚拟网络 部署模型 角色 权限
myVnet1 Resource Manager 网络参与者 Microsoft.Network/virtualNetworks/virtualNetworkPeerings/write
经典 经典网络参与者 不适用
myVnet2 Resource Manager 网络参与者 Microsoft.Network/virtualNetworks/peer
经典 经典网络参与者 Microsoft.ClassicNetwork/virtualNetworks/peer

详细了解内置角色以及将特定的权限分配到自定义角色(仅限 Resource Manager)。

删除资源

完成本教程后,可能需要删除本教程中创建的资源,以免产生使用费。 删除资源组会删除其中包含的所有资源。

Azure 门户

  1. 在门户的搜索框中,输入 myResourceGroup。 在搜索结果中,单击“myResourceGroup”。
  2. 在“myResourceGroup”边栏选项卡中,单击“删除”图标。
  3. 若要确认删除,请在“键入资源组名称”框中输入 myResourceGroup,然后单击“删除”。

Azure CLI

  1. 通过 Azure CLI 2.0 借助以下命令删除虚拟网络(资源管理器):

    az group delete --name myResourceGroup --yes
    
  2. 通过 Azure CLI 1.0 借助以下命令删除虚拟网络(经典):

    azure config mode asm
    
    azure network vnet delete --vnet myVnet2 --quiet
    

PowerShell

  1. 输入以下命令,删除虚拟网络(资源管理器):

    Remove-AzureRmResourceGroup -Name myResourceGroup -Force
    
  2. 若要通过 PowerShell 删除虚拟网络(经典),必须修改现有网络配置文件。 了解如何导出、更新和导入网络配置文件。 删除本教程中使用的虚拟网络的以下 VirtualNetworkSite 元素:

    <VirtualNetworkSite name="myVnet2" Location="China East">
      <AddressSpace>
        <AddressPrefix>10.1.0.0/16</AddressPrefix>
      </AddressSpace>
      <Subnets>
        <Subnet name="default">
          <AddressPrefix>10.1.0.0/24</AddressPrefix>
        </Subnet>
      </Subnets>
    </VirtualNetworkSite>
    

    Warning

    导入更改的网络配置文件会导致订阅中现有虚拟网络(经典)发生变化。 请确保只删除之前的虚拟网络,且不会从订阅中更改或删除任何其他现有虚拟网络。

后续步骤