Dela via


Snabbstart: Skapa en Azure Route Server med hjälp av en ARM-mall

Den här snabbstarten visar hur du använder en Azure Resource Manager-mall (ARM-mall) för att distribuera Azure Route Server till ett nytt eller befintligt virtuellt nätverk. Azure Route Server möjliggör dynamisk routning mellan ditt virtuella nätverk och virtuella nätverksinstallationer via BGP-peering, vilket automatiskt hanterar routningsutbyten i nätverksinfrastrukturen.

Genom att slutföra den här snabbstarten har du en fungerande routningsserver distribuerad med nödvändig nätverksinfrastruktur och redo för BGP-peeringkonfiguration.

En Azure Resource Manager-mall är en JSON-fil (JavaScript Object Notation) som definierar infrastrukturen och konfigurationen för projektet. Mallen använder deklarativ syntax. Du beskriver den avsedda distributionen utan att skriva sekvensen med programmeringskommandon för att skapa distributionen.

Om din miljö uppfyller kraven och du är bekant med att använda ARM-mallar väljer du knappen Distribuera till Azure för att öppna mallen i Azure Portal.

Knapp för att distribuera Azure Resource Manager-mallen till Azure-portalen.

Förutsättningar

Kontrollera att du har följande krav innan du börjar:

Granska mallen

Mallen som används i den här snabbstarten kommer från Azure-snabbstartsmallar. Den här ARM-mallen distribuerar en fullständig routningsservermiljö, inklusive den virtuella nätverksinfrastrukturen och BGP-peeringkonfigurationen.

Mallen skapar följande resurser:

  • Azure Route Server i ett nytt eller befintligt virtuellt nätverk
  • Dedikerat undernät med namnet RouteServerSubnet som värd för routningsservern
  • BGP-peeringkonfiguration med angiven Peer ASN och Peer 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'))]"
      ]
    }
  ]
}

Mallresurser

Följande Azure-resurser definieras i mallen:

Mer information om mallar som rör Azure-nätverk finns i Azure-snabbstartsmallar.

Distribuera mallen

Du kan distribuera mallen med hjälp av Azure PowerShell via Azure Cloud Shell eller din lokala PowerShell-miljö.

  1. Välj Öppna Cloud Shell från följande kodblock för att öppna Azure Cloud Shell och följ sedan anvisningarna för att logga in på 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 ..."
    

    Vänta tills du ser uppmaningen från konsolen.

  2. Välj Kopiera från föregående kodblock för att kopiera PowerShell-skriptet.

  3. Högerklicka på gränssnittskonsolfönstret och välj sedan Klistra in.

  4. Ange värdena när du uppmanas att göra följande:

    • Projektnamn: Används för att generera resursnamn (resursgruppens namn blir projektnamnet med rg bifogat)
    • Plats: Azure-region där resurser ska distribueras

    Distributionen tar cirka 20 minuter att slutföra. När du är klar bör utdata se ut ungefär så här:

    Skärmbild som visar distributionsutdata för PowerShell med Route Server Resource Manager-mall.

Azure PowerShell används för att distribuera mallen i det här exemplet. Du kan också använda Azure-portalen, Azure CLI och REST API för malldistribution. Mer information om andra distributionsmetoder finns i Distribuera mallar.

Validera utrullningen

När malldistributionen är klar kontrollerar du att routningsservern har skapats.

Verifiera resurser i Azure-portalen

  1. Logga in på Azure-portalen.

  2. Välj Resursgrupper i det vänstra fönstret.

  3. Välj den resursgrupp som du skapade i föregående avsnitt. Standardnamnet för resursgruppen är projektnamnet med rg bifogat.

  4. Resursgruppen ska innehålla det virtuella nätverket och associerade resurser:

    Skärmdump som visar resursgruppen Routeserverdistribution med distribuerat virtuellt nätverk och relaterade resurser.

Verifiera routningsserverdistribution

  1. Från Azure-portalen navigerar du till resursgruppen och väljer route server-resursen.

  2. På översiktssidan routningsserver kontrollerar du följande:

    • Status visas som "Lyckades"
    • BGP ASN visar det konfigurerade autonoma systemnumret
    • Routningstillståndet visas som "Etablerad"

    Skärmbild som visar routningsserveröversiktssidan som bekräftar att distributionen har slutförts.

Rensa resurser

När du inte längre behöver routningsservern och associerade resurser tar du bort resursgruppen för att ta bort routningsservern och alla relaterade resurser.

Om du vill ta bort resursgruppen använder du cmdleten Remove-AzResourceGroup :

Remove-AzResourceGroup -Name <your resource group name>

Gå vidare

Nu när du har distribuerat en routningsserver med hjälp av en ARM-mall kan du läsa mer om routningsserverfunktioner: