使用 PowerShell 修改 ExpressRoute 线路(经典)

本文逐步讲解检查状态以及更新或删除并预配 ExpressRoute 经典部署模型线路的步骤。 本文适用于经典部署模型。

重要

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

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

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

关于 Azure 部署模型

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

准备阶段

安装最新版本的 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
    

获取线路的状态

可以随时使用 Get-AzureCircuit cmdlet 检索此信息。 进行不带任何参数的调用将列出所有线路。

Get-AzureDedicatedCircuit

Bandwidth                        : 200
CircuitName                      : MyTestCircuit
Location                         : Beijing
ServiceKey                       : *********************************
ServiceProviderName              : Beijing Telecom Ethernet
ServiceProviderProvisioningState : Provisioned
Sku                              : Standard
Status                           : Enabled

可以将服务密钥作为参数传递给调用,从而获取特定 ExpressRoute 线路的相关信息。

Get-AzureDedicatedCircuit -ServiceKey "*********************************"

Bandwidth                        : 200
CircuitName                      : MyTestCircuit
Location                         : Beijing
ServiceKey                       : *********************************
ServiceProviderName              : Beijing Telecom Ethernet
ServiceProviderProvisioningState : Provisioned
Sku                              : Standard
Status                           : Enabled

可以运行以下示例获取所有这些参数的详细说明:

get-help get-azurededicatedcircuit -detailed

修改线路

可以在不影响连接的情况下修改 ExpressRoute 线路的某些属性。

可以在不停机的情况下执行以下任务:

  • 为 ExpressRoute 线路启用或禁用 ExpressRoute 高级版外接程序。
  • 增加 ExpressRoute 线路的带宽,前提是端口上有可用容量。 不支持对线路的带宽进行降级。
  • 将计量套餐从数据流量套餐更改为无限制流量套餐。 不支持将计量套餐从无限制流量套餐更改为数据流量套餐。
  • 可以启用和禁用允许经典操作

有关限制和局限性的详细信息,请参阅 ExpressRoute 常见问题

启用 ExpressRoute 高级版外接程序

可以使用以下 PowerShell cmdlet 为现有线路启用 ExpressRoute 高级版外接程序:

Set-AzureDedicatedCircuitProperties -ServiceKey "*********************************" -Sku Premium

Bandwidth                        : 1000
CircuitName                      : TestCircuit
Location                         : Beijing
ServiceKey                       : *********************************
ServiceProviderName              : Beijing Telecom Ethernet
ServiceProviderProvisioningState : Provisioned
Sku                              : Premium
Status                           : Enabled

线路现已启用 ExpressRoute 高级版外接程序功能。 成功运行该命令后,就会开始对高级版外接程序功能计费。

禁用 ExpressRoute 高级版外接程序

重要

如果使用的资源超出了标准线路允许的范围,此操作可能会失败。

注意事项

  • 从高级版降级到标准版之前,请确保链接到线路的虚拟网络数少于 10。 否则,更新请求会失败,并且会按高级版费率计费。
  • 必须取消其他地理政治区域的所有虚拟网络的链接。 否则,更新请求会失败,并且会按高级版费率计费。
  • 路由表中专用对等互连的路由必须少于 4,000。 如果路由表大小超出 4,000 个路由,则会删除 BGP 会话且不会重新启用它,除非已播发前缀的数目低于 4,000。

禁用高级外接程序

可以使用以下 PowerShell cmdlet 为现有线路禁用 ExpressRoute 高级版外接程序:


Set-AzureDedicatedCircuitProperties -ServiceKey "*********************************" -Sku Standard

Bandwidth                        : 1000
CircuitName                      : TestCircuit
Location                         : Beijing
ServiceKey                       : *********************************
ServiceProviderName              : Beijing Telecom Ethernet
ServiceProviderProvisioningState : Provisioned
Sku                              : Standard
Status                           : Enabled

更新 ExpressRoute 线路带宽

有关提供商支持的带宽选项,请查看 ExpressRoute 常见问题。 只要在其上创建线路的物理端口允许,即可选取大于现有线路大小的任何大小。

重要

如果现有端口上的容量不足,可能需要重新创建 ExpressRoute 线路。 如果该位置没有额外的可用容量,则不能升级线路。

但是,无法在不中断的情况下降低 ExpressRoute 线路的带宽。 带宽降级需要取消对 ExpressRoute 线路的预配,并重新预配新的 ExpressRoute 线路。

调整线路大小

确定所需的大小后,即可使用以下命令调整线路的大小:

Set-AzureDedicatedCircuitProperties -ServiceKey ********************************* -Bandwidth 1000

Bandwidth                        : 1000
CircuitName                      : TestCircuit
Location                         : Beijing
ServiceKey                       : *********************************
ServiceProviderName              : Beijing Telecom Ethernet
ServiceProviderProvisioningState : Provisioned
Sku                              : Standard
Status                           : Enabled

在 Microsoft 端调整线路大小后,必须联系连接提供商,让他们在那一边根据此更改更新配置。 从现在开始将按已更新的带宽选项计费。

如果在增加线路带宽时看到以下错误,这意味着创建现有线路所在的物理端口上没有足够的带宽可用。 必须删除此线路,并创建所需大小的新线路。

Set-AzureDedicatedCircuitProperties : InvalidOperation : Insufficient bandwidth available to perform this circuit
update operation
At line:1 char:1
+ Set-AzureDedicatedCircuitProperties -ServiceKey ********************* ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  + CategoryInfo          : CloseError: (:) [Set-AzureDedicatedCircuitProperties], CloudException
  + FullyQualifiedErrorId : Microsoft.WindowsAzure.Commands.ExpressRoute.SetAzureDedicatedCircuitPropertiesCommand

取消预配和删除线路

注意事项

  • 必须取消所有虚拟网络与 ExpressRoute 线路的链接,此操作才能成功。 如果此操作失败,请查看是否有虚拟网络链接到了此线路。
  • 如果 ExpressRoute 线路服务提供商预配状态为“正在预配” 或“已预配” ,则必须与服务提供商合作,在他们一端取消预配线路。 在服务提供商取消对线路的预配并通知我们之前,我们会继续保留资源并收费。
  • 如果服务提供商已取消预配线路(服务提供商预配状态设置为“未预配”),则可以删除线路。 这样就会停止对线路的计费。

删除线路

可以通过运行以下命令来删除 ExpressRoute 线路:

Remove-AzureDedicatedCircuit -ServiceKey "*********************************"