使用 Azure CLI 将虚拟网络连接到 ExpressRoute 线路

本文介绍如何使用 Azure CLI 将虚拟网络 (VNet) 链接到 Azure ExpressRoute 线路。 若要使用 Azure CLI 进行链接,必须使用资源管理器部署模型创建虚拟网络。 它们可以在同一个订阅中,也可以属于另一个订阅。 如果想使用不同的方法将 VNet 连接到 ExpressRoute 线路,请从以下列表中选择一篇文章进行参阅:

Diagram showing a virtual network linked to an ExpressRoute circuit.

先决条件

  • 需要最新版本的命令行接口 (CLI)。 有关详细信息,请参阅安装 Azure CLI

  • 在开始配置之前,请先查看先决条件路由要求工作流

  • 必须有一个活动的 ExpressRoute 线路。

    • 请按说明创建 ExpressRoute 线路,并通过连接提供商启用该线路。
    • 请确保为线路配置 Azure 专用对等互连。 有关路由说明,请参阅配置路由一文。
    • 请确保已配置 Azure 专用对等互连。 必须建立网络和 Azure 之间的 BGP 对等互连,使你能够启用端到端的连接。
    • 确保已创建并完全预配一个虚拟网络和一个虚拟网络网关。 请按照说明为 ExpressRoute 配置虚拟网络网关。 请务必使用 --gateway-type ExpressRoute
  • 最多可以将 10 个虚拟网络链接到一条标准 ExpressRoute 线路。 使用标准 ExpressRoute 线路时,所有虚拟网络必须都位于同一地缘政治区域。

  • 单个 VNet 可最多连接到 16 条 ExpressRoute 线路。 使用以下流程为要连接的每条 ExpressRoute 线路创建新的连接对象。 ExpressRoute 线路可在同一订阅、不同订阅或两者兼有。

  • 如果启用 ExpressRoute 高级版加载项,则可以链接 ExpressRoute 线路的地缘政治区域外部的虚拟网络。 通过高级版加载项,你还可以根据所选带宽,将 10 个以上的虚拟网络连接到 ExpressRoute 线路。 有关高级外接程序的更多详细信息,请参阅常见问题解答

  • 如果要创建从 ExpressRoute 线路到目标 ExpressRoute 虚拟网络网关的连接,则从本地或对等互连虚拟网络播发的地址空间数必须等于或小于 200。 成功创建连接后,可以将其他地址空间(最多 1000 个)添加到本地或对等互连虚拟网络。

  • 请查看通过 ExpressRoute 在虚拟网络之间建立连接的指南。

将同一订阅中的虚拟网络连接到线路

可以使用以下示例将虚拟网络网关连接到 ExpressRoute 线路。 在运行此命令之前,请确保虚拟网络网关已创建并可用于进行链接。

az network vpn-connection create --name ERConnection --resource-group ExpressRouteResourceGroup --vnet-gateway1 VNet1GW --express-route-circuit2 MyCircuit

将另一订阅中的虚拟网络连接到线路

用户可以在多个订阅之间共享 ExpressRoute 线路。 下图是在多个订阅之间共享 ExpressRoute 线路的简单示意图。

注意

不支持在 Azure 主权云和公共 Azure 云之间连接虚拟网络。 只能链接来自同一云中不同订阅的虚拟网络。

大型云中的每个较小云用于表示属于组织中不同部门的订阅。 组织内的每个部门使用自己的订阅部署其服务,但可以共享单个 ExpressRoute 线路以连接回本地网络。 单个部门(在此示例中为 IT 部门)可以拥有 ExpressRoute 线路。 组织内的其他订阅可以使用 ExpressRoute 线路。

注意

专用线路的连接和带宽费用将应用于 ExpressRoute 线路所有者。 所有虚拟网络共享相同的带宽。

Cross-subscription connectivity

管理 - 线路所有者和线路用户

“线路所有者”是 ExpressRoute 线路资源的已授权超级用户。 线路所有者可以创建可由“线路用户”兑换的授权。 线路用户是虚拟网络网关的所有者(这些网关与 ExpressRoute 线路位于不同的订阅中)。 线路用户可以兑现授权(每个虚拟网络需要一个授权)。

线路所有者有权随时修改和撤销授权。 撤销授权后,会从撤销了访问权限的订阅中删除所有链路连接。

注意

线路所有者不是内置的 RBAC 角色,也不是在 ExpressRoute 资源上定义的。 线路所有者的定义是具有以下访问权限的任何角色:

  • Microsoft.Network/expressRouteCircuits/authorizations/write
  • Microsoft.Network/expressRouteCircuits/authorizations/read
  • Microsoft.Network/expressRouteCircuits/authorizations/delete

这包括内置角色,例如参与者、所有者和网络参与者。 不同内置角色的详细说明。

线路所有者操作

若要创建授权

线路所有者创建授权,这将创建授权密钥,供线路用户用于将其虚拟网络网关连接到 ExpressRoute 线路。 一个授权只可用于一个连接。

以下示例说明如何创建授权:

az network express-route auth create --circuit-name MyCircuit -g ExpressRouteResourceGroup -n MyAuthorization

此响应包含授权密钥和状态:

"authorizationKey": "0a7f3020-541f-4b4b-844a-5fb43472e3d7",
"authorizationUseStatus": "Available",
"etag": "W/\"010353d4-8955-4984-807a-585c21a22ae0\"",
"id": "/subscriptions/81ab786c-56eb-4a4d-bb5f-f60329772466/resourceGroups/ExpressRouteResourceGroup/providers/Microsoft.Network/expressRouteCircuits/MyCircuit/authorizations/MyAuthorization1",
"name": "MyAuthorization1",
"provisioningState": "Succeeded",
"resourceGroup": "ExpressRouteResourceGroup"

若要查看授权

线路所有者可以运行以下示例来查看针对特定线路发布的所有授权:

az network express-route auth list --circuit-name MyCircuit -g ExpressRouteResourceGroup

若要添加授权

线路所有者可以使用以下示例来添加授权:

az network express-route auth create --circuit-name MyCircuit -g ExpressRouteResourceGroup -n MyAuthorization1

若要删除授权

线路所有者可以运行以下示例来撤销/删除对用户的授权:

az network express-route auth delete --circuit-name MyCircuit -g ExpressRouteResourceGroup -n MyAuthorization1

线路用户操作

线路用户需要对等 ID 以及线路所有者提供的授权密钥。 授权密钥是一个 GUID。

az network express-route show -n MyCircuit -g ExpressRouteResourceGroup

若要兑换连接授权

线路用户可以运行以下示例来兑现链接授权:

az network vpn-connection create --name ERConnection --resource-group ExpressRouteResourceGroup --vnet-gateway1 VNet1GW --express-route-circuit2 MyCircuit --authorization-key "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"

若要释放连接授权

可以通过删除 ExpressRoute 线路与虚拟网络之间的连接释放授权。

修改虚拟网络连接

可以更新虚拟网络连接的某些属性。

若要更新连接权重

虚拟网络可以连接到多条 ExpressRoute 线路。 可以从多条 ExpressRoute 线路收到相同的前缀。 若要选择使用哪个连接发送目标为此前缀的流量,可以更改连接的 RoutingWeight。 将在具有最高 RoutingWeight 的连接上发送流量。

az network vpn-connection update --name ERConnection --resource-group ExpressRouteResourceGroup --routing-weight 100

RoutingWeight 的范围是 0 到 32000。 默认值为 0。

清理资源

如果不再需要 ExpressRoute 连接,请使用 az network vpn-connection delete 命令,从该网关所在的订阅删除网关和线路之间的链接。

az network vpn-connection delete --name ERConnection --resource-group ExpressRouteResourceGroup

后续步骤

在本教程中,你已了解如何将虚拟网络连接到同一订阅和不同订阅中的线路。 有关 ExpressRoute 网关的详细信息,请参阅:ExpressRoute 虚拟网络网关

若要了解如何使用 Azure CLI 为 Microsoft 对等互连配置路由筛选器,请转到下一个教程。