Partilhar via


Guia de início rápido: criar um Servidor de Rotas do Azure usando um modelo ARM

Este guia de início rápido mostra como usar um modelo do Azure Resource Manager (modelo ARM) para implantar o Azure Route Server em uma rede virtual nova ou existente. O Azure Route Server permite o roteamento dinâmico entre sua rede virtual e dispositivos virtuais de rede por meio do emparelhamento BGP, gerenciando automaticamente as trocas de rotas em sua infraestrutura de rede.

Ao concluir este início rápido, você terá um Servidor de Rotas funcional implantado com a infraestrutura de rede necessária e pronto para a configuração de emparelhamento BGP.

Um modelo do Azure Resource Manager é um arquivo JSON (JavaScript Object Notation) que define a infraestrutura e a configuração do seu projeto. O modelo usa sintaxe declarativa. Você descreve a implantação pretendida sem escrever a sequência de comandos de programação para criar a implantação.

Se seu ambiente atender aos pré-requisitos e você estiver familiarizado com o uso de modelos ARM, selecione o botão Implantar no Azure para abrir o modelo no portal do Azure.

Botão para implantar o modelo do Azure Resource Manager no portal do Azure.

Pré-requisitos

Antes de começar, certifique-se de que tem os seguintes requisitos:

Rever o modelo

O modelo utilizado neste início rápido pertence aos Modelos de Início Rápido do Azure. Este modelo ARM implanta um ambiente completo do Route Server, incluindo a infraestrutura de rede virtual e a configuração de emparelhamento BGP.

O modelo cria os seguintes recursos:

  • Azure Route Server em uma rede virtual nova ou existente
  • Sub-rede dedicada chamada RouteServerSubnet para hospedar o Route Server
  • Configuração de emparelhamento BGP com ASN de par e IP de par especificados
{
  "$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'))]"
      ]
    }
  ]
}

Recursos de modelo

Os seguintes recursos do Azure são definidos no modelo:

Para encontrar mais modelos relacionados à rede do Azure, consulte Modelos de início rápido do Azure.

Implementar o modelo

Você pode implantar o modelo usando o Azure PowerShell por meio do Azure Cloud Shell ou do seu ambiente PowerShell local.

  1. Selecione Open Cloud Shell no seguinte bloco de código para abrir o Azure Cloud Shell e siga as instruções para entrar no 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 ..."
    

    Aguarde até ver o prompt do console.

  2. Selecione Copiar do bloco de código anterior para copiar o script do PowerShell.

  3. Clique com o botão direito do mouse no painel do console de shell e selecione Colar.

  4. Insira os valores quando solicitado:

    • Nome do projeto: Usado para gerar nomes de recursos (o nome do grupo de recursos será o nome do projeto com rg anexado)
    • Local: região do Azure onde os recursos serão implantados

    A implantação leva aproximadamente 20 minutos para ser concluída. Quando terminar, a saída deve ser semelhante a:

    Captura de ecrã mostrando a saída da implementação do modelo PowerShell do Route Server Resource Manager.

O Azure PowerShell é usado para implantar o modelo neste exemplo. Você também pode usar o portal do Azure, a CLI do Azure e a API REST para implantação de modelo. Para saber mais sobre outros métodos de implantação, consulte Implantar modelos.

Validar a implementação

Após a conclusão da implantação do modelo, verifique se o Servidor de Rotas foi criado com êxito.

Verificar recursos no portal do Azure

  1. Inicie sessão no portal Azure.

  2. Selecione Grupos de recursos no painel esquerdo.

  3. Selecione o grupo de recursos que você criou na seção anterior. O nome padrão do grupo de recursos é o nome do projeto com rg acrescentado.

  4. O grupo de recursos deve conter a rede virtual e os recursos associados:

    Captura de tela mostrando o grupo de recursos de implantação do Route Server com rede virtual e recursos relacionados.

Verificar a implantação do Route Server

  1. No portal do Azure, navegue até seu grupo de recursos e selecione o recurso Servidor de rotas.

  2. Na página Visão geral do Route Server, verifique o seguinte:

    • O status mostra como "Bem-sucedido"
    • BGP ASN exibe o número do sistema autônomo configurado
    • O Estado de Roteamento é exibido como "Provisionado"

    Captura de tela mostrando a página de visão geral do Route Server confirmando a implantação bem-sucedida.

Limpeza de recursos

Quando não precisar mais do Servidor de Rotas e dos recursos associados, exclua o grupo de recursos para remover o Servidor de Rotas e todos os recursos relacionados.

Para excluir o grupo de recursos, use o cmdlet Remove-AzResourceGroup :

Remove-AzResourceGroup -Name <your resource group name>

Próximo passo

Agora que você implantou um Route Server usando um modelo ARM, saiba mais sobre os recursos do Route Server: