使用 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 模块。
按照安装服务管理模块一文中的说明安装 Azure 服务管理模块。 如果已安装 Az 或 RM 模块,请确保使用“-AllowClobber”。
导入已安装的模块。 使用以下示例时,请调整路径以反映已安装的 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'
若要登录到 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 线路所有者。 所有虚拟网络共享相同的带宽。
管理
“线路所有者”是在其中创建了 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 常见问题。