Compartir a través de


Inicio rápido: Creación de una instancia de Azure Route Server mediante una plantilla de Resource Manager

En este inicio rápido se muestra cómo usar una plantilla de Azure Resource Manager (plantilla de ARM) para implementar Azure Route Server en una red virtual nueva o existente. Azure Route Server permite el enrutamiento dinámico entre la red virtual y las aplicaciones virtuales de red a través del emparejamiento BGP, administrando automáticamente los intercambios de rutas en la infraestructura de red.

Al completar este inicio rápido, tendrá un servidor de rutas en funcionamiento implementado con la infraestructura de red necesaria y lista para la configuración de emparejamiento BGP.

Una plantilla de Azure Resource Manager es un archivo de notación de objetos JavaScript (JSON) que define tanto la infraestructura como la configuración de un proyecto. La plantilla usa sintaxis declarativa. La implementación deseada se describe sin escribir la secuencia de comandos de programación para crear la implementación.

Si su entorno cumple los requisitos previos y ya está familiarizado con el uso de plantillas de ARM, puede seleccionar el botón Implementar en Azure para abrir la plantilla en Azure Portal.

Botón para implementar la plantilla de Azure Resource Manager en Azure Portal.

Requisitos previos

Antes de comenzar, asegúrese de que tiene los siguientes requisitos:

Revisión de la plantilla

La plantilla usada en este inicio rápido forma parte de las plantillas de inicio rápido de Azure. Esta plantilla de ARM implementa un entorno completo de Route Server, incluida la infraestructura de red virtual y la configuración de emparejamiento BGP.

La plantilla crea los siguientes recursos:

  • Azure Route Server en una red virtual nueva o existente
  • Subred dedicada denominada RouteServerSubnet para hospedar el servidor de rutas
  • Configuración de emparejamiento BGP con el ASN del par y la IP del 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 plantilla

Los siguientes recursos de Azure se definen en la plantilla:

Para encontrar más plantillas relacionadas con las redes de Azure, consulte Plantillas de inicio rápido de Azure.

Implementación de la plantilla

Puede implementar la plantilla mediante Azure PowerShell a través de Azure Cloud Shell o el entorno de PowerShell local.

  1. Seleccione Abrir Cloud Shell en el siguiente bloque de código para abrir Azure Cloud Shell y siga las instrucciones para iniciar sesión en 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 ..."
    

    Espere hasta que vea el aviso de la consola.

  2. Seleccione Copiar en el bloque de código anterior para copiar el script de PowerShell.

  3. Haga clic con el botón derecho en el panel de consola del shell y, a continuación, seleccione Pegar.

  4. Escriba los valores cuando se le solicite:

    • Nombre del proyecto: se usa para generar nombres de recursos (el nombre del grupo de recursos será el nombre del proyecto con rg anexado)
    • Ubicación: región de Azure donde se implementarán los recursos

    La implementación tarda aproximadamente 20 minutos en completarse. Cuando termine, la salida debe ser similar a la siguiente:

    Captura de pantalla que muestra la salida de implementación de PowerShell de la plantilla de Resource Manager de Route Server.

Azure PowerShell se usa para implementar la plantilla en este ejemplo. También puede usar Azure Portal, la CLI de Azure y la API REST para la implementación de plantillas. Para obtener información sobre otros métodos de implementación, consulte Implementación de plantillas.

Validación de la implementación

Una vez completada la implementación de la plantilla, compruebe que Route Server se creó correctamente.

Comprobación de los recursos en Azure Portal

  1. Inicie sesión en Azure Portal.

  2. Seleccione Grupos de recursos en el panel izquierdo.

  3. Seleccione el grupo de recursos que creó en la sección anterior. El nombre del grupo de recursos predeterminado es el nombre del proyecto con rg anexado.

  4. El grupo de recursos debe contener la red virtual y los recursos asociados:

    Captura de pantalla que muestra el grupo de recursos de implementación de Route Server con red virtual y recursos relacionados.

Comprobación de la implementación de Route Server

  1. En Azure Portal, vaya al grupo de recursos y seleccione el recurso Route Server.

  2. En la página Información general de Route Server, compruebe lo siguiente:

    • El estado se muestra como "Exitoso"
    • BGP ASN muestra el número de sistema autónomo configurado
    • Estado de enrutamiento se muestra como "Aprovisionado"

    Captura de pantalla que muestra la página de información general de Route Server que confirma la implementación correcta.

Limpieza de recursos

Cuando ya no necesite el servidor de rutas y los recursos asociados, elimine el grupo de recursos para quitar route Server y todos los recursos relacionados.

Para eliminar el grupo de recursos, use el cmdlet Remove-AzResourceGroup :

Remove-AzResourceGroup -Name <your resource group name>

Paso siguiente

Ahora que ha implementado un servidor de rutas mediante una plantilla de ARM, obtenga más información sobre las funcionalidades de Route Server: