本快速入門示範如何使用 Azure Resource Manager 範本 (ARM 範本) 將 Azure 路由伺服器部署至新的或現有的虛擬網路。 Azure 路由伺服器會透過 BGP 對等互連,在虛擬網路與網路虛擬設備之間啟用動態路由,自動管理網路基礎結構中的路由交換。
完成本快速入門後,您將擁有使用必要網路基礎結構部署的正常運作路由伺服器,並準備好進行 BGP 對等互連設定。
Azure Resource Manager 範本是一個 JavaScript 物件標記法 (JSON) 檔案,會定義專案的基礎結構和設定。 範本會使用宣告式語法。 您可以描述預期的部署,而不需要撰寫程式設計命令順序來建立部署。
如果您的環境符合必要條件,而且您很熟悉 ARM 範本的使用方式,請選取 [部署至 Azure] 按鈕,在 Azure 入口網站中開啟該範本。
先決條件
開始之前,請確定您符合下列需求:
- 具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
- 熟悉 Azure 路由伺服器服務限制。
檢閱範本
本快速入門中使用的範本是來自 Azure 快速入門範本。 此 ARM 範本會部署完整的路由伺服器環境,包括虛擬網路基礎結構和 BGP 對等互連組態。
範本會建立下列資源:
- 全新或現有虛擬網路中的 Azure 路由伺服器
- 名為 RouteServerSubnet 的專用子網路,用於裝載路由伺服器
- 具有指定對等 ASN 和對等 IP 的 BGP 對等互連組態
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.5.6.12127",
"templateHash": "3572840517141664306"
}
},
"parameters": {
"vnetName": {
"type": "string",
"defaultValue": "routeservervnet",
"metadata": {
"description": "Name of new or existing vnet to which Azure Route Server should be deployed."
}
},
"vnetIpPrefix": {
"type": "string",
"defaultValue": "10.1.0.0/16",
"metadata": {
"description": "IP prefix for available addresses in vnet address space."
}
},
"vnetNew_or_Existing": {
"type": "string",
"defaultValue": "New",
"allowedValues": [
"New",
"Existing"
],
"metadata": {
"description": "Specify whether to provision new vnet or deploy to existing vnet."
}
},
"routeServerSubnetIpPrefix": {
"type": "string",
"defaultValue": "10.1.1.0/26",
"metadata": {
"description": "Route Server subnet IP prefix MUST be within vnet IP prefix address space."
}
},
"publicIpNew_or_Existing": {
"type": "string",
"defaultValue": "New",
"allowedValues": [
"New",
"Existing"
],
"metadata": {
"description": "Specify whether to provision new standard public IP or deploy using existing standard public IP."
}
},
"publicIpName": {
"type": "string",
"defaultValue": "routeserverpip",
"metadata": {
"description": "Name of the standard Public IP used for the Route Server"
}
},
"firstRouteServerName": {
"type": "string",
"defaultValue": "routeserver",
"metadata": {
"description": "Name of Route Server."
}
},
"routeServerBgpConnectionName": {
"type": "string",
"defaultValue": "conn1",
"metadata": {
"description": "Name of BGP connection."
}
},
"peerAsn": {
"type": "int",
"defaultValue": 65002,
"metadata": {
"description": "Peer ASN connecting to."
}
},
"peerIp": {
"type": "string",
"defaultValue": "10.0.1.4",
"metadata": {
"description": "Peer IP connecting to."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Azure region for Route Server and virtual network."
}
}
},
"variables": {
"ipconfigName": "ipconfig1",
"routeServerSubnetName": "RouteServerSubnet"
},
"resources": [
{
"condition": "[equals(parameters('vnetNew_or_Existing'), 'New')]",
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2020-05-01",
"name": "[parameters('vnetName')]",
"location": "[parameters('location')]",
"properties": {
"addressSpace": {
"addressPrefixes": [
"[parameters('vnetIpPrefix')]"
]
}
}
},
{
"type": "Microsoft.Network/virtualNetworks/subnets",
"apiVersion": "2020-05-01",
"name": "[format('{0}/{1}', parameters('vnetName'), variables('routeServerSubnetName'))]",
"properties": {
"addressPrefix": "[parameters('routeServerSubnetIpPrefix')]"
},
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', parameters('vnetName'))]"
]
},
{
"condition": "[equals(parameters('publicIpNew_or_Existing'), 'New')]",
"type": "Microsoft.Network/publicIPAddresses",
"apiVersion": "2020-05-01",
"name": "[parameters('publicIpName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard"
},
"properties": {
"publicIPAllocationMethod": "Static",
"publicIPAddressVersion": "IPv4",
"idleTimeoutInMinutes": 4
}
},
{
"type": "Microsoft.Network/virtualHubs",
"apiVersion": "2020-06-01",
"name": "[parameters('firstRouteServerName')]",
"location": "[parameters('location')]",
"properties": {
"sku": "Standard"
}
},
{
"type": "Microsoft.Network/virtualHubs/ipConfigurations",
"apiVersion": "2020-06-01",
"name": "[format('{0}/{1}', parameters('firstRouteServerName'), variables('ipconfigName'))]",
"properties": {
"subnet": {
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetName'), variables('routeServerSubnetName'))]"
},
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses', parameters('publicIpName'))]"
}
},
"dependsOn": [
"[resourceId('Microsoft.Network/virtualHubs', parameters('firstRouteServerName'))]",
"[resourceId('Microsoft.Network/publicIPAddresses', parameters('publicIpName'))]",
"[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetName'), variables('routeServerSubnetName'))]"
]
},
{
"type": "Microsoft.Network/virtualHubs/bgpConnections",
"apiVersion": "2020-06-01",
"name": "[format('{0}/{1}', parameters('firstRouteServerName'), parameters('routeServerBgpConnectionName'))]",
"properties": {
"peerAsn": "[parameters('peerAsn')]",
"peerIp": "[parameters('peerIp')]"
},
"dependsOn": [
"[resourceId('Microsoft.Network/virtualHubs', parameters('firstRouteServerName'))]",
"[resourceId('Microsoft.Network/virtualHubs/ipConfigurations', parameters('firstRouteServerName'), variables('ipconfigName'))]"
]
}
]
}
範本資源
範本中定義了下列 Azure 資源:
- Microsoft.Network/virtualNetworks - 裝載路由伺服器的虛擬網路
- Microsoft.Network/virtualNetworks/subnets - 兩個子網,包括必要的 RouteServerSubnet
- Microsoft.Network/virtualHubs - 路由伺服器部署資源
- Microsoft.Network/virtualHubs/ipConfigurations - 路由伺服器的 IP 設定
- Microsoft.Network/virtualHubs/bgpConnections - 具有對等 ASN 和對等 IP 的 BGP 對等互連設定
若要尋找與 Azure 網路相關的更多範本,請參閱 Azure 快速入門範本。
部署範本
您可以透過 Azure Cloud Shell 或本機 PowerShell 環境,使用 Azure PowerShell 部署範本。
從下列程式碼區塊中選取 [ 開啟 Cloud Shell ] 以開啟 Azure Cloud Shell,然後依照指示登入 Azure:
$projectName = Read-Host -Prompt "Enter a project name that is used for generating resource names" $location = Read-Host -Prompt "Enter the location (i.e. centralus)" $templateUri = "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.network/route-server/azuredeploy.json" $resourceGroupName = "${projectName}rg" New-AzResourceGroup -Name $resourceGroupName -Location "$location" New-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateUri $templateUri Read-Host -Prompt "Press [ENTER] to continue ..."等候直到您看見主控台的提示字元。
從先前的程式碼區塊選取 [複製] 以複製 PowerShell 指令碼。
以滑鼠右鍵按一下殼層主控台窗格,然後選取 [貼上]。
出現提示時輸入值:
- 專案名稱:用於產生資源名稱 (資源群組名稱會是附加 rg 的專案名稱)
- 位置:將部署資源的 Azure 區域
部署大約需要 20 分鐘才能完成。 完成後,輸出應該類似於:
在此範例中,Azure PowerShell 可用來部署範本。 您也可以使用 Azure 入口網站、Azure CLI 和 REST API 進行範本部署。 若要瞭解其他部署方法,請參閱 部署範本。
驗證部署
範本部署完成後,請確認已成功建立路由伺服器。
在 Azure 入口網站中驗證資源
登入 Azure 入口網站。
選取左側面板中的 [資源群組]。
選取您在上一節中建立的資源群組。 預設的資源群組名稱是附加 rg 的專案名稱。
資源群組應該包含虛擬網路和相關聯的資源:
驗證路由伺服器部署
從 Azure 入口網站 流覽至您的資源群組,然後選取路由伺服器資源。
在路由伺服器概觀頁面上,確認下列項目:
- 狀態顯示 為「成功」
- BGP ASN 會顯示已設定的自治系統編號
- 路由狀態顯示 為「已佈建」
清除資源
當您不再需要路由伺服器和相關聯的資源時,請刪除資源群組以移除路由伺服器和所有相關資源。
若要刪除資源群組,請使用 Remove-AzResourceGroup Cmdlet:
Remove-AzResourceGroup -Name <your resource group name>
後續步驟
現在您已使用 ARM 範本部署路由伺服器,請深入瞭解路由伺服器功能: