使用 PowerShell 将虚拟网络连接到 ExpressRoute 线路(经典)

本文介绍如何使用 PowerShell 将虚拟网络 (VNet) 链接到 Azure ExpressRoute 线路。 单个 VNet 可最多连接到 4 条 ExpressRoute 线路。 通过本文中的步骤为正在连接的每条 ExpressRoute 线路创建新链接。 ExpressRoute 线路可在同一订阅、不同订阅或两者兼有。 本文适用于使用经典部署模型创建的虚拟网络。

最多可以将 10 个虚拟网络链接到一条 ExpressRoute 线路。 所有虚拟网络必须都位于同一地缘政治区域。 如果启用 ExpressRoute 高级外接程序,则可以将更多虚拟网络链接到 ExpressRoute 线路,或者链接其他地缘政治区域中的虚拟网络。 有关高级外接程序的更多详细信息,请参阅常见问题解答

重要

从 2017 年 3 月 1 日开始,将无法在经典部署模型中创建新的 ExpressRoute 线路。

  • 可以将现有的 ExpressRoute 线路从经典部署模型移到 Resource Manager 部署模型,不会遇到连接中断问题。 有关详细信息,请参阅移动现有线路
  • allowClassicOperations 设置为 TRUE 即可在经典部署模型中连接到虚拟网络。

请使用以下链接在 Resource Manager 部署模型中创建和管理 ExpressRoute 线路:

关于 Azure 部署模型

Azure 当前使用两种部署模型:资源管理器部署模型和经典部署模型。 这两个模型相互不完全兼容。 在开始之前,需要知道所要使用的模型。 有关部署模型的信息,请参阅了解部署模型。 如果不熟悉 Azure,建议使用 Resource Manager 部署模型。

配置先决条件

  • 在开始配置之前,请先查看先决条件路由要求工作流
  • 必须有一个活动的 ExpressRoute 线路。
    • 请按说明创建 ExpressRoute 线路,并让连接提供商启用该线路。

    • 请确保为线路配置 Azure 专用对等互连。 有关路由说明,请参阅配置路由一文。

    • 确保配置 Azure 专用对等互连并运行网络和 Microsoft 之间的 BGP 对等互连,以便启用端到端连接。

    • 必须已创建并完全预配一个虚拟网络和一个虚拟网络网关。 请按说明为 ExpressRoute 配置虚拟网络

下载最新的 PowerShell cmdlet

安装最新版本的 Azure 服务管理 (SM) PowerShell 模块和 ExpressRoute 模块。

  1. 按照安装服务管理模块一文中的说明安装 Azure 服务管理模块。 如果已安装 Az 或 RM 模块,请确保使用“-AllowClobber”。

  2. 导入已安装的模块。 使用以下示例时,请调整路径以反映已安装的 PowerShell 模块的位置和版本。

    Import-Module 'C:\Program Files\WindowsPowerShell\Modules\Azure\5.3.0\Azure.psd1'
    Import-Module 'C:\Program Files\WindowsPowerShell\Modules\Azure\5.3.0\ExpressRoute\ExpressRoute.psd1'
    
  3. 若要登录到 Azure 帐户,请使用提升的权限打开 PowerShell 控制台,并连接到帐户。 使用以下示例帮助你通过服务管理模块进行连接:

    Add-AzureAccount
    

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

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

New-AzureDedicatedCircuitLink -ServiceKey "*****************************" -VNetName "MyVNet"
Provisioned

可使用以下 cmdlet 删除指向 ExpressRoute 线路的虚拟网络链接。 请确保为给定的虚拟网络选择当前订阅。

Remove-AzureDedicatedCircuitLink -ServiceKey "*****************************" -VNetName "MyVNet"

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

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

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

注意

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

Cross-subscription connectivity

管理

“线路所有者”是在其中创建了 ExpressRoute 线路的订阅的管理员/共同管理员。 线路所有者可以授权其他订阅的管理员/共同管理员(称为线路用户)使用他们拥有的专用线路。 有权使用组织的 ExpressRoute 线路的线路用户在获得授权后可以将其订阅中的虚拟网络链接到 ExpressRoute 线路。

线路所有者有权随时修改和撤消授权。 撤消授权将导致从撤消其访问权限的订阅中删除所有链接。

注意

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

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

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

线路所有者操作

创建授权

线路所有者可授权其他订阅的管理员使用指定的线路。 在下面的示例中,线路 (Contoso IT) 管理员允许另一个订阅(开发-测试)的管理员最多将两个虚拟网络链接到线路。 Contoso IT 管理员可以通过指定开发-测试 Microsoft ID 来启用此授权。 该 cmdlet 不会将电子邮件发送到指定的 Microsoft ID。 线路所有者需要显式通知其他订阅所有者:授权已完成。

New-AzureDedicatedCircuitLinkAuthorization -ServiceKey "**************************" -Description "Dev-Test Links" -Limit 2 -MicrosoftIds 'devtest@contoso.com'

返回:

Description         : Dev-Test Links
Limit               : 2
LinkAuthorizationId : **********************************
MicrosoftIds        : devtest@contoso.com
Used                : 0

查看授权

线路所有者可以通过运行以下 cmdlet 来查看针对特定线路发出的所有授权:

Get-AzureDedicatedCircuitLinkAuthorization -ServiceKey: "**************************"

返回:

Description         : EngineeringTeam
Limit               : 3
LinkAuthorizationId : ####################################
MicrosoftIds        : engadmin@contoso.com
Used                : 1

Description         : MarketingTeam
Limit               : 1
LinkAuthorizationId : @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
MicrosoftIds        : marketingadmin@contoso.com
Used                : 0

Description         : Dev-Test Links
Limit               : 2
LinkAuthorizationId : &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
MicrosoftIds        : salesadmin@contoso.com
Used                : 2

更新授权

线路所有者可以使用以下 cmdlet 修改授权:

Set-AzureDedicatedCircuitLinkAuthorization -ServiceKey "**************************" -AuthorizationId "&&&&&&&&&&&&&&&&&&&&&&&&&&&&"-Limit 5

返回:

Description         : Dev-Test Links
Limit               : 5
LinkAuthorizationId : &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
MicrosoftIds        : devtest@contoso.com
Used                : 0

删除授权

线路所有者可以通过运行以下 cmdlet 来撤消/删除对用户的授权:

Remove-AzureDedicatedCircuitLinkAuthorization -ServiceKey "*****************************" -AuthorizationId "###############################"

线路用户操作

查看授权

线路用户可以使用以下 cmdlet 查看授权:

Get-AzureAuthorizedDedicatedCircuit

返回:

Bandwidth                        : 200
CircuitName                      : ContosoIT
Location                         : Washington DC
MaximumAllowedLinks              : 2
ServiceKey                       : &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
ServiceProviderName              : equinix
ServiceProviderProvisioningState : Provisioned
Status                           : Enabled
UsedLinks                        : 0

兑现链接授权

线路用户可以通过运行以下 cmdlet 来兑现链接授权:

New-AzureDedicatedCircuitLink -servicekey "&&&&&&&&&&&&&&&&&&&&&&&&&&" -VnetName 'SalesVNET1'

返回:

State VnetName
----- --------
Provisioned SalesVNET1

在虚拟网络新链接的订阅中运行此命令:

New-AzureDedicatedCircuitLink -ServiceKey "*****************************" -VNetName "MyVNet"

后续步骤

有关 ExpressRoute 的详细信息,请参阅 ExpressRoute 常见问题