Google Cloud HA VPN ゲートウェイへの Google Cloud の作成

このページでは、HA VPN ゲートウェイ構成を使用して、2 つの Virtual Private Cloud ネットワークを同時に接続する方法について説明します。各ネットワークのプライマリとセカンダリの IP アドレス範囲が重複していない限り、既存の VPC ネットワークを 2 つ同時接続できます。

このトポロジの図については、トポロジのページをご覧ください。

VPN の種類を選択する方法に関する詳細は、ネットワーク接続プロダクトの選択をご覧ください。

要件

一般的な要件とガイドライン

99.99% の SLA を確保するこの構成を作成する際には、次の要件を満たしてください。

  • HA VPN ゲートウェイを、各 VPC ネットワークに 1 つずつ配置する。
  • 両方の HA VPN ゲートウェイを、同じ Google Cloud リージョンに配置する。
  • 各ゲートウェイの各インターフェースにトンネルを構成する。
  • 下記の説明に従い、ゲートウェイ インターフェースを一致させる。

HA VPN ゲートウェイ間の単一のトンネル、または Classic VPN ゲートウェイを使用して、2 つの VPC ネットワークを接続することもできますが、このタイプの構成は高可用性とはみなされず、99.99% 可用性の HA SLA を満たしません。

Cloud Router の作成

新しい HA VPN ゲートウェイを構成するときは、新しい Cloud Router を作成するか、既存の Cloud VPN トンネルまたは相互接続のアタッチメント(VLAN)で使用している Cloud Router を使用できます。ただし、既存の Cloud Router を使用する場合は、アタッチメントの特定の ASN 要件により、この Cloud Router で Partner Interconnect 接続に関連付けられている相互接続のアタッチメント(VLAN)の BGP セッションを管理していない必要があります。

権限の管理

HA VPN ゲートウェイは、必ずしもお客様や Google Cloud 組織の所有ではないため、HA VPN ゲートウェイを作成するときや、他の組織が所有する HA VPN ゲートウェイに接続するときは、次の権限要件を考慮してください。

  • HA VPN ゲートウェイを作成するプロジェクトを所有している場合は、そのプロジェクト上の推奨される権限を構成します。
  • Google Cloud 組織または所有していないプロジェクトにある HA VPN ゲートウェイに接続する場合は、compute.vpnGateways.use 権限を所有者に要求する必要があります。

始める前に

  • Google Cloud での動的ルーティングの仕組みについての情報をご覧ください。
  • 使用するピア VPN ゲートウェイで BGP がサポートされていることを確認します。

Google Cloud で次の項目を設定すると、Cloud VPN を簡単に構成できます。

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

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

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

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

  4. Cloud SDK をインストールして初期化します。
  1. gcloud コマンドを使用している場合、プロジェクト ID を次のコマンドで設定します。このページの gcloud の説明では、コマンド発行前にプロジェクト ID を設定済みであることを前提としています。
  gcloud config set project project-id

すでに設定されているプロジェクト ID を表示することもできます。

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

カスタム Virtual Private Cloud ネットワークとサブネットの作成

HA VPN ゲートウェイとトンネルペアを作成する前に、HA VPN ゲートウェイが存在するリージョンに Virtual Private Cloud ネットワークと少なくとも 1 つのサブネットを作成する必要があります。

このドキュメントの例では、VPC グローバル ダイナミック ルーティング モードも使用しています。このモードは次のように動作します。

  • Cloud Router のすべてのインスタンスは、学習した「オンプレミスへの」ルートを、VPC ネットワークのすべてのサブネットに適用します。
  • VPC ネットワーク内のすべてのサブネットへのルートは、オンプレミス ルーターと共有されます。

参考のため、このドキュメントでは、次の 2 種類の VPC ネットワークにそれぞれ HA VPN ゲートウェイを作成します。

network-1 には、次のサブネットが含まれます。

  • IP 範囲 range-1 を使用する region-1 内の subnet-name-1 という名前のサブネット
  • IP 範囲 range-2 を使用する region-2 内の subnet-name-2 という名前のサブネット

network-2 には、次のサブネットが含まれます。

  • IP 範囲 range-3 を使用する region-1 内の subnet-name-3 という名前のサブネット
  • IP 範囲 range-4 を使用する region-3 内の subnet-name-4 という名前のサブネット

相互に接続する 2 つの完全に構成された HA VPN ゲートウェイの作成

HA VPN ゲートウェイ、トンネル、ピア VPN ゲートウェイ リソース、BGP セッションを作成するには、このセクションの手順に従ってください。

Console

VPN 設定ウィザードには、HA VPN ゲートウェイ、トンネル、ピア VPN ゲートウェイ リソース、BGP セッションの作成に必要なすべての構成手順が含まれています。

Cloud VPN ゲートウェイの作成

  1. Google Cloud Console の [VPN] ページに移動します。
    [VPN] ページに移動
    1. ゲートウェイを作成するのが初めての場合、[VPN 接続を作成] ボタンをクリックします。
    2. [VPN 設定ウィザード] を選択します。
  2. HA VPN ゲートウェイのラジオボタンを選択します。
  3. [続行] をクリックします。
  4. [VPN ゲートウェイ名] を指定します。
  5. [VPC ネットワーク] で、既存のネットワークまたはデフォルトのネットワークを選択します。
  6. リージョンを選択します。
  7. [作成して続行] をクリックします。
  8. コンソール画面が更新され、ゲートウェイ情報が表示されます。ゲートウェイ インターフェースごとに 2 つの外部 IP アドレスが自動的に割り当てられます。今後の構成手順のために、ゲートウェイ構成の詳細をメモします。

ピア VPN ゲートウェイ リソースの作成

ピア VPN ゲートウェイ リソースは、Google Cloud の Google Cloud 以外のゲートウェイを表します。

  1. [VPN の作成] 画面の [ピア VPN ゲートウェイ] の下で、Google Cloud を選択します。
  2. [プロジェクト] で、新しいゲートウェイを含める Google Cloud プロジェクトを選択します。
  3. [VPN ゲートウェイ名] で、同時に構成している他の HA VPN を選択します。
  4. [VPN トンネルの作成] に進みます。

VPN トンネルの作成

  • [VPN トンネルを 1 つ作成する] を選択した場合、以降の [VPN の作成] 画面で 1 つのトンネルを構成します。ただし、もう一方の HA VPN ゲートウェイを 99.99% の SLA にするには、後で 2 つ目のトンネルを作成する必要があります。
  • [VPN トンネルのペアの作成] を選択した場合(推奨)は、[VPN の作成] 画面の下部にある 2 つのトンネル ダイアログ ボックスを構成する必要があります。
  1. [高可用性] では、もう一方の HA VPN ゲートウェイへのトンネルのペアか、トンネルを 1 つ選択できます。この手順全体の最後で説明されるように、後で 2 つ目のトンネルを追加することもできます。
  2. [Cloud Router] で、下記のオプションを指定する Cloud Router を作成します(まだ作成していない場合)。Partner Interconnect に関連付けられた相互接続のアタッチメントの BGP セッションをまだ管理していない場合は、既存の Cloud Router を使用できます。
    1. Cloud Router を作成するには、新しいルーターの [名前]、[説明](省略可)、[Google ASN] を指定します。ネットワーク内の他の場所では使用していない任意のプライベート ASN(645126553442000000004294967294)を使用できます。この Google ASN は同じ Cloud Router 上のすべての BGP セッションに使用され、後で変更できません。
    2. [作成] をクリックしてルーターを作成します。
  3. 同じ画面上、または画面下部の各トンネルのダイアログ ボックスで、次の手順を完了します。
  4. 関連付けられた Cloud VPN ゲートウェイ インターフェースで、1 つのトンネルを構成する場合は、このゲートウェイ用の HA VPN インターフェースと IP アドレスの組み合わせを選択して、他の HA VPN ゲートウェイのゲートウェイ インターフェースに関連付けます。2 トンネル構成では、正しいインターフェースの組み合わせが構成されているため、このオプションおよび関連付けられたピア VPN ゲートウェイ インターフェースオプションは両方とも使用できません。
    1. トンネルの [名前] を指定します。
    2. [説明](省略可)を指定します。
    3. [IKE バージョン] を指定します。ピアルーターが IKE v2 をサポートしている場合は、デフォルト設定の IKE v2 をおすすめします。
    4. ピア ゲートウェイに作成するパートナー トンネル用の共有シークレットに対応する必要がある共有シークレットを使用して、IKE 事前共有キーを指定します。ピア VPN ゲートウェイで共有シークレットをまだ構成しておらず、これから生成する場合は、[生成してコピー] ボタンをクリックします。事前共有キーは、VPN トンネルの作成後には取得できないため、安全な場所に記録してください。
    5. [完了] をクリックします。
    6. [VPN の作成] 画面の残りのトンネル ダイアログ ボックスで、トンネル作成手順を繰り返します。
  5. すべてのトンネルを構成したら、[作成して続行] をクリックします。

BGP セッションの作成

アドバタイズされたルートの優先度の設定(省略可)

次の例では、変更されていない基本優先度を使用して、ルーターのそれぞれのピア ネットワークへのルートをアドバタイズする Cloud Router のインスタンスに BGP セッションを作成します。

2 つのトンネルの両方のサイドの優先度が一致するアクティブ / アクティブ構成にこの構成を使用します。アドバタイズされた基本優先度を省略すると、両方の BGP ピアに同じアドバタイズされた優先度が設定されます。
アクティブ / パッシブ構成の場合、Cloud Router とピア VPN ゲートウェイとで共有されている「Google Cloud に至る」ルートのアドバタイズされた基本優先度を制御するには、アドバタイズされたルート優先度を設定します。
アクティブ / パッシブ構成を作成するには、1 つの BGP セッションと対応する VPN トンネルのアドバタイズされたルート優先度を、他の BGP セッションと VPN トンネルよりも高く設定します。

アドバタイズされた基本優先度の詳細は、ルート指標をご覧ください。

カスタム アドバタイズを使用してアドバタイズされたルートを絞り込むには、--advertisement-mode=CUSTOM フラグを追加し、--set-advertisement-ranges で IP アドレス範囲を指定します。

BGP セッションを作成するには、次の手順を行います。

  1. BGP セッションを今すぐ構成しない場合は、[後で BGP セッションを構成] ボタンをクリックして [まとめとリマインダー] 画面を開きます。
  2. BGP セッションを今すぐ構成する場合は、最初の VPN トンネルの [構成] ボタンをクリックします。
  3. [BGP セッションの作成] 画面で、次の手順を行います。
    1. BGP セッションの [名前] を指定します。
    2. ピア VPN ゲートウェイ用に構成された [ピア ASN] を指定します。
    3. (省略可)[アドバタイズされたルートの優先度] を指定します。
    4. [Cloud Router の BGP IP] アドレスと [BGP ピア IP] アドレスを指定します。これらのアドレスはそれぞれ、同じ /30 サブネット内の 169.254.0.0/16 CIDR ブロックのリンクローカル アドレスを使用する必要があります。サブネットのネットワーク アドレスやブロードキャスト アドレスではないことを確認してください。
    5. (省略可)[アドバタイズされたルート] プルダウン メニューをクリックして、カスタムルートを作成します。
    6. [保存して次へ] をクリックします。
  4. トンネルごとに異なる [Cloud Router の BGP IP] アドレスと [BGP ピア IP] アドレスを使用して、ゲートウェイで構成した残りのトンネルに対して前の手順を繰り返します。
  5. すべての BGP セッションを構成したら、[BGP 構成を保存] をクリックします。

まとめとリマインダー

  1. この画面の [まとめ] セクションには、HA VPN ゲートウェイとピア VPN ゲートウェイのプロファイルに関する情報が一覧表示されます。
  2. VPN トンネルごとに、[VPN トンネルのステータス]、[BGP セッション名]、[BGP セッションのステータス]、[MED 値(アドバタイズされたルート優先度)] が表示されます。
  3. この画面の [リマインダー] セクションには、Cloud VPN とピア VPN 間の完全な VPN 接続を確立するために必要な手順が一覧表示されています。
  4. この画面の情報を確認してから、[OK] をクリックします。

シングル トンネル ゲートウェイにトンネルを追加します。

このセクションの手順に従って、HA VPN ゲートウェイの 2 番目のインターフェースに 2 番目のトンネルを構成します。HA VPN ゲートウェイで別の HA VPN ゲートウェイへのトンネルを 1 つ構成済みで、99.99% の稼働時間の SLA を得るには、2 つ目のトンネルを構成する必要があります。

  1. Google Cloud Console の [VPN] ページに移動します。
    [VPN] ページに移動
    1. トンネルを追加する HA VPN を見つけます。
    2. [VPN トンネルを追加] ボタンをクリックします。
    3. [ピア VPN ゲートウェイ] で、Google Cloud を選択します。
    4. [プロジェクト] で、新しいゲートウェイを含める Google Cloud プロジェクトを選択します。
    5. [VPN ゲートウェイ名] で、新しいトンネルが接続する別の HA VPN ゲートウェイを選択します。
    6. [高可用性を実現するために既存の VPN トンネルに 2 つ目の VPN トンネルを追加する] を選択します。
    7. [既存の VPN トンネルの選択] で、既存のトンネルが選択されていることを確認します。リンクをクリックすると、同じ画面の上部にある既存のトンネルがすべて表示されます。
    8. トンネルの [名前] を指定します。
    9. 他のゲートウェイのトンネルで使用されている IKE バージョンと同じものを指定します。
    10. ピア ゲートウェイに作成するパートナー トンネル用の共有シークレットに対応する必要がある共有シークレットを使用して、IKE 事前共有キーを指定します。ピア VPN ゲートウェイで共有シークレットをまだ構成しておらず、これから生成する場合は、[生成してコピー] ボタンをクリックします。事前共有キーは、VPN トンネルの作成後には取得できないため、安全な場所に記録してください。
    11. [作成して続行] をクリックします。
    12. 前の手順での BGP セッションを構成して保存します。それ以外の場合は、後で BGP を構成します。
    13. [Summary reminder] 画面をクリックして構成情報を確認し、[OK] をクリックします。

gcloud

HA VPN ゲートウェイの作成

HA VPN ゲートウェイを 2 つ作成するには、次のコマンド シーケンスを完了します。

  1. region-1 の各ネットワークに HA VPN ゲートウェイを作成します。各ゲートウェイが作成されると、ゲートウェイ インターフェースごとに 1 つずつ、自動的に 2 つの外部 IP アドレスが割り当てられます。これらの IP アドレスを記録して、後の構成手順で使用します。

    次のコマンドで、下記のオプションを置き換えます。

    • gw-name-1gw-name-2 を各ゲートウェイの名前に置き換えます。
    • その他のオプションは、以前に使用した値に置き換えます。

    最初のゲートウェイの作成

      gcloud compute vpn-gateways create gw-name-1 \
        --network network-1 \
        --region region-1
    

    作成するゲートウェイは、次の出力例のようになります。各ゲートウェイ インターフェースに外部 IP アドレスが自動的に割り当てられます。

      Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnGateways/ha-vpn-gw-a].
      NAME        INTERFACE0    INTERFACE1     NETWORK    REGION
      ha-vpn-gw-a 203.0.113.16  203.0.113.23   network-a  us-central1
    

    2 つ目のゲートウェイの作成

      gcloud compute vpn-gateways create gw-name-2 \
        --network network-2 \
        --region region-1
    
      Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-central1/vpnGateways/ha-vpn-gw-b].
      NAME        INTERFACE0   INTERFACE1    NETWORK    REGION
      ha-vpn-gw-b 203.0.114.18 203.0.114.25  network-b  us-central1
    

各 Cloud Router の作成

次の手順では、HA VPN トンネルの BGP セッションの管理に使用する Cloud Router をまだ作成していないことを前提としています。

Partner Interconnect に関連付けられた相互接続アタッチメントの BGP セッションをまだ管理していない場合は、各 VPC ネットワークで既存の Cloud Router を使用できます。

  1. 各ネットワークで Cloud Router を作成するには、次のコマンド シーケンスを完了します。次のコマンドで、下記のオプションを置き換えます。

    • asn-1asn-2 を、まだ使用していない非公開の ASN(64512~65534、4200000000~4294967294)に置き換えます。この例では、router-name-1 の両方のインターフェースに ASN 65001 を使用し、router-name-2 の両方のインターフェースに ASN 65002 を使用しています。
    • その他のオプションは、以前に使用した値に置き換えます。

    最初のルーターの作成

      gcloud compute routers create router-name-1 \
        --region region-1 \
        --network network-1 \
        --asn asn-1
    

    作成するルーターは、次の出力例のようになります。

      Created [https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/routers/router-a].
      NAME     REGION      NETWORK
      router-a us-central1 network-a
    

    2 つ目のルーターの作成

      gcloud compute routers create router-name-2 \
        --region region-1 \
        --network network-2 \
        --asn asn-2
    

    作成するルーターは、次の出力例のようになります。

      Created [https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/routers/router-b].
      NAME     REGION      NETWORK
      router-b us-central1 network-b
    

VPN トンネルの作成

  1. 次のコマンド シーケンスを完了して、各 HA VPN ゲートウェイに 2 つの VPN トンネルを作成します。

    • gw-name-1 のインターフェース 0 から作成したトンネルは、network-2gw-name-2 のインターフェース 0 に関連付けられた外部 IP アドレスに接続する必要があります。
    • gw-name-1 のインターフェース 1 からのトンネルは、gw-name-2 のインターフェース 1 に関連付けられた外部 IP アドレスに接続する必要があります。
    • network-1 内の gw-name-1 の VPN トンネルを作成する場合は、network-2gw-name-2 の情報を指定する必要があります。gw-name-1 のインターフェース 0 から gw-name-2 のインターフェース 0、gw-name-1 のインターフェース 1 から gw-name-2 のインターフェース 1 にトンネルを自動的に接続します。

    gw-name-1 への 2 つのトンネルの作成

    1. network-1 内の gw-name-1 の各インターフェースに 1 つずつ、2 つの VPN トンネルを作成します。次のコマンドで、下記のオプションを置き換えます。

      • tunnel-name-gw1-if0tunnel-name-gw1-if1 を、gw-name-1 を起点とする各トンネルの名前に置き換えます。ゲートウェイ インターフェース名を含めてトンネルに名前を付けると、後でトンネルを識別するのに役立ちます。
      • --peer-gcp-gateway の値には gw-name-2 を使用します。
      • region を、gw-name-1 が配置されているリージョンに置き換えます。
      • (省略可)--vpn-gateway-region は、HA VPN ゲートウェイが動作するリージョンです。--region と同じ値になります。指定しない場合、このオプションが自動的に設定されます。このオプションは、このコマンド呼び出しのデフォルトの compute/region プロパティ値をオーバーライドします。
      • IKEv2 の場合は、ike-vers2 に置き換えます。両方のトンネルは別の HA VPN ゲートウェイに接続するため、IKEv2 を使用することをおすすめします。
      • shared-secret を共有シークレットに置き換えます。これは、インターフェース 0 とインターフェース 1 で gw-name-2 から作成された対応するトンネル用に使用する共有シークレットを同じになる必要があります。推奨事項については、強力な事前共有キーの生成をご覧ください。
      • int-num-0 を、gw-name-1 の最初のインターフェースの番号 0 に置き換えます。
      • int-num-1 を、gw-name-1 の 2 番目のインターフェースの番号 1 に置き換えます。
      • peer-gcp-gateway が VPN トンネルとローカル VPN ゲートウェイとは異なるプロジェクトにある場合、プロジェクトを指定するには、--peer-gcp-gateway オプションを完全な URI または相対名として使用します。次のサンプル オプションは、相対名 --peer-gcp-gateway projects/other-project/regions/us-central1/vpnGateways/ha-vpn-gw-b です。
      • VPN トンネルが接続されるピア側 HA VPN ゲートウェイのリージョンである --peer-gcp-gateway-region は、VPN トンネルと同じリージョンになければなりません。指定しない場合、リージョンは自動的に設定されます。

      gw-name-1 int-num-0 への最初のトンネルの作成

        gcloud compute vpn-tunnels create tunnel-name-gw1-if0\
          --peer-gcp-gateway gw-name-2 \
          --region region-1 \
          --ike-version ike-vers \
          --shared-secret shared-secret \
          --router router-name-1 \
          --vpn-gateway gw-name-1 \
          --interface int-num-0
      

      gw-name-1 int-num-1 への 2 つ目のトンネルの作成

        gcloud compute vpn-tunnels create tunnel-name-gw1-if1 \
          --peer-gcp-gateway gw-name-2 \
          --region region-1 \
          --ike-version ike-vers \
          --shared-secret shared-secret \
          --router router-name-1 \
          --vpn-gateway gw-name-1 \
          --interface int-num-1
      

      コマンド出力は次の例のようになります。
        Created [https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/vpnTunnels/tunnel-a-to-b-if-0].
        NAME               REGION       VPN_GATEWAY     INTERFACE  PEER_GCP_GATEWAY
        tunnel-a-to-b-if-0 us-central1  ha-vpn-gw-a     0          ha-vpn-gw-b
        Created [https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/vpnTunnels/tunnel-a-to-b-if-1].
        NAME               REGION       VPN_GATEWAY     INTERFACE  PEER_GCP_GATEWAY
        tunnel-a-to-b-if-1 us-central1  ha-vpn-gw-a     1          ha-vpn-gw-b
      

    gw-name-2 への 2 つのトンネルの作成

    1. network-2 内の gw-name-2 の各インターフェースに 1 つずつ、2 つの VPN トンネルを作成します。
      • gw-name-2 のインターフェース 0 から作成したトンネルは、network-1gw-name-1 のインターフェース 0 に関連付けられた外部 IP アドレスに接続する必要があります。
      • gw-name-2 のインターフェース 1 からのトンネルは、gw-name-1 のインターフェース 1 に関連付けられた外部 IP アドレスに接続する必要があります。
      • region を、gw-name-2 が配置されているリージョンに置き換えます。
      • (省略可)--vpn-gateway-region は、VPN ゲートウェイの操作対象のリージョンです。--region と同じ値になります。指定しない場合、このオプションが自動的に設定されます。このオプションは、このコマンド呼び出しのデフォルトの compute/region プロパティ値をオーバーライドします。

        次のコマンドで、下記のオプションを置き換えます。
      • tunnel-name-gw2-if0tunnel-name-gw2-if1 を、gw-name-2 を起点とする各トンネルの名前に置き換えます。ゲートウェイ インターフェース名を含めてトンネルに名前を付けると、後でトンネルを識別するのに役立ちます。
      • --peer-gcp-gateway の値には gw-name-1 を使用します。
      • --peer-gcp-gateway-region の値は、VPN トンネルと同じリージョンになければなりません。指定しない場合、値は自動的に設定されます。この例では、リージョンは region-1 です。
      • IKEv2 の場合は、ike-vers2 に置き換えます。これらのトンネルは前の手順で作成した 2 つのトンネルに接続するため、同じ IKE バージョンを使用する必要があります(IKEv2 が推奨されます)。
      • shared-secret を、gw-name-1 の各インターフェースで作成したパートナー トンネルの共有シークレットに対応する共有シークレットに置き換えます。推奨事項については、強力な事前共有キーの生成をご覧ください。
      • gw-name-2 を、ゲートウェイ構成手順で構成した 2 番目のゲートウェイの名前に置き換えます。
      • int-num-0 を、gw-name-2 の最初のインターフェースの番号 0 に置き換えます。
      • int-num-1 を、gw-name-2 の 2 番目のインターフェースの番号 1 に置き換えます。
      • peer-gcp-gateway が VPN トンネルとローカル VPN ゲートウェイとは異なるプロジェクトにある場合、プロジェクトを指定するには、--peer-gcp-gateway オプションを完全な URI または相対名として使用します。次のサンプル オプションは、相対名 --peer-gcp-gateway projects/other-project/regions/us-central1/vpnGateways/ha-vpn-gw-b です。
      • VPN トンネルが接続されるピア側 HA VPN ゲートウェイのリージョンである --peer-gcp-gateway-region は、VPN トンネルと同じリージョンになければなりません。指定しない場合、リージョンは自動的に設定されます。

    gw-name-2 int-num-0 への最初のトンネルの作成

      gcloud compute vpn-tunnels create tunnel-name-gw2-if0 \
       --peer-gcp-gateway gw-name-1 \
       --region region-1 \
       --ike-version ike-vers \
       --shared-secret shared-secret \
       --router router-name-2 \
       --vpn-gateway gw-name-2 \
       --interface int-num-0
    

    gw-name-2 int-num-1 への 2 つ目のトンネルの作成

      gcloud compute vpn-tunnels create tunnel-name-gw2-if1 \
        --peer-gcp-gateway gw-name-1 \
        --region region-1 \
        --ike-version ike-vers \
        --shared-secret shared-secret \
        --router router-name-2 \
        --vpn-gateway gw-name-2 \
        --interface int-num-1
    

    コマンド出力は次の例のようになります。
      Created [https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/vpnTunnels/tunnel-b-to-a-if-0].
      NAME                REGION       VPN_GATEWAY     INTERFACE  PEER_GCP_GATEWAY
      tunnel-b-to-a-if-0  us-central1  ha-vpn-gw-b     0          ha-vpn-gw-a
      Created [https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/vpnTunnels/tunnel-b-to-a-if-1].
      NAME                REGION       VPN_GATEWAY     INTERFACE  PEER_GCP_GATEWAY
      tunnel-b-to-a-if-1  us-central1  ha-vpn-gw-b     1          ha-vpn-gw-a
    

    この手順を完了したら、数分待ってから、各 VPN トンネルのステータスを確認します。

    対応するパートナー トンネルも利用可能で、適切に構成されている場合のみ、VPN トンネルの状態が Established に変わります。有効な IKE と子セキュリティ アソシエーション(SA)も、両者間でネゴシエートする必要があります。

    たとえば、ha-vpn-gw-atunnel-a-to-b-if-0 は、ha-vpn-gw-btunnel-b-to-a-if-0 が構成され、使用可能な場合にのみ確立できます。

Cloud Router インターフェースと BGP ピアの作成

次の表に、このセクションで構成する Cloud Router インターフェースと BGP ピアの概要を示します。各インターフェースに指定した IP 範囲とピア IP の関係を示します。たとえば、router-1 の最初のインターフェースのピア IP は 169.254.0.2 です。これは、router-2 の最初のインターフェース(169.254.0.2/30)の IP アドレス範囲から割り当てられます。

ルーター BGP インターフェース名 IP 範囲 ピア IP ピア ASN
router-1 if-tunnel-a-to-b-if-0 169.254.0.1/30 169.254.0.2 65002
router-2 if-tunnel-b-to-a-if-0 169.254.0.2/30 169.254.0.1 65001
router-1 if-tunnel-a-to-b-if-1 169.254.1.1/30 169.254.1.2 65002
router-2 if-tunnel-b-to-a-if-1 169.254.1.2/30 169.254.1.1 65001

詳細については、このセクションの手順をご覧ください。設定後のサンプル出力が掲載されています。

アドバタイズされたルートの優先度の設定(省略可)

次の例では、変更されていない基本優先度を使用して、それぞれのピア ネットワークへのルートをアドバタイズする Cloud Router のインスタンスに BGP セッションを作成します。2 つのトンネルの両方のサイドの優先度が一致するアクティブ / アクティブ構成にこの構成を使用します。この例のように、--advertised-base-priority を省略すると、両方の BGP ピアに同じアドバタイズされた優先度が適用されます。

アクティブ / パッシブ構成の場合、Cloud Router とピア VPN ゲートウェイとで共有されている「Google Cloud に至る」ルートのアドバタイズされた基本優先度を制御するには、BGP ピアを追加またはアップデートするときに --advertised-route-priority フラグを使用します。

アクティブ / パッシブ構成を作成するには、1 つの VPN トンネルに対応する BGP セッションのアドバタイズされたルート優先度を、他の VPN トンネルの BGP セッションの優先度より高く設定します。

アドバタイズされた基本優先度の詳細は、ルート指標をご覧ください。

カスタム アドバタイズを使用してアドバタイズされたルートを絞り込むには、--advertisement-mode=CUSTOM フラグを追加し、--set-advertisement-ranges で IP アドレス範囲を指定します。

Cloud Router インターフェースと BGP ピアを作成するには、次を行います。

  1. トンネル tunnel-name-gw1-if0router-name-1 に BGP インターフェースと BGP ピアを作成します。この BGP インターフェースは、2 つの BGP IP アドレスを使用して、gw-1 のインターフェース 0 の tunnel-name-gw1-if0gw-2 のインターフェース 0 に接続します。次のコマンドで、下記のオプションを置き換えます。

    • router-1-interface-name-0 を、Cloud Router BGP インターフェースの名前に置き換えます。tunnel-name-gw1-if0 に関連する名前を使用すると便利です。
    • ip-address を、まだ使用されていない 169.254.0.0/16 ブロックの BGP IP アドレスに置き換えます。この例では 169.254.0.1 を使用しています。
    • 30mask-length を使用します。
    • peer-name を、BGP ピアを表す名前に置き換えます。tunnel-name-gw1-if0 に関連する名前を使用すると便利です。
    • peer-ip-address は、まだ使用されていない 169.254.0.0/16 ブロックの BGP IP アドレスに置き換えます。この例では 169.254.0.2 を使用しています。
    • peer-asn を、もう一方の Cloud Router router-name-2 のすべてのインターフェースに使用される ASN 番号に置き換えます。この例では、ASN 番号 65002 を使用しています。

      1. tunnel-name-gw1-if0BGP インターフェースを作成するには、次のコマンドを入力します。

        gcloud compute routers add-interface router-name-1 \
           --interface-name router-1-interface-name-0 \
           --ip-address ip-address \
           --mask-length mask-length \
           --vpn-tunnel tunnel-name-gw1-if0 \
           --region region-1
        
      2. tunnel-name-gw1-if0BGP ピアを作成するには、次のコマンドを入力します。

        gcloud compute routers add-bgp-peer router-name-1 \
           --peer-name peer-name \
           --interface router-1-interface-name-0 \
           --peer-ip-address peer-ip-address \
           --peer-asn peer-asn \
           --region region-1
        

        コマンド出力は次の例のようになります。

         Updated [https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/routers/router-a].
        
  2. トンネル tunnel-name-gw1-if1router-name-1 に BGP インターフェースと BGP ピアを作成します。この BGP インターフェースは、2 つの BGP IP アドレスを使用して、gw-1 のインターフェース 1 の tunnel-name-gw1-if1gw-2 のインターフェース 1 に接続します。次のコマンドで、下記のオプションを置き換えます。

    • router-1-interface-name-1 を、Cloud Router の BGP インターフェース名に置き換えます。tunnel-name-gw1-if1 に関連する名前を使用すると便利です。
    • ip-address を、まだ使用されていない 169.254.0.0/16 ブロックの BGP IP アドレスに置き換えます。この例では 169.254.1.1 を使用しています。
    • 30mask-length を使用します。
    • peer-name を、BGP ピアを表す名前に置き換えます。tunnel-name-gw1-if1 に関連する名前を使用すると便利です。
    • peer-ip-address を、まだ使用されていない 169.254.0.0/16 ブロックの BGP IP アドレスに置き換えます。この例では 169.254.1.2 を使用しています。
    • peer-asn を、もう一方の Cloud Router router-name-2 のすべてのインターフェースに使用される ASN 番号に置き換えます。この例では、ASN 番号 65002 を使用しています。

      1. tunnel-name-gw1-if1BGP インターフェースを作成するには、次のコマンドを入力します。

        gcloud compute routers add-interface router-name-1 \
           --interface-name router-1-interface-name-1 \
           --ip-address ip-address \
           --mask-length mask-length \
           --vpn-tunnel tunnel-name-gw1-if1 \
           --region region-1
        
      2. tunnel-name-gw1-if1BGP ピアを作成するには、次のコマンドを入力します。

        gcloud compute routers add-bgp-peer router-name-1  \
           --peer-name peer-name \
           --interface router1-interface-name-1 \
           --peer-ip-address peer-ip-address \
           --peer-asn peer-asn \
           --region region-1
        

        コマンド出力は次の例のようになります。

         Updated [https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/routers/router-a ].
        
  3. 次のコマンドを入力して、router-1 の設定を確認します

    gcloud compute routers describe router-1  \
        --region region-1
    

    コマンド出力は次の例のようになります。

     bgp:
       advertisemode: DEFAULT
       asn: 65001
     bgpPeers:
     — interfaceName: if-tunnel-a-to-b-if-0
       ipAddress: 169.254.0.1
       name: bgp-peer-tunnel-a-to-b-if-0
       peerAsn: 65002
       peerIpAddress: 169.254.0.2
     bgpPeers:
     — interfaceName: if-tunnel-a-to-b-if-1
       ipAddress: 169.254.1.1
       name: bgp-peer-tunnel-a-to-b-if-1
       peerAsn: 65002
       peerIpAddress: 169.254.1.2
     creationTimestamp: '2015-10-19T14:31:52.639-07:00'
     id: '4047683710114914215'
     interfaces:
     — ipRange: 169.254.0.1/30
       linkedVpnTunnel:
     https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/vpnTunnels/tunnel-a-to-b-if-0
       name: if-tunnel-a-to-b-if-0
     — ipRange: 169.254.1.1/30
       linkedVpnTunnel:
     https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/vpnTunnels/tunnel-a-to-b-if-1
       name: if-tunnel-a-to-b-if-1
     kind: compute#router
     name: router-a
     network: https://www.googleapis.com/compute/v1/projects/project-id/global/networks/network-a
     region: https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1
     selfLink: https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/routers/router-a
    
  4. トンネル tunnel-name-gw2-if0router-name-2 に BGP インターフェースと BGP ピアを作成します。この BGP インターフェースは、2 つの BGP IP アドレスを使用して、gw-2 のインターフェース 0 の tunnel-name-gw2-if0gw-1 のインターフェース 0 に接続します。次のコマンドで、下記のオプションを置き換えます。

    • router-2-interface-name-0 を、Cloud Router の BGP インターフェース名に置き換えます。tunnel-name-gw2-if0 に関連する名前を使用すると便利です。
    • ip-address を、このゲートウェイとインターフェースに以前使用した BGP IP アドレスに置き換えます。この例では 169.254.0.2 を使用しています。
    • 30mask-length を使用します。
    • peer-name を、BGP ピアを表す名前に置き換えます。tunnel-name-gw2-if0 に関連する名前を使用すると便利です。
    • peer-ip-address を、以前にピアゲートウェイとインターフェースに使用した IP アドレスに置き換えます。この例では 169.254.0.1 を使用しています。
    • peer-asn を、以前に設定された router-name-1 のすべてのインターフェースに使用される ASN 番号に置き換えます。この例では、ASN 番号 65001 を使用しています。
    1. tunnel-name-gw2-if0BGP インターフェースを作成するには、次のコマンドを入力します。

      gcloud compute routers add-interface router-name-2 \
         --interface-name router-2-interface-name-0 \
         --ip-address ip-address \
         --mask-length mask-length \
         --vpn-tunnel tunnel-name-gw2-if0 \
         --region region-1
      

      コマンド出力は次の例のようになります。

    2. tunnel-name-gw2-if0BGP ピアを作成するには、次のコマンドを入力します。

       gcloud compute routers add-bgp-peer router-name-2 \
         --peer-name peer-name \
         --interface router-2-interface-name-0 \
         --peer-ip-address peer-ip-address \
         --peer-asn peer-asn \
         --region region-1
      

      コマンド出力は次の例のようになります。

       Updated [https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/routers/router-b ].
      
  5. トンネル tunnel-name-gw2-if1router-name-2 に BGP インターフェースと BGP ピアを作成します。この BGP インターフェースは、2 つの BGP IP アドレスを使用して、gw-2 のインターフェース 1 の tunnel-name-gw2-if1gw-1 のインターフェース 1 に接続します。次のコマンドで、下記のオプションを置き換えます。

    • router-2-interface-name-1 を、Cloud Router の BGP インターフェース名に置き換えます。tunnel-name-gw2-if1 に関連する名前を使用すると便利です。
    • ip-address を、このゲートウェイとインターフェースに以前使用した BGP IP アドレスに置き換えます。この例では 169.254.1.2 を使用しています。
    • 30mask-length を使用します。
    • peer-name を、BGP ピアを表す名前に置き換えます。tunnel-name-gw2-if1 に関連する名前を使用すると便利です。
    • peer-ip-address は、まだ使用されていない 169.254.0.0/16 ブロックの BGP IP アドレスに置き換えます。この例では 169.254.1.1 を使用しています。
    • peer-asn を、以前に設定された router-name-1 のすべてのインターフェースに使用される ASN 番号に置き換えます。この例では、ASN 番号 65001 を使用しています。
    1. tunnel-name-gw2-if1BGP インターフェースを作成するには、次のコマンドを入力します。

      gcloud compute routers add-interface router-name-2 \
         --interface-name router-2-interface-name-1 \
         --ip-address ip-address \
         --mask-length mask-length \
         --vpn-tunnel tunnel-name-gw2-if1 \
         --region region-1
      

      コマンド出力は次の例のようになります。

      Updated [https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/routers/router-b ].
      
    2. tunnel-name-gw2-if1BGP ピアを作成するには、次のコマンドを入力します。

      gcloud compute routers add-bgp-peer router-name-2  \
         --peer-name peer-name \
         --interface router-2-interface-name-1 \
         --peer-ip-address peer-ip-address \
         --peer-asn peer-asn \
         --region region-1
      

      コマンド出力は次の例のようになります。

       Updated [https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/routers/router-b ].
      
  6. 次のコマンドを入力して、router-2 の設定を確認します

    gcloud compute routers describe router-2  \
       --region region-1
    

    コマンド出力は次の例のようになります。

     bgp:
       advertiseMode: DEFAULT
       asn: 65002
     bgpPeers:
     — interfaceName: if-tunnel-b-to-a-if-0
       ipAddress: 169.254.0.2
       name: bgp-peer-tunnel-b-to-a-if-0
       peerAsn: 65001
       peerIpAddress: 169.254.0.1
     bgpPeers:
     — interfaceName: if-tunnel-b-to-a-if-1
       ipAddress: 169.254.1.2
       name: bgp-peer-tunnel-b-to-a-if-1
       peerAsn: 65001
       peerIpAddress: 169.254.1.1
     creationTimestamp: '2015-10-19T14:31:52.639-07:00'
     id: '4047683710114914215'
     interfaces:
     — ipRange: 169.254.0.1/30
       linkedVpnTunnel:
     https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/vpnTunnels/tunnel-b-to-a-if-0
       name: if-tunnel-b-to-a-if-0
       — ipRange: 169.254.1.1/30
       linkedVpnTunnel:
     https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/vpnTunnels/tunnel-b-to-a-if-1
       name: if-tunnel-b-to-a-if-1
     kind: compute#router
     name: router-b
     network: https://www.googleapis.com/compute/v1/projects/project-id/global/networks/network-b
     region: https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1
     selfLink: https://www.googleapis.com/compute/v1/projects/project-id/regions/us-central1/routers/router-b
    

続行して構成を完了

API

ステップ 1: HA VPN ゲートウェイを作成するには、vpnGateways.insert メソッドに対する POST リクエストを行います。他の HA VPN ゲートウェイを作成するには、他のゲートウェイに namenetworkregion を使用して、このコマンドを繰り返します。

 POST https://www.googleapis.com/compute/v1/projects/project-id/regions/region/vpnGateways
 {
   "name": "ha-vpn-gw-a",
   "network": "https://www.googleapis.com/compute/v1/projects/project-id/global/networks/network-a"
 }

ステップ 2:

各 HA VPN ゲートウェイが存在する各 VPC ネットワークに Cloud Router をすでに作成している場合は、新しい Cloud Router を作成せずにこれらの Cloud Router を使用できます。ただし、Cloud Router が Partner Interconnect に関連付けられた相互接続のアタッチメントの BGP セッションを管理している場合、新しい Cloud Router を作成する必要があります。

Cloud Router を作成するには、routers.insert メソッドに対して POST リクエストを行います。

 POST https://www.googleapis.com/compute/v1/projects/project-id/regions/region/routers
 {
   "name": "router-a",
   "network": "https://www.googleapis.com/compute/v1/projects/project-id/global/networks/network-a"
 }

ステップ 3: HA VPN ゲートウェイの各インターフェースに 1 つずつ、2 つの VPN トンネルを作成するには、vpnTunnels.insert メソッドに対する POST リクエストを行います。

次のコマンドを入力して、最初のトンネルを作成します。

 POST https://www.googleapis.com/compute/v1/projects/project-id/regions/region/vpnTunnels
 {
   "name": "ha-vpn-gw-a-tunnel-0",
   "ikeVersion": 2,
   "peerIp": "192.0.2.1",
   "router": "https://www.googleapis.com/compute/v1/projects/project-id/regions/region/routers/router-a",
   "sharedSecret": "974;va'oi3-1",
   "vpnGateway": "https://www.googleapis.com/compute/v1/projects/project-id/regions/region/vpn-gateways/ha-vpn-gw-a",
   "vpnGatewayInterface": 0
 }

2 つ目のトンネルを作成するには、前述のコマンドを繰り返しますが、次のパラメータを変更します。

  • name
  • peerIp
  • sharedSecret または sharedSecretHash(必要に応じて)

2 番目のトンネルでは、vpnGatewayInterface パラメータを他の HA VPN ゲートウェイ インターフェースの値に変更します。この例では、1 に変更します。

この手順を繰り返して、最初の HA VPN ゲートウェイに接続する 2 つ目の HA VPN ゲートウェイのトンネルを 2 つ作成します。ただし、gcloud コマンドを参考として使用して、パラメータを変更してください。

BGP のアドバタイズされたルート優先度の設定(省略可)

次の例では、変更されていない基本優先度を使用して、それぞれのピア ネットワークへのルートをアドバタイズする Cloud Router のインスタンスに BGP セッションを作成します。2 つのトンネルの両方のサイドの優先度が一致するアクティブ / アクティブ構成にこの構成を使用します。この例のように、パラメータ advertised-route-priority を省略すると、両方の BGP ピアに同じアドバタイズされた優先度が設定されます。

アクティブ / パッシブ構成の場合、Cloud Router とピア VPN ゲートウェイとで共有されている「Google Cloud に至る」ルートのアドバタイズされた基本優先度を制御できます。この優先度を構成するには、BGP ピアを追加または更新するときに、advertised-route-priority パラメータを使用します。

アクティブ / パッシブ構成を作成するには、1 つの VPN トンネルに対応する BGP セッションのアドバタイズされたルート優先度を、他の VPN トンネルの BGP セッションの優先度より高く設定します。

アドバタイズされた基本優先度の詳細は、ルート指標をご覧ください。

カスタム アドバタイズを使用してアドバタイズされたルートを絞り込むには、advertiseMode パラメータを追加して、その値を custom に設定し、IP アドレス範囲を advertisedIpRanges パラメータで指定します。

ステップ 4: Cloud Router BGP インターフェースを作成するには、routers.patch メソッドまたは routers.update メソッドに対して、PATCH リクエストまたは UPDATE リクエストを行います。PATCH は、指定したパラメータのみを更新します。UPDATE は、Cloud Router のすべてのパラメータを更新します。HA VPN ゲートウェイ上の VPN トンネルごとに BGP インターフェースを作成します。

 PATCH https://www.googleapis.com/compute/v1/projects/project-id/regions/region/routers/{resourceId}
 {
   "interfaces": [
     {
       "name": "if-tunnel-a-to-on-prem-if-0",
       "linkedVpnTunnel": "ha-vpn-gw-a-tunnel-0",
       "ipRange": "169.254.0.1/30"
     }
   ]
 }

ステップ 5: VPN トンネルごとに Cloud Router に BGP ピアを追加するには、routers.insert メソッドに対して POST リクエストを行います。他の VPN トンネルに対してこのコマンドを繰り返し、name と「peerAsn」以外のすべてのオプションを変更します。

HA VPN ゲートウェイの完全な構成を作成するには、次の API コマンドを使用します。

 POST https://www.googleapis.com/compute/v1/projects/project-id/regions/region/routers
 {
   "name": "router-a",
   "network": "network-a",
   "bgpPeers": [
     {
       "interfaceName": "if-tunnel-a-to-on-prem-if-0",
       "ipAddress": "169.254.0.1",
       "name": "bgp-peer-tunnel-a-to-on-prem-if-0",
       "peerAsn": "65002",
       "peerIpAddress": "169.254.0.2",
       "advertiseMode": "DEFAULT"
     }
   ]
  }
 

STEP 6: 空のリクエストの本文を使用して、routers.getRouterStatus メソッドで Cloud Router の構成を確認します。

 POST https://www.googleapis.com/compute/v1/projects/project-id/regions/region/routers

構成の完了

新しい Cloud VPN ゲートウェイと関連付けられた VPN トンネルを使用する前に、次の手順を行う必要があります。

  1. ピア VPN ゲートウェイを設定し、対応するトンネルを構成します。次のページをご覧ください。
  2. 必要に応じて、Google Cloud とピア ネットワークにファイアウォール ルールを構成します。推奨事項については、ファイアウォール ルールのページをご覧ください。
  3. VPN トンネルのステータスを確認し、高可用性のために HA VPN ゲートウェイの構成を確認します。
VPN 組織ポリシーの適用

ピア VPN ゲートウェイの IP アドレスを制限する組織ポリシーの制約を適用する

Classic VPN または HA VPN のトンネルを介してピア VPN ゲートウェイとの通信が許可または拒否される IP アドレス群を定義する Google Cloud 組織のポリシーの制約を作成できます。この制約には、これらのピアの IP アドレスの許可リストまたは拒否リストが含まれます。この許可リストまたは拒否リストは、制約適用後に作成される Cloud VPN トンネルに対し有効になります。詳細については、Cloud VPN の概要をご覧ください。

必要な権限

組織レベルまたはプロジェクト レベルでピア IP の制約を設定するには、まず組織内で組織ポリシー管理者(orgpolicy.policyAdmin)のロールを付与してもらう必要があります。

制約の設定方法

組織ポリシーを作成して組織、フォルダ、またはプロジェクトに関連付けるには、次のセクションの例を使用し、制約の使用の手順に従います。

特定のピア IP アドレスから Cloud VPN トンネルを経由する接続の制限

特定のピア IP アドレスのみを許可するには、次の手順を実行します。

  1. 次のコマンドを入力して、組織 ID を検索します。
    gcloud organizations list

    コマンドの出力は次の例のようになります。

          DISPLAY NAME             ID
          example-organization     29252605212
        
  2. ポリシーを定義する JSON ファイルを作成します。次の例のように、ポリシーを JSON ファイルとして指定する必要があります。

         {
           "constraint": "constraints/compute.restrictVpnPeersIPs",
           "listPolicy": {
             "allowedValues": [
               "100.1.1.1",
             ],
           }
         }
       
  3. gcloud の Resource Manager の set-policy コマンドを使用して組織ポリシーを設定します。このとき、JSON ファイルを渡し、前のステップで確認した organization-id を使用します。

ピア IP から Cloud VPN トンネルを経由する接続の制限

新しい Cloud VPN トンネルの作成を禁止するには、この制約の例の手順を実施します。

  1. 組織 ID、またはポリシーを設定するリソース階層内のノードの ID を調べます。
  2. 下の例のような JSON ファイルを作成します。

        {
          "constraint": "constraints/compute.restrictVpnPeersIPs",
          "listPolicy": {
            "allValues": "DENY"
          }
        }
    
  3. 特定のピア IP アドレスを制限するために使用するのと同じコマンドを入力して、JSON ファイルを渡します。