次の方法で共有


クイックスタート: ARM テンプレートを使用して Azure ルート サーバーを作成する

このクイック スタートでは、Azure Resource Manager テンプレート (ARM テンプレート) を使用して、Azure Route Server を新規または既存の仮想ネットワークにデプロイする方法について説明します。 Azure Route Server を使用すると、BGP ピアリングを介して仮想ネットワークとネットワーク仮想アプライアンス間の動的ルーティングが可能になり、ネットワーク インフラストラクチャ内のルート交換が自動的に管理されます。

このクイック スタートを完了すると、必要なネットワーク インフラストラクチャと共に機能するルート サーバーがデプロイされ、BGP ピアリング構成の準備が整います。

Azure Resource Manager テンプレートは JavaScript Object Notation (JSON) ファイルであり、プロジェクトのインフラストラクチャと構成が定義されています。 このテンプレートでは、宣言型の構文が使用されています。 デプロイしようとしているものを、デプロイを作成する一連のプログラミング コマンドを記述しなくても記述できます。

環境が前提条件を満たしていて、ARM テンプレートの使用に慣れている場合は、[Azure へのデプロイ] ボタンを選んで Azure portal でテンプレートを開きます。

Azure Resource Manager テンプレートを Azure portal にデプロイするボタン。

前提条件

開始する前に、次の要件があることを確認します。

テンプレートを確認する

このクイックスタートで使用されるテンプレートは Azure クイックスタート テンプレートからのものです。 この ARM テンプレートは、仮想ネットワーク インフラストラクチャや BGP ピアリング構成を含む、完全なルート サーバー環境をデプロイします。

このテンプレートでは、次のリソースが作成されます。

  • 新規または既存の仮想ネットワーク内の Azure Route Server
  • Route Server をホストするための 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 リソースが定義されています。

Azure ネットワークに関連するその他のテンプレートについては、「 Azure クイック スタート テンプレート」を参照してください。

テンプレートのデプロイ

Azure Cloud Shell またはローカル PowerShell 環境を使用して、Azure PowerShell を使用してテンプレートをデプロイできます。

  1. 次のコード ブロックから [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 ..."
    

    コンソールからプロンプトが表示されるまで待ちます。

  2. 前のコード ブロックから [コピー] を選択して、PowerShell スクリプトをコピーします。

  3. シェル コンソール ウィンドウを右クリックし、 [貼り付け] を選択します。

  4. メッセージが表示されたら、値を入力します。

    • プロジェクト名: リソース名の生成に使用されます (リソース グループ名は 、rg が付加されたプロジェクト名になります)
    • 場所: リソースがデプロイされる Azure リージョン

    デプロイの完了には約 20 分かかります。 完了すると、出力は次のようになります。

    Route Server Resource Manager テンプレートの PowerShell デプロイ出力を示すスクリーンショット。

この例では、Azure PowerShell を使用してテンプレートをデプロイします。 テンプレートのデプロイには、Azure portal、Azure CLI、REST API を使用することもできます。 その他のデプロイ方法については、「テンプレートの デプロイ」を参照してください。

デプロイの検証

テンプレートのデプロイが完了したら、ルート サーバーが正常に作成されたことを確認します。

Azure portal でリソースを確認する

  1. Azure portal にサインインします。

  2. 左側のウィンドウから [リソース グループ] を選択します。

  3. 前のセクションで作成したリソース グループを選択します 既定のリソース グループ名は、プロジェクト名に rg が追加されたものです。

  4. リソース グループには、仮想ネットワークと関連するリソースが含まれている必要があります。

    仮想ネットワークと関連リソースを含む Route Server デプロイ リソース グループを示すスクリーンショット。

ルート サーバーの展開を確認する

  1. Azure portal からリソース グループに移動し、ルート サーバー リソースを選択します。

  2. [ルート サーバーの概要] ページで、次のことを確認します。

    • 状態 が "Succeeded" と表示される
    • BGP ASN に、構成済みの自律システム番号が表示されます
    • ルーティング状態 が "プロビジョニング済み" と表示される

    デプロイが成功したことを確認する [Route Server の概要] ページを示すスクリーンショット。

リソースをクリーンアップする

ルート サーバーと関連リソースが不要になったら、リソース グループを削除して、ルート サーバーとすべての関連リソースを削除します。

リソース グループを削除するには、Remove-AzResourceGroup コマンドレットを使用します。

Remove-AzResourceGroup -Name <your resource group name>

次のステップ

ARM テンプレートを使用してルート サーバーをデプロイしたので、ルート サーバーの機能の詳細を確認します。