Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве показано, как использовать шаблон Azure Resource Manager (шаблон ARM) для развертывания сервера маршрутизации Azure в новой или существующей виртуальной сети. Azure Route Server обеспечивает динамическую маршрутизацию между виртуальной сетью и виртуальными сетевыми устройствами через пиринг BGP, автоматически управляя обмена маршрутами в сетевой инфраструктуре.
Выполнив это краткое руководство, вы развернете функционирующие серверы маршрутизации с необходимой сетевой инфраструктурой и готовыми к настройке пиринга BGP.
Шаблон Azure Resource Manager — это файл нотации объектов JavaScript (JSON), который определяет инфраструктуру и конфигурацию проекта. В шаблоне используется декларативный синтаксис. Вы описываете предполагаемое развертывание без написания последовательности команд программирования для создания развертывания.
Если ваша среда соответствует предварительным требованиям и вы знакомы с использованием шаблонов ARM, нажмите кнопку "Развернуть в Azure", чтобы открыть шаблон в портале Azure.
Предварительные требования
Перед началом работы убедитесь, что у вас есть следующие требования:
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
- Знакомство с ограничениями службы Azure Route Server.
Просмотрите шаблон
Шаблон, используемый в этом кратком руководстве, взят из шаблонов быстрого запуска Azure. Этот шаблон ARM развертывает полную среду сервера маршрутизации, включая инфраструктуру виртуальной сети и конфигурацию пиринга BGP.
Шаблон создает следующие ресурсы:
- Сервер маршрутизации Azure в новой или существующей виртуальной сети
- Выделенная подсеть с именем RouteServerSubnet для размещения сервера маршрутизации
- Конфигурация пиринга BGP с указанным ASN однорангового узла и IP-адресом однорангового узла.
{
"$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 — конфигурация пиринга BGP с одноранговым ASN и IP-адресом однорангового узла
Дополнительные шаблоны, связанные с сетями Azure, см. в статье "Шаблоны быстрого запуска Azure".
Развертывание шаблона
Шаблон можно развернуть с помощью Azure PowerShell в Azure Cloud Shell или в локальной среде выполнения PowerShell.
Выберите Open 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 перейдите к группе ресурсов и выберите ресурс Route Server.
На странице обзора сервера маршрутов проверьте следующее:
- Состояние отображается как "Успешно"
- BGP ASN отображает настроенный номер автономной системы
- Состояние маршрутизации отображается как "Подготовлено"
Очистка ресурсов
Если сервер маршрутизации и связанные ресурсы больше не нужны, удалите группу ресурсов, чтобы удалить сервер маршрутизации и все связанные ресурсы.
Чтобы удалить группу ресурсов, используйте командлет Remove-AzResourceGroup :
Remove-AzResourceGroup -Name <your resource group name>
Следующий шаг
Теперь, когда вы развернули сервер маршрутизации с помощью шаблона ARM, узнайте больше о возможностях сервера маршрутизации: