ルーター アプライアンス インスタンスの作成

ルーター アプライアンスは、Google Cloud のネットワーク接続管理のためのハブアンドスポーク モデルである Network Connectivity Center でサポートされているスポークタイプの一つです。このページでは、ルーター アプライアンス インスタンスを作成および設定する方法について説明します。選択したアプローチによっては、プロセスの一部を自動化できます。ただし、Router アプライアンス スポークを使用して接続を確立するには、必要なすべてのタスクを完了する必要があります。

必要なタスクは次のとおりです。

  1. ルーター アプライアンス インスタンスとして機能する Compute Engine 仮想マシン(VM)を作成します。VM は、サポートされているパートナー ソリューションまたは独自のカスタム イメージを使用して作成できます。

  2. ルーター アプライアンス インスタンスが TCP ポート 179 で BGP トラフィックにアクセスできるようにする。このタスクでは、ファイアウォール ルールの作成が必要になる場合があります。

  3. ルーター アプライアンス インスタンスを使用するスポークを作成する。

  4. Cloud Router を設定する。このタスクには、次のサブタスクが含まれます。

    1. ルーター アプライアンス インスタンスと同じリージョンに Cloud Router を作成する。

    2. Cloud Router に 2 つのインターフェースを作成する

    3. Cloud Router で BGP ピアリングを構成する。

  5. ルーター アプライアンス インスタンスで BGP ピアリングを構成する。

これらのタスクの完了方法は、選択肢によって大きく異なる場合があります。たとえば、パートナー ソリューションを使用してルーター アプライアンス インスタンスを作成する場合、後のタスクの一部が自動的に行われることがあります。

構成の例:

このページでは、サンプル構成の設定方法について説明します。この設定では、2 つのルーター アプライアンス インスタンスで Virtual Private Cloud(VPC)ネットワークとオンプレミス ネットワーク間の接続を提供します。Network Connectivity Center では、等価コスト マルチパス(ECMP)ルーティングを使用して、ルーター アプライアンス インスタンス間でトラフィックを負荷分散します。ネットワーク間でのルートの分散には、Border Gateway Protocol(BGP)を使用します。

このサンプル構成では、ルーター アプライアンス インスタンスが同じサブネットワーク(サブネット)に配置されています。ただし、各ルーター アプライアンス インスタンスは異なるゾーンにあります。

各ルーター アプライアンス インスタンスは、同じ Cloud Router を使用して BGP セッションを維持します。この Cloud Router には 2 つのインターフェースがあります。各ルーター アプライアンス インスタンスはそれぞれのインターフェースとピアリングされるため、ピアリング セッションは合計で 4 つになります。

このトポロジでは、サイト間のデータ転送は実証されていません。ただし、このトポロジの設定手順は、サイト間データ転送トポロジの半分で使用する場合と同じです。サイト間データ転送の詳細については、ルーター アプライアンスの概要をご覧ください。

ルーター アプライアンスの BGP セッションの作成
ルーター アプライアンス インスタンスの BGP セッションの作成(クリックして拡大)

始める前に

始める前に、次のセクションを確認してください。

プロジェクトの作成または選択

Network Connectivity Center を簡単に構成できるように、まず、有効なプロジェクトを特定します。

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  3. Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  4. Cloud SDK をインストールして初期化します。
  5. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  6. Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  7. Cloud SDK をインストールして初期化します。
  1. gcloud コマンドライン ツールを使用している場合は、次のコマンドを実行してプロジェクト ID を設定します。このページの gcloud の説明では、プロジェクト ID がすでに設定されていることを前提としています。
    gcloud config set project PROJECT_ID
        
  1. 次のコマンドを実行して、ID が設定されていることを確認します。
    gcloud config list --format='text(core.project)'
        

Network Connectivity API を有効にする

Network Connectivity Center を使用して任意のタスクを行う前に、Network Connectivity API を有効にする必要があります。

Console

Network Connectivity API を有効にするには:

  1. Cloud Console で、[Network Connectivity Center] ページに移動します。

    [Network Connectivity Center] に移動

  2. [有効にする] をクリックします。

また、API の有効化で説明されているように、Cloud Console API ライブラリを使用して API を有効にすることもできます。

アクセスの取得

Network Connectivity Center を使用するには、アクセス制御で説明されている権限が必要です。

Network Connectivity Center の構成時に、VPC ネットワーク、サブネット、ファイアウォール ルールなどの Google Cloud リソースも操作します。これらのリソースの操作に必要な権限については、Compute Engine アクセス制御のドキュメントをご覧ください。

IP アドレスとルーター アプライアンス インスタンス

ルーター アプライアンス インスタンスを設定するには、インスタンスと Cloud Router の間にピアリングを確立する必要があります。ピアリングを設定するには、VM が RFC 1918 の内部 IP アドレスを使用する必要があります。VM が異なるタイプのアドレスを使用している場合、この 2 つのリソースをピアリングすることはできません。

VM の IP アドレスを確認する方法については、次のドキュメントをご覧ください。

IP アドレスタイプの定義と詳細については、IP アドレスをご覧ください。

静的内部 IP アドレスの予約(推奨)

再起動時にアドレスが変更されないように、ルーター アプライアンス インスタンスに静的内部 IP アドレスを割り振ることをおすすめします。アドレスが変更されると、BGP ピアリングは失敗します。

予約済みの IP アドレスを割り振るには、いくつかの方法があります。IP アドレスを事前に予約できます。また、VM の作成時に IP アドレスを予約することもできます。VM にエフェメラル アドレスを誤って割り振った場合は、後で静的アドレスに変換できます。静的 IP アドレスの詳細については、静的 IP アドレスの予約をご覧ください。

BGP ピアリングの IP アドレス

ルーター アプライアンス インスタンスは、内部 IP アドレスを使用して Cloud Router とピアリングします。このインスタンスは、BGP ピアリングにリンクローカル アドレス(169.254.x.x など)を使用しません

同様に、Cloud Router は、ルーター アプライアンス インスタンスとピアリングするため、インターフェースごとに 1 つずつ、合わせて 2 つの RFC 1918 内部 IP アドレスを使用します。これらの IP アドレスは、ルーター アプライアンス インスタンス インターフェースと Cloud Router インターフェースの両方を含むサブネットから、手動または自動で割り振られます。

VPC リソースの作成

以降のセクションでは、VPC ネットワークとサブネットの作成方法を説明します。

VPC ネットワークの作成

VPC ネットワークがない場合は、作成してください。ネットワークの動的ルーティング モードglobal に設定します。

VPC ネットワークの作成の詳細については、ネットワークの作成をご覧ください。

Console

Google Cloud Console を使用してカスタム VPC ネットワークを作成するには、カスタムモード ネットワークの作成をご覧ください。動的ルーティング モードグローバルに設定されていることを確認します。このサンプル構成で使用されている命名規則に従う場合は、network-a という名前のネットワークを作成します。

gcloud

カスタム VPC ネットワークを作成するには、次のコマンドを入力します。

  gcloud compute networks create NAME \
      --subnet-mode custom \
      --bgp-routing-mode global

NAME は、VPC ネットワークの名前に置き換えます(network-a など)。

API

Compute Engine API を使用してカスタム VPC ネットワークを作成するには、VPC ネットワークの使用をご覧ください。

サブネットの作成

network-a にサブネットを 1 つ作成し、Router アプライアンス インスタンスとして使用する VM インスタンスを含めます。

Console

Cloud Console を使用してサブネットを追加するには、サブネットの追加をご覧ください。

このサンプル構成で使用されている命名規則に従って記述する場合は、次の値を使用します。

  • 名前: subnet-a-1
  • リージョン: us-west1
  • 範囲: 10.0.1.0/24

gcloud

VPC サブネットを作成するには、次のコマンドを入力します。

  gcloud compute networks subnets create NAME \
      --network=NETWORK \
      --region=REGION \
      --range=RANGE

次のように置き換えます。

  • NAME: Router アプライアンス VM を含むサブネットの名前(例: subnet-a-1
  • NETWORK: サブネットを含むネットワーク(例: network-a
  • REGION: サブネットを含むリージョン(例: us-west1
  • RANGE: CIDR 表記のサブネットの IP 範囲(例: 10.0.1.0/24

API

Compute Engine API を使用して VPC サブネットを作成するには、VPC ネットワークの使用をご覧ください。

ルーター アプライアンス VM の作成

ルーター アプライアンス インスタンスとして機能する Compute Engine VM を作成します。サンプル構成では、router-app-arouter-app-b の 2 つの VM を使用しています。

大まかに言うと、ルーター アプライアンス イメージは、ネットワーク仮想アプライアンス イメージを使用する VM を作成して作成します。このイメージは次のいずれかです。

イメージの指定の詳細については、次のリソースをご覧ください。

VM 作成の詳細については、VM インスタンスの作成と起動をご覧ください。

このセクションの例では、Router アプライアンス インスタンス用に予約済みの IP アドレスがあることを前提としています。詳細については、Router アプライアンスの IP アドレスをご覧ください。

Console

この構成例で使用する 2 つの VM を作成するには、VM インスタンスの作成と起動をご覧ください。VM を作成するときに、次の選択を行います。

  • このサンプル構成で使用されている命名規則に従って記述する場合は、次の値を使用します。

    • 名前: router-app-a または router-app-b
    • リージョン: us-west1
    • ゾーン: us-west1-a または us-west1-b
  • イメージを選択するには、ページの [ブートディスク] 領域に移動し、[変更] をクリックして、VM に適切なイメージに移動します。

  • [ネットワーク、ディスク、セキュリティ、管理、単一テナンシー] を開いて、[ネットワーキング] を開きます。次の値を使用します。

    • [IP 転送] で [有効にする] を選択します。
    • [ネットワーク インターフェース] で [ネットワーク インターフェースを追加] を選択し、次のフィールドに入力します。
      • ルーター アプライアンス インスタンスを配置するサブネットを選択します(例: subnet-a-1)。
      • [プライマリ内部 IP] で、使用する予約済み RFC 1918 内部 IP アドレスを選択します(例: 10.0.1.10)。
      • [ネットワーク サービス ティア] で [プレミアム] を選択します。この選択により、トラフィックが Google のネットワークを使用する範囲が最大になります。

gcloud

サンプル構成で使用されている 2 台のルーター アプライアンス VM を作成するには、次のコマンドを実行します。INSTANCE_NAME は、ルーター アプライアンス インスタンスとして機能する VM の名前に置き換えます。

次の例では、あらかじめ予約済みの静的内部 IP アドレスと静的外部 IP アドレスを VM に割り当てています。また、ベンダーから提供された VM のイメージを含むプロジェクトとイメージの名前も指定します。

  gcloud compute instances create INSTANCE_NAME \
      --project=PROJECT \
      --zone=ZONE \
      --machine-type=MACHINE_TYPE \
      --network-tier=NETWORK_TIER \
      --network-interface=[subnet=SUBNET,private-network-ip=INTERNAL_IP_ADDRESS] \
      --can-ip-forward \
      --image-project=IMAGE_PROJECT \
      --image=IMAGE

次のように置き換えます。

  • INSTANCE_NAME: ルーラー アプライアンス インスタンスとして機能する VM の名前(例: router-app-arouter-app-b)。
  • PROJECT: ルーター アプライアンス VM を含むプロジェクトの名前(例: my-project
  • ZONE: VM が配置されている Google Cloud ゾーン(例: us-west1-a
  • MACHINE_TYPE: VM に使用するマシンタイプ リソース(例: n1-standard-2
  • NETWORK_TIER: Router アプライアンス VM を作成する際は、ネットワーク階層premium に設定します。こうすることで、トラフィックが使用する Google ネットワークの範囲が最大化されます。
  • SUBNET: VM のプライマリ ネットワーク インターフェースに割り当てられるサブネット(例: subnet-a-1
  • INTERNAL_IP_ADDRESS: Cloud Router に接続する VM インターフェースに割り当てられる RFC 1918 内部 IP アドレス(例: 10.0.1.10
  • IMAGE_PROJECT: image フィールドで指定されたイメージを含むプロジェクトの名前(例: debian-cloud
  • IMAGE: インストールするイメージの名前(例: debian-10-buster-v20210217

API

サンプル構成で使用されている 2 台のルーター アプライアンス VM を作成するには、compute.instances.insert メソッドを使用します。

他の作成方法については、VM インスタンスの作成と起動をご覧ください。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/zones/ZONE/instances
 {
   "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
   "name": "INSTANCE_NAME",
   "canIpForward": "true",
   "networkInterfaces": [{
     "subnetwork": "regions/REGION/subnetworks/SUBNET",
     "networkIP": "INTERNAL_IP_ADDRESS",
     "accessConfigs": [{
         "networkTier": "NETWORK_TIER,
       }]
     }],
    "disks": [{
      "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      },
      "boot": true
   }]
 }

次のように置き換えます。

  • PROJECT: ルーター アプライアンス VM を含むプロジェクトの名前(例: my-project
  • ZONE: VM が配置されている Google Cloud ゾーン(例: us-west1-a
  • MACHINE_TYPE: VM に使用するマシンタイプ リソース(例: zones/us-west1-a/machineTypes/n1-standard-2
  • INSTANCE_NAME: VM の名前(例: router-app-arouter-app-b
  • REGION: VM を含むリージョン(例: us-west1
  • SUBNET: VM のプライマリ ネットワーク インターフェースに割り当てられるサブネット(例: regions/us-west1/subnetworks/subnet-a-1
  • INTERNAL_IP_ADDRESS: VM に割り当てられ、Cloud Router に接続する VM インターフェースのアドレスを構成する RFC 1918 内部 IP アドレス(例: 10.0.1.10
  • NETWORK_TIER: Router アプライアンス VM を作成する際は、ネットワーク階層premium に設定します。こうすることで、トラフィックが使用する Google ネットワークの範囲が最大化されます。
  • IMAGE_PROJECT: VM の作成に指定するイメージを含むプロジェクトの名前(例: debian-cloud
  • IMAGE: VM の作成に使用するイメージの名前(例: debian-10-buster-v20210217

BGP を許可するファイアウォール ルールの作成

TCP ポート 179network-a への BGP トラフィックを許可するファイアウォール ルールを作成します。

ファイアウォール コマンドの詳細については、ファイアウォール ルールの使用をご覧ください。

Console

Cloud Console を使用して VPC ファイアウォール ルールを作成するには、ファイアウォール ルールの作成をご覧ください。

gcloud

gcloud コマンドライン ツールを使用して VPC ファイアウォール ルールを作成するには、VPC ファイアウォール ルールの使用をご覧ください。

API

Compute Engine API を使用して VPC ファイアウォール ルールを作成するには、VPC ファイアウォール ルールの使用をご覧ください。

Network Connectivity Center のリソースを作成する

ルーター アプライアンス VM を使用するには、Router アプライアンス スポークを含む必要な Network Connectivity Center のリソースを作成する必要があります。

ハブの作成

Network Connectivity Center のスポークを作成する前に、ハブを作成する必要があります。

Console

  1. Cloud Console で、[Network Connectivity Center] ページに移動します。

    [Network Connectivity Center] に移動

  2. プロジェクトのプルダウン メニューでプロジェクトを選択します。

  3. ハブ名を入力します。

  4. 必要に応じて説明を入力します。

  5. プロジェクト ID を確認します。プロジェクト ID が誤っている場合は、画面上部のプルダウン メニューを使用して別のプロジェクトを選択します。

  6. [続行] をクリックします。

  7. Console に、スポークを作成できるフォームが表示されます。入力方法については、Router アプライアンス スポークの作成をご覧ください。

  8. [完了] をクリックします。

gcloud

ハブを作成するには、gcloud network-connectivity hubs create コマンドを使用します。

  gcloud network-connectivity hubs create HUB_NAME \
    --description="DESCRIPTION" \
    --labels="KEY"="VALUE"

次の値を置き換えます。

  • HUB_NAME: 新しいハブの名前
  • DESCRIPTION: ハブを説明するテキスト(省略可)
  • KEY: ラベルテキストの Key-Value ペアのキー(省略可)
  • VALUE: ラベルテキストの Key-Value ペアの値(省略可)

API

ハブを作成するには、networkconnectivity.hubs.create メソッドを使用します。

  POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/global/hubs
  {
    "name":"HUB_NAME",
    "description":"DESCRIPTION",
    "labels": {
      "KEY": "VALUE"
    }
  }

次の値を置き換えます。

  • PROJECT_ID: 新しいハブを含むプロジェクトのプロジェクト ID
  • HUB_NAME: 新しいハブの名前
  • DESCRIPTION: ハブを説明するテキスト(省略可)
  • KEY: ラベルテキストの Key-Value ペアのキー(省略可)
  • VALUE: ラベルテキストの Key-Value ペアの値(省略可)

Router アプライアンス スポークの作成

先ほど作成した 2 つのルーター アプライアンス インスタンスを使用する Router アプライアンス スポークを作成します。ルーター アプライアンス インスタンスと Cloud Router の間の BGP ピアリングを有効にするためには、スポークを作成する必要があります(次のステップで作成します)。

スポークの作成方法の詳細については、ハブとスポークの操作をご覧ください。

Console

スポークの基本情報を入力する

  1. Google Cloud Console で、[Network Connectivity Center] ページに移動します。
  2. Network Connectivity Center に移動
  3. プロジェクトのプルダウン メニューでプロジェクトを選択します。
  4. [スポーク] タブをクリックします。
  5. [スポークを追加する] をクリックします。
  6. [ネットワーク] プルダウン リストで、ネットワークを選択します。すべてのハブのスポークが同じ VPC ネットワーク内に存在する必要があります。このハブのスポークをすでに作成している場合は、[ネットワーク] に値があらかじめ入力されており、変更できません。
  7. [新しいスポーク] フォームに、スポーク名を入力します。必要であれば、説明も入力します。

ルーター アプライアンスの詳細を入力する

  1. [スポークタイプ] を [ルーター アプライアンス] に設定します。
  2. スポークのリージョンを選択します。
  3. ルーター アプライアンス インスタンスを選択します。
    1. [インスタンスを追加] をクリックします。
    2. [インスタンス] メニューから、既存のルーター アプライアンス インスタンスを選択します。
  4. このスポークにルーター アプライアンス インスタンスを追加するには、上記の手順を繰り返します。終了したら、[完了] をクリックして「スポークを保存する」に進みます。

スポークの保存

  1. さらにスポークを追加する場合は、[スポークを追加する] をクリックして手順をもう一度開始し、スポークの名前を入力します。
  2. スポークの追加が完了したら、[作成] をクリックします。Network Connectivity Center のページが更新され、作成したスポークの詳細が表示されます。

gcloud

Router アプライアンス スポークを作成するには、gcloud network-connectivity spokes linked-router-appliances create コマンドを使用します。たとえば、2 つのルーター アプライアンス インスタンスを含むスポークを作成するには、次のコマンドを入力します。

  gcloud network-connectivity spokes linked-router-appliances create NAME \
    --hub="HUB_URI" \
    --description="DESCRIPTION" \
    --router-appliance=instance="ROUTER_APPLIANCE_URI",ip=IP_ADDRESS \
    --router-appliance=instance="ROUTER_APPLIANCE_URI_2",ip=IP_ADDRESS_2 \
    --region=REGION \
    --labels="KEY"="VALUE" \
    --site-to-site-data-transfer
 

次の値を置き換えます。

  • NAME: スポークの名前
  • HUB_URI: スポークを接続するハブ URI
  • DESCRIPTION: スポークを説明するテキスト(省略可)。例: us-vpn-spoke
  • ROUTER_APPLIANCE_URI: 最初のルーター アプライアンス インスタンスの URI。例:
    https://www.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME 
  • IP_ADDRESS: 最初のルーター アプライアンス インスタンスの内部 IP アドレス
  • ROUTER_APPLIANCE_URI_2: 2 番目のルーター アプライアンス インスタンスの URI
  • IP_ADDRESS_2: 2 番目のルーター アプライアンス インスタンスの内部 IP アドレス
  • REGION: スポークを配置する Google Cloud リージョン(us-west1 など)
  • KEY: ラベルテキストの Key-Value ペアのキー(省略可)
  • VALUE: ラベルテキストの Key-Value ペアの値(省略可)

    たとえば、次のコマンドは、基盤となるリソースとして router-app-arouter-app-b を使用するルーター アプライアンス スポークを作成します。

    gcloud network-connectivity spokes create my-spoke \
        --hub=my-hub \
        --description="Test spoke 1" \
        --router-appliance=instance="https://www.googleapis.com/compute/v1/projects/my-project/zones/us-west1-a/instances/router-app-a",ip=10.0.1.10 \
        --router-appliance=instance="https://www.googleapis.com/compute/v1/projects/my-project/zones/us-west1-b/instances/router-app-b",ip=10.0.1.11 \
        --region=us-west1 \
        --labels="environment"="test"
        --site-to-site-data-transfer
    

API

Router アプライアンス スポークを作成するには、networkconnectivity.spokes.create メソッドを使用します。スポークに関連付けるルーター アプライアンス インスタンスごとに、linkedRouterApplianceInstances.instances 配列を使用してインスタンスを追加します。

  POST https://networkconnectivity.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/spokes/SPOKE_NAME
  {
    "hub": "HUB_URI",
    "labels": {"KEY": "VALUE"},
    "linkedRouterApplianceInstances": {
        "instances": [
          {
            "virtual_machine": "ROUTER_APPLIANCE_URI",
            "ip_address": INTERNAL_IP_ADDRESS,
          },
          {
            "virtual_machine": "ROUTER_APPLIANCE_URI_2,
            "ip_address": INTERNAL_IP_ADDRESS_2,
          }],
      "site_to_site_data_transfer": true
    }
  }
 

次の値を置き換えます。

  • PROJECT_ID: プロジェクトのプロジェクト ID
  • REGION: スポークを配置する Google Cloud リージョン(us-west1 など)
  • SPOKE_NAME: スポークに付ける名前。
  • HUB_URI: スポークを接続するハブの URI。以下に例を示します。
    http://networkconnectivity.googleapis.com/v1/projects/PROJECT_NAME/locations/global/hubs/HUB_NAME 
  • KEY: ラベルテキストの Key-Value ペアのキー(省略可)
  • VALUE: ラベルテキストの Key-Value ペアの値(省略可)
  • ROUTER_APPLIANCE_URI: 最初のルーター アプライアンス インスタンスの URI。例:
    https://www.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME 
  • IP_ADDRESS: 最初のルーター アプライアンス インスタンスの内部 IP アドレス
  • ROUTER_APPLIANCE_URI_2: 2 番目のルーター アプライアンス インスタンスの URI
  • IP_ADDRESS_2: 2 番目のルーター アプライアンス インスタンスの内部 IP アドレス

    たとえば、router-app-arouter-app-b を基盤となるリソースとして使用するスポークを作成するには、リクエストの本文を次のように構成する必要があります。

    {
      "hub": "http://networkconnectivity.googleapis.com/v1/projects/my-project/locations/global/hubs/my-hub",
    
      "labels": {
        "environment" : "test"
      },
    
      "linked_router_appliance_instances": {
         "instances": [
             {
                "virtual_machine": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-west1-a/instances/router-app-a",
                "ip_address": "10.0.1.10",
             },
             {
                "virtual_machine": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-west1-b/instances/router-app-b",
                "ip_address":  "10.0.1.11",
             }
          ],
          "site_to_site_data_transfer": true
      }
    }
    
    

Cloud Router の設定

ルーター アプライアンスは、Cloud Router を使用して VPC ネットワークとルートを交換します。このため、Cloud Router を作成していくつかの設定タスクを完了する必要があります。

Cloud Router の作成

ルーター VM と同じネットワークとリージョンにリソースを作成します。構成例では、これらのリソースは network-aus-west1 です。

詳細については、Cloud Router の作成をご覧ください。

Console

Cloud Console で Cloud Router を作成するには、次のいずれかの方法を使用します。

  • [Cloud Router の作成] ページの説明に従って、[Cloud Router] ページを使用します。

  • [Network Connectivity Center] ページを使用します。この方法の利点は、ルーター、インターフェース、BGP セッションを同時に作成できることです。これらの手順をすべて完了する方法については、Cloud Router での BGP ピアリングの構成をご覧ください。

gcloud

Cloud Router を作成するには、次のコマンドを入力します。

  gcloud compute routers create NAME \
      --region=REGION \
      --network=NETWORK \
      --asn=ASN \
      --project=PROJECT_ID

次のように置き換えます。

  • NAME: Cloud Router の名前(例: cloud-router-a
  • REGION: Cloud Router を含むリージョン(例: us-west1
  • NETWORK: Cloud Router を含む VPC ネットワーク(例: network-a
  • ASN: Cloud Router の自律システム番号(ASN)。この AS 番号は、RFC 6996 で定義された 16 ビットまたは 32 ビットのプライベート AS 番号である必要があります(例: 65000
  • PROJECT_ID: Cloud Router のプロジェクト ID(例: my-project

API

Cloud Router を作成するには、compute.routers.insert メソッドを使用します。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers
{
 "name": "NAME",
 "network": "NETWORK",
 "bgp": {
   "asn": ASN
  }
}

次のように置き換えます。

  • PROJECT_ID: Cloud Router のプロジェクト ID(例: my-project
  • REGION: Cloud Router を含むリージョン(例: us-west1
  • NAME: Cloud Router の名前(例: cloud-router-a
  • NETWORK: Cloud Router を含む VPC ネットワークの URI(例: /global/networks/network-a
  • ASN: Cloud Router の自律システム番号(ASN)。この AS 番号は、RFC 6996 で定義された 16 ビットまたは 32 ビットのプライベート AS 番号である必要があります(例: 65000

Cloud Router に 2 つの冗長インターフェースを作成する

サンプル構成では、2 つの冗長な Cloud Router インターフェースを作成し、subnet-a-1 に関連付けます。

Cloud Router インターフェースには、リージョンの内部 IP アドレスを使用します。

インターフェース用に内部 IP アドレスを明示的に指定する場合、その IP アドレスはサブネットのプライマリ IP アドレス範囲の中にある必要があります。VM や別の Cloud Router インターフェースなど、別のリソースですでに使用されている IP アドレスは指定できません。事前にサブネットから IP アドレスを予約するには、アドレス リソースを作成し、Cloud Router インターフェースにこの予約済みの IP アドレスを使用します。

このステップに Cloud Console の手順はありません。Cloud Console を使用して BGP ピアを作成すると、インターフェースが自動的に作成されるためです。

gcloud

Cloud Router に 2 つの冗長インターフェースを作成するには、次のコマンドを入力します。

--ip-address オプションを指定しない場合、Google はサブネットのプライマリ IP 範囲から空いている IP アドレスを見つけてインターフェースに割り当てます。

  1. 最初の Cloud Router インターフェースを作成します。

    gcloud compute routers add-interface NAME \
        --interface-name=INTERFACE_NAME \
        --ip-address=IP_ADDRESS \
        --subnetwork=SUBNET \
        --region=REGION \
        --project=PROJECT_ID
    
  2. 冗長な Cloud Router インターフェースを作成します。

    gcloud compute routers add-interface NAME \
        --interface-name=INTERFACE_NAME \
        --ip-address=IP_ADDRESS \
        --subnetwork=SUBNET \
        --redundant-interface=REDUNDANT_INTERFACE \
        --region=REGION \
        --project=PROJECT_ID
    

    次のように置き換えます。

    • NAME: 更新する Cloud Router の名前(例: cloud-router-a
    • INTERFACE_NAME: インターフェースの名前(例: router-appliance-interface-0router-appliance-interface-1
    • IP_ADDRESS: インターフェースに使用する RFC 1918 内部 IP アドレス(例: 10.0.1.510.0.1.6
    • SUBNET: 内部 IP アドレスを含むサブネット(例: subnet-a-1
    • REDUNDANT_INTERFACE: プライマリ インターフェースと同じ Router アプライアンス インスタンスとピアリングした冗長な Cloud Router インターフェース(例: router-appliance-interface-0
    • REGION: Cloud Router が存在する Google Cloud リージョン(例: us-west1
    • PROJECT_ID: Cloud Router のプロジェクト ID(例: my-project
  • 次のコマンドは、サンプル構成に記載されているように、Cloud Router に最初のインターフェースを作成します。

    gcloud compute routers add-interface cloud-router-a \
        --interface-name=router-appliance-interface-0 \
        --ip-address=10.0.1.5 \
        --subnetwork=subnet-a-1 \
        --region=us-west1 \
        --project=my-project
    
  • 次のコマンドは、サンプル構成に記載されているように、Cloud Router に冗長なインターフェースを作成します。

    gcloud compute routers add-interface cloud-router-a \
        --interface-name=router-appliance-interface-1 \
        --ip-address=10.0.1.6 \
        --subnetwork=subnet-a-1 \
        --redundant-interface=router-appliance-interface-0 \
        --region=us-west1 \
        --project=my-project
    

API

Cloud Router に 2 つの冗長インターフェースを作成するには、compute.routers.patch メソッドを使用します。

privateIpAddress オプションを指定しない場合、Google はサブネットのプライマリ IP 範囲から空いている IP アドレスを見つけてインターフェースに割り当てます。

  1. 最初の Cloud Router インターフェースを作成します。

    "PATCH
    https"://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/NAME
    {
      "region":"REGION",
      "interfaces":[
        {
          "name":"INTERFACE_NAME",
          "privateIpAddress:"IP_ADDRESS",
          "subnetwork": "https":"//www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET"
        }
      ]
    }
    
  2. 冗長な Cloud Router インターフェースを作成します。

    "PATCH
    https"://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/NAME
    {
      "region":"REGION",
      "interfaces":[
        {
          "name":"INTERFACE_NAME_1",
          "privateIpAddress:"IP_ADDRESS",
          "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET"
        },
        {
          "name":"INTERFACE_NAME_2",
          "privateIpAddress:"IP_ADDRESS",
          "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET",
          "redundantInterface": "INTERFACE_NAME_1"
        }
      ]
    }
    

    次のように置き換えます。

    • PROJECT_ID: Cloud Router のプロジェクト ID(例: my-project
    • REGION: Cloud Router が存在する Google Cloud リージョン(例: us-west1
    • NAME: 更新する Cloud Router の名前(例: cloud-router-a
    • NETWORK: Cloud Router を含む VPC ネットワーク(例: network-a
    • INTERFACE_NAME: インターフェースの名前(例: router-appliance-interface-0router-appliance-interface-1
    • SUBNET: RFC 1918 内部 IP アドレスを含むサブネットの URL
    • IP_ADDRESS: インターフェースに使用する内部 IP アドレス(例: 10.0.1.510.0.1.6
    • REDUNDANT_INTERFACE: プライマリ インターフェースと同じ Router アプライアンス インスタンスとピアリングした冗長な Cloud Router インターフェース(例: router-appliance-interface-0
  • 次のコマンドは、サンプル構成に記載されているように、cloud-router-a に最初のインターフェースを作成します。

    "PATCH https"://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/routers/cloud-router-a
    {
    "region":"us-west1",
    "interfaces":[
      {
        "name":"router-appliance-interface-0",
        "privateIpAddress:"10.0.1.5",
        "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/subnetworks/>"
      }
    ]
    }
    
  • 次のコマンドを実行すると、サンプル構成のように、cloud-router-a に冗長なインターフェースが作成されます。

    "PATCH https"://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/routers/cloud-router-a
    {
    "region":"us-west1",
    "interfaces":[
      {
        "name":"router-appliance-interface-0",
        "privateIpAddress:"10.0.1.5",
        "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/subnetworks/subnet-a-1"
      },
      {
        "name":"router-appliance-interface-0",
        "privateIpAddress:"10.0.1.6",
        "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-project/regions/us-west1/subnetworks/subnet-a-1",
        "redundantInterface": "router-appliance-interface-0"
      }
    ]
    }
    

Cloud Router での BGP ピアリングの構成

ルーター アプライアンス インスタンスごとに、Cloud Router に 2 つの BGP ピアを作成する必要があります(Cloud Router インターフェースごとに 1 つずつ)。BGP ピア IP アドレスは、ルーター アプライアンス インスタンスとして構成された VM のプライマリ内部 IP アドレスである必要があります。

router-app-a に BGP ピアを作成する

このセクションでは、サンプル構成の router-app-a という名前のルーター アプライアンス インスタンスに 2 つの BGP ピアを作成する方法について説明します。次のセクションでは、router-app-b に 2 つの BGP ピアを作成する方法について説明します。

次の例は、Cloud Router cloud-router-a の両方のインターフェースで router-app-a を BGP ピアとして構成する方法を示しています。

Console

  1. [Network Connectivity Center] ページに移動します。
  2. Network Connectivity Center に移動
  3. プロジェクトのプルダウン メニューでプロジェクトを選択します。
  4. [スポーク] タブをクリックします。
  5. [スポーク名] 列でスポークを選択して、[スポークの詳細] ページを表示します。

  1. [名前] 列で、router-app-a を見つけます。展開アイコンをクリックして [BGP セッションを構成] リンクを表示します。いずれかのリンクをクリックします。この操作に応じて、[Cloud Router と BGP セッションの構成] パネルが表示されます。

  1. [Cloud Router] で、次のいずれかを行います。

    • 既存の Cloud Router を選択するには、[既存のものを使用] をクリックします。[Cloud Router] フィールドに適切なリソースを指定し、[Select and continue] をクリックします。
    • [Network Connectivity Center] ページで Cloud Router を作成するには、[新規作成] をクリックし、プロンプトに従って Cloud Router を作成します。次に、[作成して続行] をクリックします。
  2. [BGP セッション] で、2 つの BGP セッションを設定します。次の手順をセッションごとに 1 回、計 2 回行います。
    1. [BGP セッションの編集] をクリックします。
    2. 名前ピア ASNアドバタイズされたルートの優先度(MED)を入力して、フォームに入力します。[保存して次へ] をクリックします。
  3. [作成] をクリックします。

gcloud

Cloud Router 上に router-app-a に対する 2 つの BGP ピアを作成するには、次のコマンドを入力します。

  1. 最初の BGP ピアを作成します。

    gcloud compute routers add-bgp-peer NAME \
        --peer-name=PEER_NAME \
        --interface=INTERFACE \
        --peer-ip-address=PEER_IP_ADDRESS \
        --peer-asn=PEER_ASN \
        --instance=ROUTER_APPLIANCE \
        --instance-zone=ROUTER_APPLIANCE_ZONE \
        --region=REGION
    
  2. 2 つ目の BGP ピアを作成します。

    gcloud compute routers add-bgp-peer NAME \
        --peer-name=PEER_NAME \
        --interface=INTERFACE \
        --peer-ip-address=PEER_IP_ADDRESS \
        --peer-asn=PEER_ASN \
        --instance=ROUTER_APPLIANCE \
        --instance-zone=ROUTER_APPLIANCE_ZONE \
        --region=REGION
    

    次のように置き換えます。

    • NAME: 更新する Cloud Router の名前
    • PEER_NAME: Router アプライアンス インスタンスとの間に確立する BGP ピアリング セッションの名前
    • INTERFACE: この BGP ピアのインターフェースの名前
    • PEER_IP_ADDRESS: ピアルーター(Router アプライアンス インスタンス)の内部 IP アドレス。このアドレスは、VM のプライマリ ネットワーク インターフェース(nic0)のプライマリ内部 IP アドレスと一致する必要があります。
    • PEER_ASN: この BGP ピアの BGP 自律システム番号(ASN)。この ASN は、RFC 6996 で定義された 16 ビットまたは 32 ビットのプライベート ASN でなければなりません。
    • ROUTER_APPLIANCE: Router アプライアンス インスタンスとして機能する VM の名前
    • ROUTER_APPLIANCE_ZONE: Router アプライアンス インスタンスとして機能する VM が配置されるゾーン
    • REGION: ルーター アプライアンス インスタンスとして機能する VM が配置されるリージョン

router-app-a のサンプル構成の例を次に示します。

  gcloud compute routers add-bgp-peer cloud-router-a \
      --peer-name=router-appliance-bgp-peer-router-app-a-0 \
      --interface=router-appliance-interface-0 \
      --peer-ip-address=10.0.1.10 \
      --peer-asn=65001 \
      --instance=router-app-a \
      --instance-zone=us-west1-a \
      --region=us-west1
  gcloud compute routers add-bgp-peer cloud-router-a \
      --peer-name=router-appliance-bgp-peer-router-app-a-1 \
      --interface=router-appliance-interface-1 \
      --peer-ip-address=10.0.1.10 \
      --peer-asn=65001 \
      --instance=router-app-a \
      --instance-zone=us-west1-a \
      --region=us-west1

API

Cloud Router 上に router-app-a に対する 2 つの BGP ピアを作成するには、compute.routers.patch メソッドを使用します。

PATCH
https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers/NAME
{
  "bgpPeers": [
  {
    "name": "PEER_NAME",
    "interfaceName": "INTERFACE_NAME",
    "ipAddress": "IP_ADDRESS",
    "peerIpAddress": "PEER_IP_ADDRESS",
    "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zone/ROUTER_APPLIANCE_ZONE/instances/ROUTER_APPLIANCE_INSTANCE",
    "peerAsn": PEER_ASN,
  }
  {
    "name": "PEER_NAME",
    "interfaceName": "INTERFACE_NAME",
    "ipAddress": "IP_ADDRESS",
    "peerIpAddress": "PEER_IP_ADDRESS",
    "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zone/ROUTER_APPLIANCE_ZONE/instances/ROUTER_APPLIANCE_INSTANCE",
    "peerAsn": PEER_ASN
   }
 ]
}

次のように置き換えます。

  • PROJECT_ID: Cloud Router のプロジェクト ID
  • REGION: ルーター アプライアンス インスタンスとして機能する VM が配置されるリージョン
  • NAME: 更新する Cloud Router の名前
  • PEER_NAME: Router アプライアンス インスタンスとの間に確立する BGP ピアリング セッションの名前
  • INTERFACE_NAME: ピアを追加する Cloud Router インターフェースの名前
  • IP_ADDRESS: Cloud Router インターフェースに使用する RFC 1918 内部 IP アドレス
  • PEER_IP_ADDRESS: Router アプライアンス インスタンスとして機能する VM の内部 IP アドレス
  • ROUTER_APPLIANCE_INSTANCE: Router アプライアンス インスタンスとして機能する VM の URL 形式の名前
  • ROUTER_APPLIANCE_ZONE: Router アプライアンス インスタンスとして機能する VM が配置されるゾーン
  • PEER_ASN: この BGP ピアの BGP 自律システム番号(ASN)。この ASN は、RFC 6996 で定義された 16 ビットまたは 32 ビットのプライベート ASN でなければなりません。

router-app-a のサンプル構成の例を次に示します。

PATCH
https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-west1/routers/cloud-router-a
{
  "bgpPeers": [
  {
    "name": "router-appliance-bgp-peer-router-app-a-0",
    "interfaceName": "router-appliance-interface-0",
    "ipAddress": "10.0.1.5",
    "peerIpAddress": "10.0.1.10",
    "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-west1-a/instances/router-app-a",
    "peerAsn": 65001,
  }
  {
    "name": "router-appliance-bgp-peer-router-app-a-1",
    "interfaceName": "router-appliance-interface-1",
    "ipAddress": "10.0.1.6",
    "peerIpAddress": "10.0.1.10",
    "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-west1-a/instances/router-app-a",
    "peerAsn": 65001
   }
 ]
}

router-app-b に BGP ピアを作成する

前述のように、Cloud Router はルーター アプライアンス インスタンスとして構成された複数の VM に BGP セッションを確立できます。これらの VM はすべて、同一のサブネットに属している必要があります。この構成を作成するには、同じ Cloud Router インターフェースに追加の BGP ピアリング セッションを作成します。

前のセクションでは、router-app-a に対する BGP ピアリングを設定する方法について説明しました。このセクションでは、Cloud Router cloud-router-a の両方のインターフェースの BGP ピアとして router-app-b を追加構成する方法について説明します。

Console

  1. [Network Connectivity Center] ページに移動します。
  2. Network Connectivity Center に移動
  3. プロジェクトのプルダウン メニューでプロジェクトを選択します。
  4. [スポーク] タブをクリックします。
  5. [スポーク名] 列でスポークを選択して、[スポークの詳細] ページを表示します。

  1. [名前] 列で、router-app-b を見つけます。展開アイコンをクリックして [BGP セッションを構成] リンクを表示します。いずれかのリンクをクリックします。この操作に応じて、[Cloud Router と BGP セッションの構成] パネルが表示されます。

  1. [Cloud Router] で、次のいずれかを行います。

    • 既存の Cloud Router を選択するには、[既存のものを使用] をクリックします。[Cloud Router] フィールドに適切なリソースを指定し、[Select and continue] をクリックします。
    • [Network Connectivity Center] ページで Cloud Router を作成するには、[新規作成] をクリックし、プロンプトに従って Cloud Router を作成します。次に、[作成して続行] をクリックします。
  2. [BGP セッション] で、2 つの BGP セッションを設定します。次の手順をセッションごとに 1 回、計 2 回行います。
    1. [BGP セッションの編集] をクリックします。
    2. 名前ピア ASNアドバタイズされたルートの優先度(MED)を入力して、フォームに入力します。[保存して次へ] をクリックします。
  3. [作成] をクリックします。

gcloud

Cloud Router 上に router-app-b に対する BGP ピアを 2 つ作成するには、次のコマンドを使用します。

  • 最初の BGP ピアのサンプル構成

    gcloud compute routers add-bgp-peer cloud-router-a \
        --peer-name=router-appliance-bgp-peer-router-app-b-0 \
        --interface=router-appliance-interface-0 \
        --peer-ip-address=10.0.1.11 \
        --peer-asn=65002 \
        --instance=router-app-b \
        --instance-zone=us-west1-a \
        --region=us-west1
    
  • 2 つ目の BGP ピアのサンプル構成

    gcloud compute routers add-bgp-peer cloud-router-a \
        --peer-name=router-appliance-bgp-peer-router-app-b-1 \
        --interface=router-appliance-interface-1 \
        --peer-ip-address=10.0.1.11 \
        --peer-asn=65002 \
        --instance=router-app-b \
        --instance-zone=us-west1-a \
        --region=us-west1
    

API

Cloud Router 上に router-app-b に対する 2 つの BGP ピアを作成するには、compute.routers.patch メソッドを使用します。

サンプル構成例を次に示します。

PATCH
https://compute.googleaps.com/compute/v1/projects/my-project/regions/us-west1/routers/cloud-router-a
{
  "bgpPeers": [
  {
    "name": "router-appliance-bgp-peer-router-app-b-0",
    "interfaceName": "router-appliance-interface-0",
    "ipAddress": "10.0.1.5",
    "peerIpAddress": "10.0.1.11",
    "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-west1-a/instances/router-app-b",
    "peerAsn": 65002,
  }
  {
    "name": "router-appliance-bgp-peer-router-app-b-1",
    "interfaceName": "router-appliance-interface-1",
    "ipAddress": "10.0.1.6",
    "peerIpAddress": "10.0.1.11",
    "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-west1-a/instances/router-app-b",
    "peerAsn": 65002
   }
 ]
}

Router アプライアンス インスタンスでの BGP の構成

Cloud Router への BGP 接続用にルーター アプライアンス インスタンスを構成するには、ルーター アプライアンス イメージ向けのベンダー ドキュメントをご覧ください。

次のステップ