创建虚拟网络对等互连 - 资源管理器、不同订阅和 Microsoft Entra 租户
本教程介绍如何在通过 Resource Manager 创建的虚拟网络间创建虚拟网络对等互连。 虚拟网络存在于可能属于不同 Microsoft Entra 租户的不同订阅中。 在两个虚拟网络之间建立对等互连可让不同虚拟网络中的资源以相同的带宽和延迟彼此通信,就像这些资源位于同一个虚拟网络中一样。 了解有关虚拟网络对等互连的详细信息。
根据虚拟网络是位于相同还是不同的订阅中,创建虚拟网络对等互连的步骤会有所不同。 使用经典部署模型创建的对等网络的步骤会有所不同。 有关部署模型的详细信息,请参阅 Azure 部署模型。
选择下表中的方案,了解如何采用其他方案创建虚拟网络对等互连:
不能在通过经典部署模型部署的两个虚拟网络之间创建虚拟网络对等互连。 如需连接两个通过经典部署模型创建的虚拟网络,可使用 Azure VPN 网关来连接它们。
本教程将在同一区域中的虚拟网络之间建立对等互连。 还可以将不同受支持的区域中的虚拟网络对等互连。 请在对等互连虚拟网络之前让自己熟悉对等互连的要求和约束。
先决条件
Azure 帐户或具有两个活动订阅的帐户。 创建帐户。
在两个订阅中都具有权限的 Azure 帐户,或者在每个订阅中都具有创建虚拟网络对等互连的权限的帐户。 有关权限列表,请参阅虚拟网络对等互连权限。
若要分离管理属于每个租户的网络的职责,请将每个租户中的用户添加为对方租户中的来宾,并为其分配虚拟网络的网络参与者角色。 如果虚拟网络位于不同的订阅和 Active Directory 租户中,则此过程适用。
若要在不打算单独管理属于每个租户的网络时建立网络对等互连,请将租户 A 中的用户添加为对方租户中的来宾。 然后,为其分配网络参与者角色,以启动和连接每个订阅的网络对等互连。 有了这些权限,用户就可以从每个订阅建立网络对等互连。
有关来宾用户的详细信息,请参阅在 Azure 门户中添加 Microsoft Entra B2B 协作用户。
每位用户都必须接受来自对立的 Microsoft Entra 租户的宾客用户邀请。
在本地安装了 Azure PowerShell。
登录到 Azure PowerShell,并确保已选择要使用此功能的订阅。 有关详细信息,请参阅使用 Azure PowerShell 登录。
请确保 Az.Network
模块是 4.3.0 或更高版本。 若要验证已安装的模块,请使用命令 Get-InstalledModule -Name "Az.Network"
。 如果模块需要更新,必要时请使用命令 Update-Module -Name Az.Network
。
如果选择在本地安装并使用 PowerShell,则本文需要 Azure PowerShell 模块 5.4.1 或更高版本。 运行 Get-Module -ListAvailable Az
查找已安装的版本。 如果需要进行升级,请参阅 Install Azure PowerShell module(安装 Azure PowerShell 模块)。 如果在本地运行 PowerShell,则还需运行 Connect-AzAccount -Environment AzureChinaCloud
以创建与 Azure 的连接。
Azure 帐户或具有两个活动订阅的帐户。 创建帐户。
在两个订阅中都具有权限的 Azure 帐户,或者在每个订阅中都具有创建虚拟网络对等互连的权限的帐户。 有关权限列表,请参阅虚拟网络对等互连权限。
若要分离管理属于每个租户的网络的职责,请将每个租户中的用户添加为对方租户中的来宾,并为其分配虚拟网络的网络参与者角色。 如果虚拟网络位于不同的订阅和 Active Directory 租户中,则此过程适用。
若要在不打算单独管理属于每个租户的网络时建立网络对等互连,请将租户 A 中的用户添加为对方租户中的来宾。 然后,为其分配网络参与者角色,以启动和连接每个订阅的网络对等互连。 有了这些权限,用户就可以从每个订阅建立网络对等互连。
有关来宾用户的详细信息,请参阅在 Azure 门户中添加 Microsoft Entra B2B 协作用户。
每位用户都必须接受来自对立的 Microsoft Entra 租户的宾客用户邀请。
如需在本地运行 CLI 参考命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI。
本操作指南文章需要 2.31.0 版或更高版本的 Azure CLI。
以下步骤说明如何将不同订阅和 Microsoft Entra 租户中的虚拟网络对等互连。
可以使用在两个订阅中具有权限的同一帐户,也可以对每个订阅使用单独的帐户来设置对等互连。 在两个订阅中都具有权限的帐户可以完成所有步骤,而无需注销和登录到门户并分配权限。
本文中的步骤使用以下资源和帐户示例:
用户帐户 |
资源组 |
订阅 |
虚拟网络 |
user-1 |
test-rg |
subscription-1 |
vnet-1 |
user-2 |
test-rg-2 |
subscription-2 |
vnet-2 |
创建虚拟网络 - vnet-1
注意
如果使用单个帐户来完成这些步骤,则无需执行注销门户和向虚拟网络分配其他用户权限的步骤。
下面的过程创建虚拟网络及资源子网。
在门户中,搜索并选择“虚拟网络”。
在“虚拟网络”页面上,选择“+ 创建”。
在创建虚拟网络的基本信息选项卡上输入或选择以下信息:
设置 |
值 |
项目详细信息 |
|
订阅 |
选择订阅。 |
资源组 |
选择“新建”。 在“名称”中输入“test-rg”。 选择“确定”。 |
实例详细信息 |
|
名称 |
输入“vnet-1”。 |
区域 |
选择“美国东部 2”。 |
选择“下一步”,转到“安全性”选项卡。
选择下一步,转到IP 地址选项卡。
在“子网”的地址空间框中,选择“默认”子网。
在编辑子网中,输入或选择以下信息:
设置 |
值 |
子网详细信息 |
|
子网模板 |
保留默认值“默认”。 |
名称 |
输入“subnet-1”。 |
开始地址 |
保留默认值“10.0.0.0”。 |
子网大小 |
保留默认值/24 (256 个地址)。 |
选择“保存”。
选择屏幕底部的“查看 + 创建”,然后在验证通过时选择“创建”。
登录到 subscription-1
使用 Connect-AzAccount -Environment AzureChinaCloud 登录到 subscription-1。
Connect-AzAccount -Environment AzureChinaCloud
如果两个订阅都使用一个帐户,请登录到该帐户,并使用 Set-AzContext 将订阅上下文更改为 subscription-1
Set-AzContext -Subscription subscription-1
创建资源组 - test-rg
Azure 资源组是在其中部署和管理 Azure 资源的逻辑容器。
使用 New-AzResourceGroup 创建资源组:
$rsg = @{
Name = 'test-rg'
Location = 'eastus2'
}
New-AzResourceGroup @rsg
创建虚拟网络
使用 New-AzVirtualNetwork 创建虚拟网络。 此示例在“美国西部 3”位置创建名为 vnet-1 的 subnet-1 虚拟网络:
$vnet = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
Location = 'eastus2'
AddressPrefix = '10.0.0.0/16'
}
$virtualNetwork = New-AzVirtualNetwork @vnet
添加子网
Azure 将资源部署到虚拟网络中的子网,因此需要创建子网。 使用 Add-AzVirtualNetworkSubnetConfig 创建名为 subnet-1 的子网配置:
$subnet = @{
Name = 'subnet-1'
VirtualNetwork = $virtualNetwork
AddressPrefix = '10.0.0.0/24'
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
将子网关联到虚拟网络
可以使用 Set-AzVirtualNetwork 将子网配置写入虚拟网络。 此命令创建子网:
$virtualNetwork | Set-AzVirtualNetwork
登录到 subscription-1
使用 az sign-in 登录到 subscription-1。
az login
如果两个订阅都使用一个帐户,请登录到该帐户,并使用 az account set 将订阅上下文更改为 subscription-1。
az account set --subscription "subscription-1"
创建资源组 - test-rg
Azure 资源组是在其中部署和管理 Azure 资源的逻辑容器。
使用 az group create 创建资源组:
az group create \
--name test-rg \
--location eastus2
创建虚拟网络
使用 az network vnet create 创建一个虚拟网络和子网。 此示例在“美国西部 3”位置创建名为 vnet-1 的 subnet-1 虚拟网络。
az network vnet create \
--resource-group test-rg\
--location eastus2 \
--name vnet-1 \
--address-prefixes 10.0.0.0/16 \
--subnet-name subnet-1 \
--subnet-prefixes 10.0.0.0/24
为 user-2 分配权限
另一个订阅中要与之对等互连的用户帐户必须添加到之前创建的网络中。 如果两个订阅都使用单个帐户,则可以跳过此部分。
保持以 user-1 身份登录到门户。
在门户顶部的搜索框中,输入“虚拟网络”。 在搜索结果中,选择“虚拟网络”。
选择“vnet-1”。
选择“访问控制 (IAM)”。
选择“添加”->“添加角色分配”。
在“角色”选项卡中的“添加角色分配”中,选择“网络参与者”。
选择“下一步”。
在“成员”选项卡上,选择“+ 选择成员”。
在搜索框中的“选择成员”中,输入 user-2。
选择“选择” 。
选择“查看 + 分配”。
选择“查看 + 分配”。
使用 Get-AzVirtualNetwork 获取 vnet-1 的资源 ID。 使用 New-AzRoleAssignment 将 user-2 从 subscription-2 分配到 vnet-1。
使用 Get-AzadUser 获取 user-2 的对象 ID。
在本示例中,user-2 用于用户帐户。 将此值替换为要向 vnet-1 分配权限的 subscription-2 中的用户的显示名称。 如果对两个订阅使用相同的帐户,则可以跳过此步骤。
$id = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
}
$vnet = Get-AzVirtualNetwork @id
$obj = Get-AzADUser -DisplayName 'user-2'
$role = @{
ObjectId = $obj.id
RoleDefinitionName = 'Network Contributor'
Scope = $vnet.id
}
New-AzRoleAssignment @role
使用 az network vnet show 获取 vnet-1 的资源 ID。 使用 az role assignment create 将 subscription-2 中的 user-2 分配到 vnet-1。
使用 az ad user list 获取 user-2 的对象 ID。
在本示例中,user-2 用于用户帐户。 将此值替换为要向 vnet-1 分配权限的 subscription-2 中的用户的显示名称。 如果对两个订阅使用相同的帐户,则可以跳过此步骤。
az ad user list --display-name user-2
[
{
"businessPhones": [],
"displayName": "user-2",
"givenName": null,
"id": "16d51293-ec4b-43b1-b54b-3422c108321a",
"jobTitle": null,
"mail": "user-2@fabrikam.com",
"mobilePhone": null,
"officeLocation": null,
"preferredLanguage": null,
"surname": null,
"userPrincipalName": "user-2_fabrikam.com#EXT#@contoso.partner.onmschina.cn"
}
]
在字段 id 中记下 user-2 的对象 ID。在此示例中,对象 ID 为 16d51293-ec4b-43b1-b54b-3422c108321a。
vnetid=$(az network vnet show \
--name vnet-1 \
--resource-group test-rg \
--query id \
--output tsv)
az role assignment create \
--assignee 16d51293-ec4b-43b1-b54b-3422c108321a \
--role "Network Contributor" \
--scope $vnetid
将 --assignee
中的示例 GUID 替换为 user-2 的实际对象 ID。
获取 vnet-1 的资源 ID
保持以 user-1 身份登录到门户。
在门户顶部的搜索框中,输入“虚拟网络”。 在搜索结果中,选择“虚拟网络”。
选择“vnet-1”。
在“设置”中,选择“属性” 。
复制“资源 ID”字段中的信息,并保存以供后续步骤使用。 资源 ID 类似于以下示例:/subscriptions/<Subscription Id>/resourceGroups/test-rg/providers/Microsoft.Network/virtualNetworks/vnet-1
。
以 user-1 身份注销门户。
需要 vnet-1 的资源 ID 才能设置从 vnet-2 到 vnet-1 的对等互连连接。 使用 Get-AzVirtualNetwork 获取 vnet-1 的资源 ID。
$id = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
}
$vnetA = Get-AzVirtualNetwork @id
$vnetA.id
需要 vnet-1 的资源 ID 才能设置从 vnet-2 到 vnet-1 的对等互连连接。 使用 az network vnet show 获取 vnet-1 的资源 ID。
vnetidA=$(az network vnet show \
--name vnet-1 \
--resource-group test-rg \
--query id \
--output tsv)
echo $vnetidA
创建虚拟网络 - vnet-2
在本节中,你以 user-2 的身份登录,并为到 vnet-1 的对等互连创建一个虚拟网络。
重复之前部分中的步骤,使用以下值创建第二个虚拟网络。
设置 |
值 |
订阅 |
subscription-2 |
资源组 |
test-rg-2 |
名称 |
vnet-2 |
地址空间 |
10.1.0.0/16 |
子网名称 |
subnet-1 |
子网地址范围 |
10.1.0.0/24 |
登录到 subscription-2
使用 Connect-AzAccount 登录到 subscription-2。
Connect-AzAccount -Environment AzureChinaCloud
如果两个订阅都使用一个帐户,请登录到该帐户,并使用 Set-AzContext 将订阅上下文更改为 subscription-2。
Set-AzContext -Subscription subscription-2
创建资源组 - test-rg-2
Azure 资源组是在其中部署和管理 Azure 资源的逻辑容器。
使用 New-AzResourceGroup 创建资源组:
$rsg = @{
Name = 'test-rg-2'
Location = 'eastus2'
}
New-AzResourceGroup @rsg
创建虚拟网络
使用 New-AzVirtualNetwork 创建虚拟网络。 此示例在“美国西部 3”位置创建名为 vnet-2 的 subnet-1 虚拟网络:
$vnet = @{
Name = 'vnet-2'
ResourceGroupName = 'test-rg-2'
Location = 'chinaeast2'
AddressPrefix = '10.1.0.0/16'
}
$virtualNetwork = New-AzVirtualNetwork @vnet
添加子网
Azure 将资源部署到虚拟网络中的子网,因此需要创建子网。 使用 Add-AzVirtualNetworkSubnetConfig 创建名为 subnet-1 的子网配置:
$subnet = @{
Name = 'subnet-1'
VirtualNetwork = $virtualNetwork
AddressPrefix = '10.1.0.0/24'
}
$subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
将子网关联到虚拟网络
可以使用 Set-AzVirtualNetwork 将子网配置写入虚拟网络。 此命令创建子网:
$virtualNetwork | Set-AzVirtualNetwork
登录到 subscription-2
使用 az sign-in 登录到 subscription-1。
az login
如果两个订阅都使用一个帐户,请登录到该帐户,并使用 az account set 将订阅上下文更改为 subscription-2。
az account set --subscription "subscription-2"
创建资源组 - test-rg-2
Azure 资源组是在其中部署和管理 Azure 资源的逻辑容器。
使用 az group create 创建资源组:
az group create \
--name test-rg-2 \
--location chinaeast2
创建虚拟网络
使用 az network vnet create 创建一个虚拟网络和子网。 此示例在“中国东部 2”位置创建名为 vnet-2 的 subnet-1 虚拟网络。
az network vnet create \
--resource-group test-rg-2\
--location chinaeast2 \
--name vnet-2 \
--address-prefixes 10.1.0.0/16 \
--subnet-name subnet-1 \
--subnet-prefixes 10.1.0.0/24
为 user-1 分配权限
另一个订阅中要与之对等互连的用户帐户必须添加到之前创建的网络中。 如果两个订阅都使用单个帐户,则可以跳过此部分。
保持以 user-2 身份登录到门户。
在门户顶部的搜索框中,输入“虚拟网络”。 在搜索结果中,选择“虚拟网络”。
选择“vnet-2”。
选择“访问控制 (IAM)”。
选择“添加”->“添加角色分配”。
在“角色”选项卡中的“添加角色分配”中,选择“网络参与者”。
选择“下一步”。
在“成员”选项卡上,选择“+ 选择成员”。
在搜索框中的“选择成员”中,输入 user-1。
选择“选择” 。
选择“查看 + 分配”。
选择“查看 + 分配”。
使用 Get-AzVirtualNetwork 获取 vnet-1 的资源 ID。 使用 New-AzRoleAssignment 将 user-1 从 subscription-1 分配到 vnet-2。
使用 Get-AzadUser 获取 user-1 的对象 ID。
在本示例中,user-1 用于用户帐户。 将此值替换为要向 vnet-2 分配权限的 subscription-1 中的用户的显示名称。 如果对两个订阅使用相同的帐户,则可以跳过此步骤。
$id = @{
Name = 'vnet-2'
ResourceGroupName = 'test-rg-2'
}
$vnet = Get-AzVirtualNetwork @id
$obj = Get-AzADUser -DisplayName 'user-1'
$role = @{
ObjectId = $obj.id
RoleDefinitionName = 'Network Contributor'
Scope = $vnet.id
}
New-AzRoleAssignment @role
使用 az network vnet show 获取 vnet-2 的资源 ID。 使用 az role assignment create 将 subscription-1 中的 user-1 分配到 vnet-2。
使用 az ad user list 获取 user-1 的对象 ID。
在本示例中,user-1 用于用户帐户。 将此值替换为要向 vnet-2 分配权限的 subscription-1 中的用户的显示名称。 如果对两个订阅使用相同的帐户,则可以跳过此步骤。
az ad user list --display-name user-1
[
{
"businessPhones": [],
"displayName": "user-1",
"givenName": null,
"id": "ee0645cc-e439-4ffc-b956-79577e473969",
"jobTitle": null,
"mail": "user-1@contoso.com",
"mobilePhone": null,
"officeLocation": null,
"preferredLanguage": null,
"surname": null,
"userPrincipalName": "user-1_contoso.com#EXT#@fabrikam.partner.onmschina.cn"
}
]
在字段 id 中记下 user-1 的对象 ID。在本例中,对象 ID 为 ee0645cc-e439-4ffc-b956-79577e473969。
vnetid=$(az network vnet show \
--name vnet-2 \
--resource-group test-rg-2 \
--query id \
--output tsv)
az role assignment create \
--assignee ee0645cc-e439-4ffc-b956-79577e473969 \
--role "Network Contributor" \
--scope $vnetid
获取 vnet-2 的资源 ID
需要 vnet-2 的资源 ID 才能设置从 vnet-1 到 vnet-2 的对等互连连接。 使用以下步骤获取 vnet-2 的资源 ID。
保持以 user-2 身份登录到门户。
在门户顶部的搜索框中,输入“虚拟网络”。 在搜索结果中,选择“虚拟网络”。
选择“vnet-2”。
在“设置”中,选择“属性” 。
复制“资源 ID”字段中的信息,并保存以供后续步骤使用。 资源 ID 类似于以下示例:/subscriptions/<Subscription Id>/resourceGroups/test-rg-2/providers/Microsoft.Network/virtualNetworks/vnet-2
。
以 user-2 身份注销门户。
需要 vnet-2 的资源 ID 才能设置从 vnet-1 到 vnet-2 的对等互连连接。 使用 Get-AzVirtualNetwork 获取 vnet-2 的资源 ID。
$id = @{
Name = 'vnet-2'
ResourceGroupName = 'test-rg-2'
}
$vnetB = Get-AzVirtualNetwork @id
$vnetB.id
需要 vnet-2 的资源 ID 才能设置从 vnet-1 到 vnet-2 的对等互连连接。 使用 az network vnet show 获取 vnet-2 的资源 ID。
vnetidB=$(az network vnet show \
--name vnet-2 \
--resource-group test-rg-2 \
--query id \
--output tsv)
echo $vnetidB
创建对等互连连接 - vnet-1 到 vnet-2
你需要前面步骤中 vnet-2 的资源 ID 来设置对等互连连接。
以 user-1 身份登录到 Azure 门户。 如果对两个订阅使用一个帐户,请在门户中更改为 subscription-1。
在门户顶部的搜索框中,输入“虚拟网络”。 在搜索结果中,选择“虚拟网络”。
选择“vnet-1”。
选择“对等互连”。
选择“+ 添加”。
在“添加对等方”中,输入或选择以下信息:
设置 |
“值” |
远程虚拟网络摘要 |
|
对等互连链接名称 |
vnet-2-to-vnet-1 |
虚拟网络部署模型 |
资源管理器 |
我知道我的资源 ID |
选择相应的框 |
资源 ID |
输入 vnet-2 的资源 ID |
Directory |
选择与 vnet-2 和 user-2 对应的 Microsoft Entra ID 目录 |
远程虚拟网络对等互连设置 |
|
允许“对等互连的虚拟网络”访问“vnet-1” |
保留默认值“启用” |
允许“对等互连的虚拟网络”接收来自“vnet-1”的转发流量 |
选择相应的框 |
本地虚拟网络摘要 |
|
对等互连链接名称 |
vnet-1-to-vnet-2 |
本地虚拟网络对等互连设置 |
|
允许“vnet-1”访问“对等互连的虚拟网络” |
保留默认值“启用” |
允许“vnet-1”接收来自“对等互连的虚拟网络”的转发流量 |
选择相应的框 |
选择 添加 。
以 user-1 身份注销门户。
登录到 subscription-1
使用 Connect-AzAccount 登录到 subscription-1
Connect-AzAccount -Environment AzureChinaCloud
如果两个订阅都使用一个帐户,请登录到该帐户,并使用 Set-AzContext 将订阅上下文更改为 subscription-1
Set-AzContext -Subscription subscription-1
登录到 subscription-2
向 subscription-2 进行身份验证,以便可以设置对等互连。
使用 Connect-AzAccount 登录到 subscription-2。
Connect-AzAccount -Environment AzureChinaCloud
更改为 subscription-1(可选)
你可能需要切换回 subscription-1 才能继续执行 subscription-1 中的操作。
将上下文更改为 subscription-1。
Set-AzContext -Subscription subscription-1
创建对等互连连接
使用 Add-AzVirtualNetworkPeering 在 vnet-1 和 vnet-2 之间创建对等互连连接。
$netA = @{
Name = 'vnet-1'
ResourceGroupName = 'test-rg'
}
$vnetA = Get-AzVirtualNetwork @netA
$peer = @{
Name = 'vnet-1-to-vnet-2'
VirtualNetwork = $vnetA
RemoteVirtualNetworkId = '/subscriptions/<subscription-2-Id>/resourceGroups/test-rg-2/providers/Microsoft.Network/virtualNetworks/vnet-2'
}
Add-AzVirtualNetworkPeering @peer
使用 Get-AzVirtualNetworkPeering 获取从 vnet-1 到 vnet-2 的对等互连连接的状态。
$status = @{
ResourceGroupName = 'test-rg'
VirtualNetworkName = 'vnet-1'
}
Get-AzVirtualNetworkPeering @status | Format-Table VirtualNetworkName, PeeringState
PS /home/azureuser> Get-AzVirtualNetworkPeering @status | Format-Table VirtualNetworkName, PeeringState
VirtualNetworkName PeeringState
------------------ ------------
vnet-1 Initiated
登录到 subscription-1
使用 az sign-in 登录到 subscription-1。
az login
如果两个订阅都使用一个帐户,请登录到该帐户,并使用 az account set 将订阅上下文更改为 subscription-1。
az account set --subscription "subscription-1"
登录到 subscription-2
向 subscription-2 进行身份验证,以便可以设置对等互连。
使用 az sign-in 登录到 subscription-2。
az login
更改为 subscription-1(可选)
你可能需要切换回 subscription-1 才能继续执行 subscription-1 中的操作。
将上下文更改为 subscription-1。
az account set --subscription "subscription-1"
创建对等互连连接
使用 az network vnet peering create 在 vnet-1 和 vnet-2 之间创建对等互连连接。
az network vnet peering create \
--name vnet-1-to-vnet-2 \
--resource-group test-rg \
--vnet-name vnet-1 \
--remote-vnet /subscriptions/<subscription-2-Id>/resourceGroups/test-rg-2/providers/Microsoft.Network/VirtualNetworks/vnet-2 \
--allow-vnet-access
使用 az network vnet peering list 获取从 vnet-1 到 vnet-2 的对等互连连接的状态。
az network vnet peering list \
--resource-group test-rg \
--vnet-name vnet-1 \
--output table
对等互连连接显示在“对等互连”中,状态为“已启动”。 若要完成对等互连,必须在 vnet-2 中设置相应的连接。
创建对等互连连接 - vnet-2 到 vnet-1
你需要前面步骤中 vnet-1 的资源 ID 来设置对等互连连接。
以 user-2 身份登录到 Azure 门户。 如果对两个订阅使用一个帐户,请在门户中更改为 subscription-2。
在门户顶部的搜索框中,输入“虚拟网络”。 在搜索结果中,选择“虚拟网络”。
选择“vnet-2”。
选择“对等互连”。
选择“+ 添加”。
在“添加对等方”中,输入或选择以下信息:
设置 |
“值” |
远程虚拟网络摘要 |
|
对等互连链接名称 |
vnet-1-to-vnet-2 |
虚拟网络部署模型 |
资源管理器 |
我知道我的资源 ID |
选择相应的框 |
资源 ID |
输入 vnet-2 的资源 ID |
Directory |
选择与 vnet-1 和 user-1 对应的 Microsoft Entra ID 目录 |
远程虚拟网络对等互连设置 |
|
允许“对等互连的虚拟网络”访问“vnet-1” |
保留默认值“启用” |
允许“对等互连的虚拟网络”接收来自“vnet-1”的转发流量 |
选择相应的框 |
本地虚拟网络摘要 |
|
对等互连链接名称 |
vnet-1-to-vnet-2 |
本地虚拟网络对等互连设置 |
|
允许“vnet-1”访问“对等互连的虚拟网络” |
保留默认值“启用” |
允许“vnet-1”接收来自“对等互连的虚拟网络”的转发流量 |
选择相应的框 |
选择 添加 。
在下拉框中,选择与 vnet-1 和 user-1 对应的目录。
选择“身份验证”。
选择 添加 。
登录到 subscription-2
使用 Connect-AzAccount 登录到 subscription-2。
Connect-AzAccount -Environment AzureChinaCloud
如果两个订阅都使用一个帐户,请登录到该帐户,并使用 Set-AzContext 将订阅上下文更改为 subscription-2。
Set-AzContext -Subscription subscription-2
登录到 subscription-1
向 subscription-1 进行身份验证,以便可以设置对等互连。
使用 Connect-AzAccount 登录到 subscription-1
Connect-AzAccount -Environment AzureChinaCloud
更改为 subscription-2(可选)
你可能需要切换回 subscription-2 才能继续执行 subscription-2 中的操作。
将上下文更改为 subscription-2。
Set-AzContext -Subscription subscription-2
创建对等互连连接
使用 Add-AzVirtualNetworkPeering 在 vnet-2 和 vnet-1 之间创建对等互连连接。
$netB = @{
Name = 'vnet-2'
ResourceGroupName = 'test-rg-2'
}
$vnetB = Get-AzVirtualNetwork @netB
$peer = @{
Name = 'vnet-2-to-vnet-1'
VirtualNetwork = $vnetB
RemoteVirtualNetworkId = '/subscriptions/<subscription-1-Id>/resourceGroups/test-rg/providers/Microsoft.Network/virtualNetworks/vnet-1'
}
Add-AzVirtualNetworkPeering @peer
使用 Get-AzVirtualNetworkPeering 获取从 vnet-2 到 vnet-1 的对等互连连接的状态。
$status = @{
ResourceGroupName = 'test-rg-2'
VirtualNetworkName = 'vnet-2'
}
Get-AzVirtualNetworkPeering @status | Format-Table VirtualNetworkName, PeeringState
PS /home/azureuser> Get-AzVirtualNetworkPeering @status | Format-Table VirtualNetworkName, PeeringState
VirtualNetworkName PeeringState
------------------ ------------
vnet-2 Connected
登录到 subscription-2
使用 az sign-in 登录到 subscription-2。
az login
如果两个订阅都使用一个帐户,请登录到该帐户,并使用 az account set 将订阅上下文更改为 subscription-2。
az account set --subscription "subscription-2"
登录到 subscription-1
向 subscription-1 进行身份验证,以便可以设置对等互连。
使用 az sign-in 登录到 subscription-1。
az login
更改为 subscription-2(可选)
你可能需要切换回 subscription-2 才能继续执行 subscription-2 中的操作。
将上下文更改为 subscription-2。
az account set --subscription "subscription-2"
创建对等互连连接
使用 az network vnet peering create 在 vnet-2 和 vnet-1 之间创建对等互连连接。
az network vnet peering create \
--name vnet-2-to-vnet-1 \
--resource-group test-rg-2 \
--vnet-name vnet-2 \
--remote-vnet /subscriptions/<subscription-1-Id>/resourceGroups/test-rg/providers/Microsoft.Network/VirtualNetworks/vnet-1 \
--allow-vnet-access
使用 az network vnet peering list 获取从 vnet-2 到 vnet-1 的对等互连连接的状态。
az network vnet peering list \
--resource-group test-rg-2 \
--vnet-name vnet-2 \
--output table
对等互连中两个虚拟网络的“对等互连状态”列都显示为“已连接”后,即表示已成功建立对等互连。 在任一虚拟网络中创建的任何 Azure 资源现在都可通过其 IP 地址相互通信。 如果为虚拟网络使用 Azure 名称解析,则虚拟网络中的资源无法跨虚拟网络解析名称。 若要跨对等互连中的虚拟网络解析名称,必须创建自己的 DNS(域名系统)服务器或使用 Azure DNS。
有关使用自己的 DNS 进行名称解析的详细信息,请参阅使用自己的 DNS 服务器进行名称解析。
有关 Azure DNS 的详细信息,请参阅 What is Azure DNS?(什么是 Azure DNS?)。
后续步骤