サードパーティ アプライアンスを使用して接続を確立する

Network Connectivity Center を使用すると、サードパーティのネットワーク仮想アプライアンスを使用して、外部サイトと Virtual Private Cloud(VPC)ネットワーク リソース間の接続を確立できます。この方法で接続を確立するには、ルーター アプライアンス機能を使用します。

ルーター アプライアンスは、Network Connectivity Center で複数サポートされているスポークタイプの 1 つです。Network Connectivity Center の詳細については、Network Connectivity Center の概要をご覧ください。ルーター アプライアンスの詳細については、ルーター アプライアンスの概要をご覧ください。

構成の例:

次のトポロジでは、1 つの外部サイトがルーター アプライアンス スポークを使用して 2 つの VPC ネットワークに接続しています。

ルーター アプライアンス インスタンスをホストする VM には、各 VPC ネットワーク内のインターフェースがあります。ルーター アプライアンス インスタンスは、この両方のネットワークで Cloud Router との Border Gateway Protocol(BGP)セッションを維持します。

各 Cloud Router には 2 つのインターフェースがあります。各ネットワークのルーター アプライアンス インターフェースは、適切な Cloud Router の両方のインターフェースとピアリングし、合計で 4 つのピアリング セッションが確立します。

ルーター アプライアンスの BGP セッションの作成
サイトツークラウドのサンプル トポロジ(クリックして拡大)

必要なタスク

サンプル構成を設定するには、この手順の前提条件を満たしていることを確認してから、必要なタスクを完了します。

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

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

  3. 2 つのスポークを作成します(各 VPC ネットワークに 1 つずつ)。各スポークは、そのバッキング リソースと同じルーター アプライアンス インスタンスを使用します。

  4. 2 つの Cloud Router を設定します(各 VPC ネットワークで 1 つずつ)。このタスクでは、Cloud Router ごとに次のサブタスクを行います。

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

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

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

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

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

始める前に

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

プロジェクトを作成または選択する

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

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

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

  3. Google Cloud プロジェクトで課金が有効になっていることを確認します

  4. Google Cloud CLI をインストールします。
  5. gcloud CLI を初期化するには:

    gcloud init
  6. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

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

  7. Google Cloud プロジェクトで課金が有効になっていることを確認します

  8. Google Cloud CLI をインストールします。
  9. gcloud CLI を初期化するには:

    gcloud init
  1. Google Cloud CLI を使用している場合は、gcloud config set コマンドを使用してプロジェクト ID を設定します。

    gcloud config set project PROJECT_ID

    PROJECT_ID は、一意のプロジェクト ID に置き換えます。

    このページの gcloud CLI の手順では、プロジェクト ID がすでに設定されていることを前提としています。

  1. プロジェクト ID が正しく設定されていることを確認するには、gcloud config list コマンドを使用します。

    gcloud config list --format='text(core.project)'

Network Connectivity API を有効にする

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

Console

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

  1. Google Cloud コンソールで [Network Connectivity Center] ページに移動します。

    Network Connectivity Center に移動

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

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

アクセスの取得

Network Connectivity Center を使用するには、ロールと権限で説明されている権限が必要です。

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

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

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

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 ネットワークとサブネットの作成方法について説明します。

2 つの VPC ネットワークを作成する

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

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

コンソール

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

gcloud

カスタム VPC ネットワークを作成するには、gcloud compute networks create コマンドを使用します。

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

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

API

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

サブネットを作成する

サブネットを network-a に 1 つ、network-b に 1 つ作成します。

コンソール

Google Cloud コンソールを使用してサブネットを追加するには、サブネットの追加をご覧ください。

サンプル構成で使用されている命名規則に従う場合は、network-a のサブネットに次の値を使用します。

  • 名前: subnet-a
  • リージョン: us-central1
  • 範囲: 10.1.3.0/24

network-b のサブネットに次の値を使用します。

  • 名前: subnet-b
  • リージョン: us-central1
  • 範囲: 192.168.10.0/24

gcloud

VPC サブネットを作成するには、gcloud compute networks subnets create コマンドを使用します。

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

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

  • NAME: ルーター アプライアンス VM を含むサブネットの名前(subnet-asubnet-b など)
  • NETWORK: サブネットを含むネットワーク(network-anetwork-b など)
  • REGION: サブネットを含むリージョン(例: us-central1
  • RANGE: CIDR 表記のサブネットの IP 範囲(例: 10.1.3.0/24 または 192.168.10.0/24

API

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

ルーター アプライアンス VM を作成する

ルーター アプライアンス インスタンスとして機能する Compute Engine VM を作成します。VM はサンプル トポロジで router-app-a として表されます。network-anetwork-b に 1 つずつ、2 つのインターフェースがあります。

VM を作成する際には、ネットワーク仮想アプライアンス イメージを選択する必要があります。このイメージは次のいずれかです。

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

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

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

コンソール

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

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

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

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

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

gcloud

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

このコマンドを 2 回実行します(ルーター アプライアンス インスタンスごとに 1 回ずつ)。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 を許可するファイアウォール ルールを作成する

2 つのファイアウォール ルール(network-anetwork-b に 1 つずつ)を作成します。各ルールでは、TCP ポート 179 に BGP トラフィックを許可する必要があります。

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

コンソール

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

gcloud

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

API

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

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

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

ハブを作成する

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

コンソール

  1. Google Cloud コンソールで [Network Connectivity Center] ページに移動します。

    Network Connectivity Center に移動

  2. プロジェクト メニューで、プロジェクトを選択します。

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

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

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

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

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

  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 ペアの値(省略可)

ルーター アプライアンス スポークを 2 つ作成する

ルーター アプライアンス スポークを 2 つ作成します。両方のスポークは同じバッキング リソース(先ほど作成したルーター アプライアンス インスタンス)を使用します。1 つのスポークは network-a のインターフェースを使用し、もう 1 つのスポークは network- b のインターフェースを使用します。

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

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

コンソール

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

  1. Google Cloud コンソールで [Network Connectivity Center] ページに移動します。

    Network Connectivity Center に移動

  2. プロジェクト メニューで、プロジェクトを選択します。

  3. [スポーク] タブをクリックします。

  4. [スポークを追加する] をクリックします。

  5. [新しいスポーク] フォームで、[スポークタイプ] を [Router アプライアンス] に設定します。

  6. スポーク名を入力します(例: spoke-aspoke-b)。

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

  8. 新しいスポークの [リージョン] フィールドを選択します。

  9. [サイト間データ転送] で [無効] を選択します。

  10. [VPC ネットワーク] プルダウン リストで、ネットワークを選択します。

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

  1. [Attach instance(s) to the spoke] で、プルダウン リストを使用してルーター アプライアンス(router-app-a など)を選択します。
  2. このスポークにルーター アプライアンス インスタンスをさらに追加するには、[インスタンスを追加] をクリックして前の手順を繰り返します。
  3. 終了したら、[完了] をクリックして「スポークを保存する」に進みます。

スポークを保存する

  1. 2 番目のスポークを追加するには、[スポークを追加] をクリックし、スポーク名の入力からプロセスを再度開始します。
  2. スポークの追加が完了したら、[作成] をクリックします。[Network Connectivity Center] のページが更新され、作成したスポークの詳細が表示されます。

gcloud

ルーター アプライアンスのスポークを作成するには、gcloud network-connectivity spokes linked-router-appliances create コマンドを使用します。コマンドを 2 回実行します(スポークごとに 1 回ずつ)。

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

次の値を置き換えます。

  • NAME: スポークの名前(spoke-a など)
  • HUB_URI: スポークを接続するハブ URI
  • DESCRIPTION: スポークを説明する省略可能なテキスト
  • ROUTER_APPLIANCE_URI: ルーター アプライアンス インスタンスの URI。以下に例を示します。
    https://www.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME 
  • IP_ADDRESS: 適切な VPC ネットワーク内にあるルーター アプライアンス インスタンスの内部 IP アドレス(10.1.3.8192.168.10.3 など)
  • REGION: スポークを配置する Google Cloud リージョン(us-central1 など)
  • KEY: ラベルテキストの Key-Value ペアのキー(省略可)
  • VALUE: ラベルテキストの Key-Value ペアの値(省略可)

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

    gcloud network-connectivity spokes linked-router-appliances create spoke-a \
        --hub=my-hub \
        --description="Test spoke 1" \
        --router-appliance=instance="https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/router-app-a",ip=10.1.3.8 \
        --region=us-central1 \
    

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

    gcloud network-connectivity spokes linked-router-appliances create spoke-b \
        --hub=my-hub \
        --description="Test spoke 1" \
        --router-appliance=instance="https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/router-app-a",ip=192.168.10.3\
        --region=us-central1 \
    

API

ルーター アプライアンス スポークを作成するには、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": [
        {
          "virtualMachine": "ROUTER_APPLIANCE_URI",
          "ipAddress": INTERNAL_IP_ADDRESS,
        },
      ],
      "siteToSiteDataTransfer": BOOLEAN
    }
  }
 

次の値を置き換えます。

  • 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: 適切な VPC ネットワークのルーター アプライアンス インスタンスの内部 IP アドレス(10.1.3.8192.168.10.3 など)
  • BOOLEAN: このスポークでサイト間データ転送を有効にするかどうかを決める値。このユースケースでは、false に設定します。

    たとえば、network-a のインターフェースに router-app-a を使用するスポークを作成するには、リクエストの本文を次のように構成する必要があります。

    {
      "hub": "http://networkconnectivity.googleapis.com/v1/projects/my-project/locations/global/hubs/my-hub",
    
      "labels": {
        "environment" : "test"
      },
    
      "linkedRouterApplianceInstances": {
        "instances": [
          {
            "virtualMachine": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/router-app-a",
            "ipAddress": "10.1.3.8",
          },
        ],
        "siteToSiteDataTransfer": false
      }
    }
    
    

    network-b のインターフェースに router-app-a を使用するスポークを作成するには、リクエストの本文を次のように構成する必要があります。

    {
      "hub": "http://networkconnectivity.googleapis.com/v1/projects/my-project/locations/global/hubs/my-hub",
    
      "labels": {
        "environment" : "test"
      },
    
      "linkedRouterApplianceInstances": {
        "instances": [
          {
            "virtualMachine": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/router-app-a",
            "ipAddress": "192.168.10.3",
          },
        ],
        "siteToSiteDataTransfer": false
      }
    }
    
    

Cloud Router を設定する

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

Cloud Router を作成する

サンプル トポロジと同じ値を使用している場合は、2 つの Cloud Router を作成します(network-anetwork-b に 1 つずつ)。両方の Cloud Router を us-central1 に配置します。

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

コンソール

Google Cloud コンソールで Cloud Router を作成するには、次のいずれかの方法を使用します。

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

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

gcloud

Cloud Router を作成するには、gcloud compute routers create コマンドを使用します。

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

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

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

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

冗長性を確保するには、各 Cloud Router に 2 つのインターフェースを作成します。各 Cloud Router で、2 つのインターフェースを、対応するルーター アプライアンス インターフェースと同じサブネットに関連付ける必要があります。サンプル トポロジの値を使用している場合は、次のようにします。

  • cloud-router-a には、subnet-a に 2 つのインターフェースを作成します。
  • cloud-router-b には、subnet-b に 2 つのインターフェースを作成します。

各 Cloud Router インターフェースには、リージョンの内部 IP アドレスを使用します。インターフェースの内部 IP アドレスを明示的に指定する場合、その IP アドレスはサブネットのプライマリ IP アドレス範囲内にある必要があります。別のリソース(VM や別の Cloud Router インターフェースなど)ですでに使用されているものにはできません。

このステップには、Google Cloud コンソールで行う操作はありません。Google Cloud コンソールを使用している場合は、次のタスク(各 Cloud Router での BGP ピアリングの作成)を完了すると、インターフェースが自動的に作成されます。

gcloud

Cloud Router に冗長インターフェースを作成するには、gcloud compute routers add-interface コマンドを使用します。

次の手順を 2 回行います(cloud-router-a 用に 1 回、cloud-router-b 用に 1 回)。

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

    gcloud compute routers add-interface ROUTER_NAME \
        --interface-name=FIRST_INTERFACE_NAME \
        --ip-address=FIRST_INTERFACE_IP_ADDRESS \
        --subnetwork=SUBNET \
        --region=REGION \
        --project=PROJECT_ID
    

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

    • ROUTER_NAME: 更新する Cloud Router の名前(例: cloud-router-acloud-router-b)。
    • FIRST_INTERFACE_NAME: インターフェースの名前(例: interface-1
    • FIRST_INTERFACE_IP_ADDRESS: 最初のインターフェースに使用する RFC 1918 内部 IP アドレス。値を指定しない場合、Google はサブネットのプライマリ IP アドレス範囲内で空いているアドレスを探します。
    • SUBNET: Cloud Router インターフェースと、対応するルーター アプライアンス インスタンス インターフェースを含むサブネット
    • REGION: Cloud Router が存在する Google Cloud リージョン(例: us-central1
    • PROJECT_ID: Cloud Router のプロジェクト ID(例: my-project
  2. 各 Cloud Router に 2 番目のインターフェースを作成します。

    gcloud compute routers add-interface ROUTER_NAME \
        --interface-name=SECOND_INTERFACE_NAME \
        --ip-address=SECOND_INTERFACE_IP_ADDRESS \
        --subnetwork=SUBNET \
        --redundant-interface=FIRST_INTERFACE_NAME \
        --region=REGION \
        --project=PROJECT_ID
    

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

    • ROUTER_NAME: 更新する Cloud Router の名前(例: cloud-router-acloud-router-b)。
    • SECOND_INTERFACE_NAME: インターフェースの名前(例: interface-2
    • SECOND_INTERFACE_IP_ADDRESS: 2 番目のインターフェースに使用する RFC 1918 内部 IP アドレス。値を指定しない場合、Google はサブネットのプライマリ IP アドレス範囲内で空いているアドレスを探します。
    • SUBNET: 2 つの Cloud Router インターフェースと、対応するルーター アプライアンス インスタンス インターフェースを含むサブネット
    • FIRST_INTERFACE_NAME: 手順 1 で作成したインターフェースの名前
    • REGION: Cloud Router が存在する Google Cloud リージョン(例: us-central1
    • PROJECT_ID: Cloud Router のプロジェクト ID(例: my-project

    cloud-router-a のサンプル コマンド

    次のコマンドは、cloud-router-a に最初のインターフェースを作成します。

    gcloud compute routers add-interface cloud-router-a \
        --interface-name=interface-1 \
        --ip-address=10.1.3.14 \
        --subnetwork=subnet-a \
        --region=us-central1 \
        --project=my-project
    

    次のコマンドは、cloud-router-a に 2 番目のインターフェースを作成します。

    gcloud compute routers add-interface cloud-router-a \
        --interface-name=interface-2 \
        --ip-address=10.1.3.15 \
        --subnetwork=subnet-a \
        --redundant-interface=interface-1 \
        --region=us-central1 \
        --project=my-project
    

    cloud-router-b のサンプル コマンド

    次のコマンドは、cloud-router-b に最初のインターフェースを作成します。

    gcloud compute routers add-interface cloud-router-b \
        --interface-name=interface-1 \
        --ip-address=192.168.10.14 \
        --subnetwork=subnet-b \
        --region=us-central1 \
        --project=my-project
    

    次のコマンドは、cloud-router-b に 2 番目のインターフェースを作成します。

    gcloud compute routers add-interface cloud-router-b \
       --interface-name=interface-2 \
       --ip-address=192.168.10.15 \
       --subnetwork=subnet-b \
       --redundant-interface=interface-1 \
       --region=us-central1 \
       --project=my-project
    

API

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

次のリクエストを 2 回使用します(cloud-router-a で 1 回、cloud-router-b で 1 回)。

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

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

  • PROJECT_ID: Cloud Router のプロジェクト ID(例: my-project
  • REGION: Cloud Router が存在する Google Cloud リージョン(例: us-central1
  • NAME: 更新する Cloud Router の名前(例: cloud-router-acloud-router-b)。
  • NETWORK: Cloud Router を含む VPC ネットワーク(例: network-a
  • FIRST_INTERFACE_NAME: 最初のインターフェースの名前(例: interface-1
  • FIRST_INTERFACE_IP_ADDRESS: 最初のインターフェースに使用する RFC 1918 内部 IP アドレス。値を指定しない場合、Google はサブネットのプライマリ IP アドレス範囲内で空いているアドレスを探します。
  • SUBNET: 2 つの Cloud Router インターフェースと、対応するルーター アプライアンス インスタンス インターフェースを含むサブネット
  • SECOND_INTERFACE_NAME: 2 番目のインターフェースの名前(例: interface-2
  • SECOND_INTERFACE_IP_ADDRESS: 2 番目のインターフェースに使用する RFC 1918 内部 IP アドレス。値を指定しない場合、Google はサブネットのプライマリ IP アドレス範囲内で空いているアドレスを探します。

    cloud-router-a のサンプル コマンド

    次のコマンドは、cloud-router-a に 2 つのインターフェースを作成します。

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

    cloud-router-b のサンプル コマンド

    次のコマンドは、cloud-router-b に 2 つのインターフェースを作成します。

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

各 Cloud Router で BGP ピアリングを構成する

ルーター アプライアンス インスタンスのインターフェースごとに、2 つの BGP ピアリング セッションを作成する必要があります(Cloud Router インターフェースごとに 1 つずつ)。サンプル トポロジの値を使用している場合は、次のようにします。

  • cloud-router-arouter-app-anetwork-a インターフェースとの間に 2 つのピアリング セッションを作成します。

  • cloud-router-brouter-app-anetwork-b インターフェースとの間に 2 つのピアリング セッションを作成します。

コンソール

次の手順を 2 回行います(spoke-a 用に 1 回、spoke-b 用に 1 回)。

  1. [Network Connectivity Center] ページに移動します。
  2. Network Connectivity Center に移動
  3. プロジェクト メニューで、プロジェクトを選択します。
  4. [スポーク] タブをクリックします。
  5. [スポーク名] 列でスポークを選択して、[スポークの詳細] ページを表示します。たとえば、spoke-aspoke-b を選択します。
  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 に BGP ピアを作成するには、gcloud compute routers add-bgp-peer コマンドを使用します。

次の手順を 2 回行います(cloud-router-a 用に 1 回、cloud-router-b 用に 1 回)。

  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 の名前(例: cloud-router-acloud-router-b)。
    • PEER_NAME: ルーター アプライアンス インスタンスとの間に確立する BGP ピアリング セッションの名前
    • INTERFACE: この BGP ピアのインターフェースの名前
    • PEER_IP_ADDRESS: ピアルーター(ルーター アプライアンス インスタンス)の内部 IP アドレス(例: 10.1.3.8192.168.10.3
    • PEER_ASN: この BGP ピアの BGP 自律システム番号(ASN)。この ASN は、RFC 6996 で定義された 16 ビットまたは 32 ビットのプライベート ASN でなければなりません。
    • ROUTER_APPLIANCE: ルーター アプライアンス インスタンスとして機能する VM の名前(例: router-app-a
    • ROUTER_APPLIANCE_ZONE: ルーター アプライアンス インスタンスとして機能する VM が存在するゾーン(例: us-central1-a
    • REGION: ルーター アプライアンス インスタンスとして機能する VM が配置されているリージョン(例: us-central1

    cloud-router-a のサンプル コマンド

    次のコマンドを使用して、cloud-router-a の BGP ピアを作成します。

    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.1.3.8 \
      --peer-asn=65001 \
      --instance=router-app-a \
      --instance-zone=us-central1-a \
      --region=us-central1
    
    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.1.3.8 \
      --peer-asn=65001 \
      --instance=router-app-a \
      --instance-zone=us-central1-a \
      --region=us-central1
    

    cloud-router-b のサンプル コマンド

    次のコマンドを使用して、cloud-router-b の BGP ピアを作成します。

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

API

Cloud Router に BGP ピアを作成するには、compute.routers.patch メソッドを使用します。このメソッドを 2 回使用します(cloud-router-a で 1 回、cloud-router-b で 1 回)。

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

    cloud-router-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.1.3.14",
       "peerIpAddress": "10.1.3.8",
       "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/instances/router-app-a",
       "peerAsn": 65001,
     }
     {
       "name": "router-appliance-bgp-peer-router-app-a-1",
       "interfaceName": "router-appliance-interface-1",
       "ipAddress": "10.1.3.15",
       "peerIpAddress": "10.1.3.8",
       "routerApplianceInstance": "https://compute.googleapis.com/compute/v1/projects/my-project/zone/us-central1-a/instances/router-app-a",
       "peerAsn": 65001
     }
     ]
    }
    

    cloud-router-b のサンプル コマンド

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

ルーター アプライアンス インスタンスで BGP を構成する

2 つの Cloud Router への BGP 接続を行うようにルーター アプライアンス インスタンスを構成します。方法については、ルーター アプライアンス イメージのベンダー ドキュメントをご覧ください。

次のステップ