快速入門:使用 Azure PowerShell 建立和修改 ExpressRoute 線路
本快速入門向您展示了如何使用 Azure PowerShell 以三種不同的復原類型建立 ExpressRoute 線路:[最大復原]、[高復原] 和 [標準復原]。 您將了解如何使用 PowerShell Cmdlet 來檢查狀態、更新、刪除或取消佈建線路。
必要條件
Azure Cloud Shell
Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 Bash 或 PowerShell 搭配 Cloud Shell,與 Azure 服務共同使用。 您可以使用 Cloud Shell 預先安裝的命令,執行本文提到的程式碼,而不必在本機環境上安裝任何工具。
要啟動 Azure Cloud Shell:
選項 | 範例/連結 |
---|---|
選取程式碼或命令區塊右上角的 [試試看]。 選取 [試試看] 並不會自動將程式碼或命令複製到 Cloud Shell 中。 | |
請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 | |
選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 |
若要使用 Azure Cloud Shell:
啟動 Cloud Shell。
選取程式碼區塊 (或命令區塊) 上的 [複製] 按鈕以複製程式碼或命令。
透過在 Windows 和 Linux 上選取 Ctrl+Shift+V;或在 macOS 上選取 Cmd+Shift+V,將程式碼或命令貼到 Cloud Shell 工作階段中。
選取 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 線路,則需要知道復原性位置的清單。 以下是擷取此資訊的步驟:
複製指令碼
# Clone the setup script from GitHub.
git clone https://github.com/Azure-Samples/azure-docs-powershell-samples/
# Change to the directory where the script is located.
CD azure-docs-powershell-samples/expressroute/
執行復原性位置指令碼
執行 [Get-AzExpressRouteResilientLocations.ps1] 指令碼以取得復原性位置清單。 以下範例顯示了如何依距離矽谷的距離對特定訂用帳戶的復原性位置進行排序:
$SubscriptionId = Get-AzureSubscription -SubscriptionName "<SubscriptionName>"
highAvailabilitySetup/Get-AzExpressRouteResilientLocations.ps1 -SubscriptionId $SubscriptionId -RelativeLocation "silicon valley"
如果您不指定位置,您會得到所有復原性位置的清單。
建立 ExpressRoute 線路
若您還沒有資源群組,您必須在建立 ExpressRoute 線路之前建立一個。 您可以透過執行 [New-AzResourceGroup] Cmdlet 來辦到:
$resourceGroupName = (New-AzResourceGroup -Name "ExpressRouteResourceGroup" -Location "West US").ResourceGroupName
如果您已有資源群組,可以使用 [Get-AzResourceGroup] 將資源群組名稱取得至變數中:
$resourceGroupName = (Get-AzResourceGroup -Name "<ResourceGroupName>").ResourceGroupName
[最大復原] (建議) - 為您的 ExpressRoute 連線提供最高層級的復原。 其會在兩個不同的 ExpressRoute 邊緣位置提供具有本機備援的兩個 ExpressRoute 線路。
以下範例顯示了如何透過 Equinix 在矽谷和華盛頓特區建立兩個具有本機備援的 ExpressRoute 線路。 如果您使用不同的提供者和不同的設定,請在您提出要求時取代成該資訊。
注意
此範例使用 [New-AzHighAvailabilityExpressRouteCircuits.ps1] 指令碼。 您必須從 GitHub 複製指令碼才能建立線路。 如需更多資訊,請參閱 [複製指令碼]。
$SubscriptionId = Get-AzureSubscription -SubscriptionName "<SubscriptionName>"
highAvailabilitySetup/New-AzHighAvailabilityExpressRouteCircuits.ps1 -SubscriptionId $SubscriptionId -ResourceGroupName $resourceGroupName -Location "westus" -Name1 $circuit1Name -Name2 $circuit2Name -SkuFamily1 "MeteredData" -SkuFamily2 "MeteredData" -SkuTier1 "Standard" -SkuTier2 "Standard" -ServiceProviderName1 "Equinix" -ServiceProviderName2 "Equinix" -PeeringLocation1 "Silicon Valley" -PeeringLocation2 "Washington DC" -BandwidthInMbps 1000
注意
最大復原可針對 ExpressRoute 位置中的位置範圍內的中斷和連線失敗提供最大程度的保護。 對於所有關鍵和生產工作負載,強烈建議使用此選項。
請確定您指定正確的 SKU 層和 SKU 系列:
- SKU 層會決定 ExpressRoute 線路是本機、標準或進階。 您可以指定「本機」、「*標準」或「進階」。
- SKU 系列決定計費類型。 您可以指定 [Metereddata] 以採用計量付費數據傳輸方案,選取 [Unlimiteddata] 以採用無限行動數據方案。 您可以將計費類型從 [MeteredData] 變更為 [UnlimitedData],但無法將類型從 [UnlimitedData] 變更為 [MeteredData]。 「本機」線路一律為 [UnlimitedData]。
重要
ExpressRoute 線路會從發出服務金鑰時開始收費。 請確定在連線提供者準備好佈建線路之後,再執行這項作業。
回應包含服務金鑰。 您可以執行下列命令來取得所有參數的詳細描述:
get-help New-AzExpressRouteCircuit -detailed
列出所有 ExpressRoute 循環
若要取得您已建立的所有 ExpressRoute 線路清單,請執行 Get-AzExpressRouteCircuit 命令:
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 : []
您隨時可以使用 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 : 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] 會顯示為 [Provisioned],如下列範例所示:
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 線路
接下來,將虛擬網路連結到 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 個路由。 如果您的路由資料表大小大於 4000 個路由,BGP 工作階段會卸除。 直到已公告的前置詞數目低於 4000 之前,不會重新建立 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 線路服務提供者佈建狀態為 Provisioning 或 Provisioned,您就必須與服務提供者一起合作,取消佈建他們那邊的線路。 我們會繼續保留資源並向您收取費用,直到線路服務提供者完成取消佈建並通知我們。
- 若服務提供者已取消佈建線路,表示服務提供者佈建狀態設定為 [未佈建],則您可以刪除線路。 針對循環的計費隨即會停止。
清除資源
您可以執行下列命令來刪除 ExpressRoute 線路:
Remove-AzExpressRouteCircuit -ResourceGroupName "ExpressRouteResourceGroup" -Name "ExpressRouteARMCircuit"
下一步
當您建立線路並與您的提供者進行佈建之後,請繼續進行下一個步驟來設定對等互連: