Share via


快速入門:使用 Azure PowerShell 建立和修改 ExpressRoute 線路

本快速入門說明如何使用 PowerShell Cmdlet 和 Azure Resource Manager 部署模型來建立 ExpressRoute 線路。 您也可以檢查狀態、更新、刪除或取消布建線路。

Diagram of ExpressRoute circuit deployment environment using Azure PowerShell.

必要條件

Azure Cloud Shell

Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 Bash 或 PowerShell 搭配 Cloud Shell,與 Azure 服務共同使用。 您可以使用 Cloud Shell 預先安裝的命令,執行本文提到的程式碼,而不必在本機環境上安裝任何工具。

要啟動 Azure Cloud Shell:

選項 範例/連結
選取程式碼或命令區塊右上角的 [試試看]。 選取 [試試看] 並不會自動將程式碼或命令複製到 Cloud Shell 中。 Screenshot that shows an example of Try It for Azure Cloud Shell.
請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 Button to launch Azure Cloud Shell.
選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 Screenshot that shows the Cloud Shell button in the Azure portal

若要使用 Azure Cloud Shell:

  1. 啟動 Cloud Shell。

  2. 選取程式碼區塊 (或命令區塊) 上的 [複製] 按鈕以複製程式碼或命令。

  3. 透過在 Windows 和 Linux 上選取 Ctrl+Shift+V;或在 macOS 上選取 Cmd+Shift+V,將程式碼或命令貼到 Cloud Shell 工作階段中。

  4. 選取 Enter 鍵執行程式碼或命令。

建立及布建 ExpressRoute 線路

登入您的 Azure 帳戶並且選取您的訂用帳戶

如果您使用 Azure Cloud Shell,請在按兩下 [試用] 之後自動登入您的 Azure 帳戶。 若要在本機登入,請使用提高的許可權開啟 PowerShell 控制台,並執行 Cmdlet 以連線。

Connect-AzAccount

如果您有多個訂用帳戶,請取得 Azure 訂用帳戶的清單。

Get-AzSubscription

指定您要使用的訂用帳戶。

Select-AzSubscription -SubscriptionName "Name of subscription"

取得支援的提供者、位置和頻寬清單

建立 ExpressRoute 線路之前,您需要支援的連線提供者、位置和頻寬選項清單。

PowerShell Cmdlet Get-AzExpressRouteServiceProvider 會傳回此資訊,您可以在後續步驟中使用:

Get-AzExpressRouteServiceProvider

檢查您的連線提供者是否已列在那裡。 記下下列資訊,稍後在建立線路時需要此資訊:

  • 名稱
  • PeeringLocations
  • BandwidthsOffered

您現在已準備好建立 ExpressRoute 線路。

建立 ExpressRoute 線路

如果您還沒有資源群組,您必須先建立一個資源群組,才能建立 ExpressRoute 線路。 您可以執行下列命令來執行此動作:

New-AzResourceGroup -Name "ExpressRouteResourceGroup" -Location "West US"

下列範例示範如何透過矽谷的 Equinix 建立 200 Mbps ExpressRoute 線路。 如果您使用不同的提供者和不同的設定,請在提出要求時取代該資訊。 使用下列範例來要求新的服務金鑰:

New-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "ExpressRouteResourceGroup" -Location "West US" -SkuTier Standard -SkuFamily MeteredData -ServiceProviderName "Equinix" -PeeringLocation "Silicon Valley" -BandwidthInMbps 200

請確定您指定正確的 SKU 層和 SKU 系列:

  • SKU 層會判斷 ExpressRoute 線路是本機、標準或 進階版。 您可以指定 Local、*Standard 或 進階版
  • SKU 系列會決定計費類型。 您可以為計量數據計劃指定 MeteredData,併為無限制的數據計劃指定 UnlimitedData。 您可以將計費類型從 MeteredData 變更為 UnlimitedData,但無法將類型從 UnlimitedData 變更為 MeteredData。 本機線路一律為 UnlimitedData

重要

您的 ExpressRoute 線路會從發出服務金鑰的那一刻起計費。 請確定當連線提供者準備好布建線路時,請執行這項作業。

回應包含服務金鑰。 您可以執行下列命令來取得所有參數的詳細描述:

get-help New-AzExpressRouteCircuit -detailed

列出所有 ExpressRoute 線路

若要取得您所建立的所有 ExpressRoute 線路列表,請執行 Get-AzExpressRouteCircuit 命令:

Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "ExpressRouteResourceGroup"

回應看起來類似下列範例:

Name                             : ExpressRouteARMCircuit
ResourceGroupName                : ExpressRouteResourceGroup
Location                         : westus
Id                               : /subscriptions/***************************/resourceGroups/ExpressRouteResourceGroup/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuit
Etag                             : W/"################################"
ProvisioningState                : Succeeded
Sku                              : {
                                    "Name": "Standard_MeteredData",
                                    "Tier": "Standard",
                                    "Family": "MeteredData"
                                    }
CircuitProvisioningState          : Enabled
ServiceProviderProvisioningState  : NotProvisioned
ServiceProviderNotes              :
ServiceProviderProperties         : {
                                    "ServiceProviderName": "Equinix",
                                    "PeeringLocation": "Silicon Valley",
                                    "BandwidthInMbps": 200
                                    }
ServiceKey                        : **************************************
Peerings                          : []

您隨時可以使用 Get-AzExpressRouteCircuit Cmdlet 擷取此資訊。 在沒有參數的呼叫時,會列出所有線路。 您的服務金鑰會列在 [ServiceKey ] 欄位中:

Get-AzExpressRouteCircuit

回應看起來類似下列範例:

Name                             : ExpressRouteARMCircuit
ResourceGroupName                : ExpressRouteResourceGroup
Location                         : westus
Id                               : /subscriptions/***************************/resourceGroups/ExpressRouteResourceGroup/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuit
Etag                             : W/"################################"
ProvisioningState                : Succeeded
Sku                              : {
                                    "Name": "Standard_MeteredData",
                                    "Tier": "Standard",
                                    "Family": "MeteredData"
                                    }
CircuitProvisioningState         : Enabled
ServiceProviderProvisioningState : NotProvisioned
ServiceProviderNotes             :
ServiceProviderProperties        : {
                                    "ServiceProviderName": "Equinix",
                                    "PeeringLocation": "Silicon Valley",
                                    "BandwidthInMbps": 200
                                    }
ServiceKey                       : **************************************
Peerings                         : []

將服務金鑰傳送至您的連線提供者以進行佈建

ServiceProviderProvisioningState 提供您在服務提供者端布建目前狀態的相關信息。 CircuitProvisioningState 提供您在 Microsoft 端的狀態。 如需線路布建狀態的詳細資訊,請參閱 工作流程

當您建立新的 ExpressRoute 線路時,線路會是下列狀態:

ServiceProviderProvisioningState : NotProvisioned
CircuitProvisioningState         : Enabled

當連線提供者目前為您啟用時,線路會變更為下列狀態:

ServiceProviderProvisioningState : Provisioning
CircuitProvisioningState         : Enabled

若要使用 ExpressRoute 線路,它必須處於下列狀態:

ServiceProviderProvisioningState : Provisioned
CircuitProvisioningState         : Enabled

定期檢查線路金鑰的狀態和狀態

檢查服務金鑰的狀態和狀態,可讓您知道提供者何時佈建線路。 設定線路之後, ServiceProviderProvisioningState 會顯示為 已布建,如下列範例所示:

Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "ExpressRouteResourceGroup"

回應看起來類似下列範例:

Name                             : ExpressRouteARMCircuit
ResourceGroupName                : ExpressRouteResourceGroup
Location                         : westus
Id                               : /subscriptions/***************************/resourceGroups/ExpressRouteResourceGroup/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuit
Etag                             : W/"################################"
ProvisioningState                : Succeeded
Sku                              : {
                                    "Name": "Standard_MeteredData",
                                    "Tier": "Standard",
                                    "Family": "MeteredData"
                                    }
CircuitProvisioningState         : Enabled
ServiceProviderProvisioningState : Provisioned
ServiceProviderNotes             :
ServiceProviderProperties        : {
                                    "ServiceProviderName": "Equinix",
                                    "PeeringLocation": "Silicon Valley",
                                    "BandwidthInMbps": 200
                                    }
ServiceKey                       : **************************************
Peerings                         : []

建立路由設定

如需逐步指示,請參閱 ExpressRoute 線路路由設定 一文,以建立和修改線路對等互連。

重要

這些指示僅適用於使用提供第 2 層連線服務的服務提供者所建立的線路。 如果您使用提供受控第 3 層服務的服務提供者(通常是 IP VPN,例如 MPLS),您的連線提供者會為您設定和管理路由。

接下來,將虛擬網路連結至 ExpressRoute 線路。 當您使用 Resource Manager 部署模型時,請使用將虛擬網路連結至 ExpressRoute 線路一文。

取得 ExpressRoute 線路的狀態

您可以使用 Get-AzExpressRouteCircuit Cmdlet 隨時擷取此資訊。 在沒有參數的呼叫時,會列出所有線路。

Get-AzExpressRouteCircuit

回應如下列範例所示:

Name                             : ExpressRouteARMCircuit
ResourceGroupName                : ExpressRouteResourceGroup
Location                         : westus
Id                               : /subscriptions/***************************/resourceGroups/ExpressRouteResourceGroup/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuit
Etag                             : W/"################################"
ProvisioningState                : Succeeded
Sku                              : {
                                    "Name": "Standard_MeteredData",
                                    "Tier": "Standard",
                                    "Family": "MeteredData"
                                    }
CircuitProvisioningState         : Enabled
ServiceProviderProvisioningState : Provisioned
ServiceProviderNotes             :
ServiceProviderProperties        : {
                                        "ServiceProviderName": "Equinix",
                                        "PeeringLocation": "Silicon Valley",
                                        "BandwidthInMbps": 200
                                    }
ServiceKey                       : **************************************
Peerings                         : []

您可以將資源群組名稱和線路名稱當做參數傳遞至呼叫,以取得特定 ExpressRoute 線路的相關信息:

Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "ExpressRouteResourceGroup"

回應看起來類似下列範例:

Name                             : ExpressRouteARMCircuit
ResourceGroupName                : ExpressRouteResourceGroup
Location                         : westus
Id                               : /subscriptions/***************************/resourceGroups/ExpressRouteResourceGroup/providers/Microsoft.Network/expressRouteCircuits/ExpressRouteARMCircuit
Etag                             : W/"################################"
ProvisioningState                : Succeeded
Sku                              : {
                                        "Name": "Standard_MeteredData",
                                        "Tier": "Standard",
                                        "Family": "MeteredData"
                                    }
CircuitProvisioningState         : Enabled
ServiceProviderProvisioningState : Provisioned
ServiceProviderNotes             :
ServiceProviderProperties        : {
                                        "ServiceProviderName": "Equinix",
                                        "PeeringLocation": "Silicon Valley",
                                        "BandwidthInMbps": 200
                                    }
ServiceKey                       : **************************************
Peerings                         : []

您可以執行下列命令來取得所有參數的詳細描述:

get-help Get-AzExpressRouteCircuit -detailed

修改 ExpressRoute 線路

您可以修改 ExpressRoute 線路的某些屬性,而不會影響連線。

您可以執行下列工作,而無需中途停機:

  • 啟用或停用 ExpressRoute 線路的 ExpressRoute 進階附加元件。
  • 增加 ExpressRoute 線路的頻寬,前提是埠上有可用的容量。 不支援將線路的頻寬降級。
  • 將計量方案從 [計量付費] 變更為 [無限制]。 不支援將計量計劃從無限制數據變更為計量數據。
  • 您可以啟用和停用 [允許傳統作業]

如需限制的詳細資訊,請參閱 ExpressRoute 常見問題

啟用 ExpressRoute 進階附加元件

您可以使用下列 PowerShell 代碼段,為您的現有線路啟用 ExpressRoute 進階附加元件:

$ckt = Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "ExpressRouteResourceGroup"

$ckt.Sku.Tier = "Premium"
$ckt.sku.Name = "Premium_MeteredData"

Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt

線路現在已啟用 ExpressRoute 進階附加元件功能。 一旦命令成功執行,我們就會開始為您收取進階附加元件功能的帳單。

停用 ExpressRoute 進階附加元件

重要

如果您使用的資源大於標準線路允許的資源,此作業可能會失敗。

請注意下列資訊︰

  • 從進階降級為標準之前,您必須確定連結至線路的虛擬網路數目小於 10。 如果您不這樣做,更新要求就會失敗,且我們會以進階費率計費。
  • 其他地理政治區域中的所有虛擬網路都必須先取消連結。 如果您未移除連結,您的更新要求會失敗,我們會繼續以進階費率向您收費。
  • 就私用對等設定而言,路由表必須少於 4000 個路由。 如果您的路由表大小大於 4,000 個路由,BGP 會話就會卸除。 在公告前綴數目低於 4,000 之前,BGP 會話才會重新建立。

您可以使用下列 PowerShell Cmdlet 來停用現有線路的 ExpressRoute 進階附加元件:

$ckt = Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "ExpressRouteResourceGroup"

$ckt.Sku.Tier = "Standard"
$ckt.sku.Name = "Standard_MeteredData"

Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt

更新 ExpressRoute 線路頻寬

如需提供者支持的頻寬選項,請參閱 ExpressRoute 常見問題。 您可以挑選大於現有線路大小的任何大小。

重要

如果現有的連接埠上沒有足夠的容量,您可能必須重新建立 ExpressRoute 線路。 如果該位置已無額外的容量,您無法升級線路。

降低 ExpressRoute 線路的頻寬時必須中斷運作。 頻寬降級需要取消佈建 ExpressRoute 線路,然後重新佈建新的 ExpressRoute 線路。

決定您需要的大小之後,請使用下列命令來調整線路的大小:

$ckt = Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "ExpressRouteResourceGroup"

$ckt.ServiceProviderProperties.BandwidthInMbps = 1000

Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt

您的線路會在 Microsoft 端升級。 然後,您必須連絡您的連線提供者,以更新其端的設定,以符合這項變更。 進行此通知之後,我們會開始為您收取更新頻寬選項的帳單。

將 SKU 從計量移至無限制

您可以使用下列 PowerShell 代碼段來變更 ExpressRoute 線路的 SKU:

$ckt = Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "ExpressRouteResourceGroup"

$ckt.Sku.Family = "UnlimitedData"
$ckt.sku.Name = "Premium_UnlimitedData"

Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt

控制傳統和 Resource Manager 環境的存取

檢閱將 ExpressRoute 線路從傳統移至 Resource Manager 部署模型中的指示

取消布建 ExpressRoute 線路

請注意下列資訊︰

  • 所有虛擬網路都必須從 ExpressRoute 線路取消連結。 如果此作業失敗,請確認是否有任何虛擬網路連結至循環。
  • 如果 ExpressRoute 線路服務提供者佈建狀態為 ProvisioningProvisioned,您就必須與服務提供者一起合作,取消佈建他們那邊的線路。 我們會繼續保留資源並向您收取費用,直到線路服務提供者完成取消佈建並通知我們。
  • 如果服務提供者取消布建線路,表示服務提供者布建狀態設定為 [未布建],您可以刪除線路。 線路的計費會停止。

清除資源

您可以執行下列命令來刪除 ExpressRoute 線路:

Remove-AzExpressRouteCircuit -ResourceGroupName "ExpressRouteResourceGroup" -Name "ExpressRouteARMCircuit"

下一步

建立線路並與您的提供者布建之後,請繼續進行下一個步驟來設定對等互連: