Google Cloud ネットワーク間の HA VPN の作成

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

Cloud VPN の詳細については、次のリソースをご覧ください。

要件

一般的なガイドライン

99.99% の SLA を確実に受けるために、この構成を作成するときに次の要件を満たしていることを確認してください。

  • HA VPN ゲートウェイを、各 VPC ネットワークに 1 つずつ配置する。
  • 両方の HA VPN ゲートウェイを、同じ Google Cloud リージョンに配置する。
  • 各ゲートウェイの各インターフェースにトンネルを構成する。
  • 次の注意事項で説明するように、ゲートウェイ インターフェースをマッチングする。

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

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 ゲートウェイで Border Gateway Protocol(BGP)がサポートされていることを確認します。

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

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

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

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

    [プロジェクトの選択] ページに移動

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

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

        gcloud config set project PROJECT_ID
        
  1. 次のコマンドを実行して、すでに設定されているプロジェクト ID を表示することもできます。

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

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

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

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

  • Cloud Router のすべてのインスタンスは、学習した to on-premises ルートを 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 セッションを作成するには、このセクションの手順を行ってください。

HA VPN ゲートウェイの作成

Console

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

HA VPN ゲートウェイを作成するには、次の手順を行います。

  1. Google Cloud Console で、[VPN] ページに移動します。

    [VPN] に移動

  2. ゲートウェイを初めて作成する場合は、[VPN 接続を作成] をクリックします。

  3. [VPN 設定ウィザード] を選択します。

  4. 既存の HA VPN ゲートウェイがある場合は、そのゲートウェイのオプション ボタンを選択します。

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

  6. [VPN ゲートウェイ名] を指定します。

  7. [VPC ネットワーク] で、既存のネットワークまたはデフォルトのネットワークを選択します。

  8. リージョンを選択します。

  9. [作成して続行] をクリックします。

  10. コンソール画面が更新され、ゲートウェイ情報が表示されます。ゲートウェイ インターフェースごとに 2 つの外部 IP アドレスが自動的に割り振られます。今後の構成手順のために、ゲートウェイ構成の詳細をメモします。

gcloud

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

  • REGION_1 の各ネットワークに HA VPN ゲートウェイを作成します。

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

    次のコマンドで、以下のように置き換えます。

    • GW_NAME_1GW_NAME_2: 各ゲートウェイの名前
    • NETWORK: Google Cloud ネットワークの名前
    • REGION: ゲートウェイとトンネルを作成する Google Cloud リージョン

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

    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
    

API

HA VPN ゲートウェイの完全な構成を作成するには、次のセクションの API コマンドを使用します。このセクションで使用されるすべてのフィールド値は、サンプル値です。

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

POST https://compute.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"
   }

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

Console

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

ピア VPN ゲートウェイ リソースを作成するには、次の手順を行います。

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

gcloud

ピア VPN ゲートウェイ リソースを作成するには、HA VPN ゲートウェイの作成gcloud の手順をご覧ください。

API

ピア VPN ゲートウェイ リソースを作成するには、HA VPN ゲートウェイの作成の API の手順をご覧ください。

Cloud Router の作成

Console

まだ作成していない場合は、[Cloud Router] の下で、次のオプションを指定して Cloud Router を作成します。ルーターが Partner Interconnect 接続に関連付けられた VLAN アタッチメントの BGP セッションをまだ管理していない場合は、既存の Cloud Router を使用できます。

  1. 新しい Cloud Router を作成するには、以下を指定します。

    • 名前
    • 説明(省略可)
    • 新しいルーターの Google ASN

    ネットワーク内の他の場所では使用していない任意のプライベート ASN(645126553442000000004294967294)を使用できます。Google ASN は同じ Cloud Router のすべての BGP セッションで使用され、後からの変更はできません。

  2. 新しいルーターを作成するには、[作成] をクリックします。

gcloud

次の手順では、HA VPN トンネルの BGP セッションの管理に使用する Cloud Router をまだ作成していないことを前提としています。Partner Interconnect 接続に関連付けられた VLAN アタッチメントの BGP セッションをまだ管理していない場合は、各 VPC ネットワークで既存の Cloud Router を使用できます。

2 つの Cloud Router を作成するには、次のコマンド シーケンスを完了します。

  • REGION_1 で各ネットワークに Cloud Router を作成します。

    次のコマンドで、以下のように置き換えます。

    • ASN_1ASN_2: まだ使用していないプライベート ASN(645126553442000000004294967294)。この例では、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
    

API

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

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

 POST https://compute.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"
   }

VPN トンネルの作成

Console

VPN トンネルを作成する手順は次のとおりです。

  1. [高可用性] で、トンネルのペアか、もう一方の HA VPN ゲートウェイへのトンネルを 1 つ選択します。

    • [VPN トンネルのペアを作成する] を選択した場合(推奨)、[VPN の作成] ページの下部に表示される 2 つのトンネル ダイアログで構成を行います。

    • [VPN トンネルを 1 つ作成する] を選択した場合、以降の [VPN の作成] ページで 1 つのトンネルを構成します。ただし、他の HA VPN ゲートウェイへの 99.99% の SLA を取得するには、2 つ目のトンネルを作成する必要があります。この手順の最後で説明しているように、後で 2 つ目のトンネルを追加することもできます。

  2. 同じページで行うか、この手順の最後にある各トンネルのダイアログで操作を行います。

  3. 1 つのトンネルを構成する場合は、[関連付けられている Cloud VPN ゲートウェイ インターフェース] で、このゲートウェイ用の HA VPN インターフェースと IP アドレスの組み合わせを選択して、他の HA VPN ゲートウェイのゲートウェイ インターフェースに関連付けます。2 トンネル構成では、正しいインターフェースの組み合わせが構成されているため、このオプションと [関連付けられているピア VPN ゲートウェイ インターフェース] オプションは両方とも使用できません。

    1. トンネルの [名前] を指定します。
    2. [説明](省略可)を指定します。
    3. [IKE バージョン] を指定します。ピアルーターが IKE v2 をサポートしている場合は、デフォルト設定の IKE v2 をおすすめします。
    4. 事前共有キー(共有シークレット)を使用して [IKE 事前共有キー] を指定します。このキーは、ピア ゲートウェイに作成するパートナー トンネル用の事前共有キーに対応させる必要があります。ピア VPN ゲートウェイで事前共有キーをまだ構成しておらず、これから生成する場合は、[生成してコピー] をクリックします。事前共有キーは VPN トンネルの作成後に取得できないため、安全な場所に記録してください。
    5. [完了] をクリックします。
    6. [VPN の作成] ページの、残りのトンネル ダイアログでトンネル作成手順を繰り返します。
  4. すべてのトンネルを構成したら、[作成して続行] をクリックします。

gcloud

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

  • GW_NAME_1interface 0 から作成するトンネルは、NETWORK_2GW_NAME_2interface 0 に関連付けられた外部 IP アドレスに接続する必要があります。
  • GW_NAME_1interface 1 から作成するトンネルは、GW_NAME_2interface 1 に関連付けられた外部 IP アドレスに接続する必要があります。
  • NETWORK_1GW_NAME_1 に VPN トンネルを作成する場合は、NETWORK_2GW_NAME_2 の情報を指定します。GW_NAME_1interface 0 から GW_NAME_2interface 0GW_NAME_1interface 1 から GW_NAME_2interface 1 へのトンネルが自動的に接続されます。

    GW_NAME_1 への 2 つのトンネルの作成

    • NETWORK_1 内の GW_NAME_1 の各インターフェースに 1 つずつ、2 つの VPN トンネルを作成します。

      次のコマンドで、以下のように置き換えます。

      • TUNNEL_NAME_GW1_IF0TUNNEL_NAME_GW1_IF1: GW_NAME_1 を起点とする各トンネルの名前。ゲートウェイ インターフェース名を含めてトンネルに名前を付けると、後でトンネルを識別するのに役立ちます。
      • GW_NAME_2: --peer-gcp-gateway の値。
      • REGION: GW_NAME_1 が配置されているリージョン
      • (省略可)--vpn-gateway-region は HA VPN ゲートウェイが動作するリージョンです。--region と同じ値になります。指定しない場合、このオプションが自動的に設定されます。このオプションは、このコマンド呼び出しのデフォルトの compute/region プロパティ値をオーバーライドします。
      • IKE_VERS: IKEv2 の場合は 2。両方のトンネルは別の HA VPN ゲートウェイに接続するため、IKEv2 を使用することをおすすめします。
      • SHARED_SECRET: 事前共有キー(共有シークレット)。これは、interface 0interface 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 つのトンネルの作成

    • NETWORK_2 内の GW_NAME_2 の各インターフェースに 1 つずつ、2 つの VPN トンネルを作成します。

      • GW_NAME_2interface 0 から作成するトンネルは、NETWORK_1GW_NAME_1interface 0 に関連付けられた外部 IP アドレスに接続する必要があります。
      • GW_NAME_2interface 1 から作成するトンネルは、GW_NAME_1interface 1 に関連付けられた外部 IP アドレスに接続する必要があります。

      次のコマンドで、以下のように置き換えます。

      • REGION: GW_NAME_2 が配置されているリージョン
      • (省略可)--vpn-gateway-region は VPN ゲートウェイが動作するリージョンです。--region と同じ値になります。指定しない場合、このオプションが自動的に設定されます。このオプションは、このコマンド呼び出しのデフォルトの compute/region プロパティ値をオーバーライドします。
      • TUNNEL_NAME_GW2_IF0TUNNEL_NAME_GW2_IF1: GW_NAME_2 を起点とする各トンネルの名前。ゲートウェイ インターフェース名を含めてトンネルに名前を付けると、後でトンネルを識別するのに役立ちます。
      • GW_NAME_1: --peer-gcp-gateway の値。--peer-gcp-gateway-region の値は、VPN トンネルと同じリージョンにする必要があります。指定しない場合、値は自動的に設定されます。この例では、リージョンは REGION_1 です。
      • IKE_VERS: IKEv2 の場合は 2。これらのトンネルは前の手順で作成した 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 が構成され、使用可能な場合にのみ確立できます。

API

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

  1. 最初のトンネルを作成するには、次のコマンドを実行します。

    POST https://compute.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. 2 つ目のトンネルを作成するには、前述のコマンドを繰り返しますが、次のパラメータを変更します。

    • name
    • peerIp
    • sharedSecret または sharedSecretHash(必要に応じて)
    • vpnGatewayInterface: 他の HA VPN ゲートウェイ インターフェースの値に変更します。この例では、1 に変更します。

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

BGP セッションの作成

Console

BGP セッションを作成する手順は次のとおりです。

  1. BGP セッションを今すぐ構成しない場合は、[後で BGP セッションを構成] をクリックして [まとめとリマインダー] ページを開きます。
  2. BGP セッションを今すぐ構成する場合は、最初の VPN トンネルで [構成] をクリックします。
  3. [BGP セッションの作成] ページで、次の手順を行います。
    1. BGP セッションの [名前] を指定します。
    2. ピア VPN ゲートウェイ用に構成された [ピア ASN] を指定します。
    3. (省略可)[アドバタイズされたルートの優先度] を指定します。
    4. [Cloud Router の BGP IP] アドレスと [BGP ピア IP] アドレスを指定します。IP アドレスが次の要件を満たしていることを確認します。
      • 各 BGP IP アドレスは、169.254.0.0/16 内に収まる同じ /30 CIDR に属している必要があります。
      • 各 BGP IP アドレスには、/30 CIDR の最初のアドレス(ネットワーク)または最後のアドレス(ブロードキャスト)を使用できません。
      • BGP セッションの各 BGP IP アドレス範囲は、VPC ネットワークのすべてのリージョンの Cloud Router 間で一意でなければなりません。
    5. (省略可)[アドバタイズされたルート] リストをクリックして、カスタムルートを作成します。
    6. [保存して次へ] をクリックします。
  4. ゲートウェイで構成した残りのトンネルに対して前の手順を繰り返します。トンネルごとに、異なる Cloud Router の BGP IP アドレスと BGP ピア IP アドレスを使用します。
  5. すべての BGP セッションを構成したら、[BGP 構成を保存] をクリックします。

gcloud

このセクションでは、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 ピアを作成するには、次のコマンド シーケンスを完了します。

  1. トンネル TUNNEL_NAME_GW1_IF0ROUTER_NAME_1 に BGP インターフェースと BGP ピアを作成します。

    この BGP インターフェースは、2 つの BGP IP アドレスを使用して、GW_1interface 0TUNNEL_NAME_GW1_IF0GW_2interface 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 を使用しています。
    • MASK_LENGTH: 30。同じ Cloud Router 上の各 BGP セッションで、169.254.0.0/16 ブロックの一意の /30 CIDR を使用する必要があります。
    • 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 を使用しています。

    TUNNEL_NAME_GW1_IF0 の BGP インターフェースの作成

    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
    

    TUNNEL_NAME_GW1_IF0 の BGP ピアの作成

    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_1interface 1TUNNEL_NAME_GW1_IF1GW_2interface 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 を使用しています。
    • MASK_LENGTH: 30。同じ Cloud Router 上の各 BGP セッションで、169.254.0.0/16 ブロックの一意の /30 CIDR を使用する必要があります。
    • 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 を使用しています。

    TUNNEL_NAME_GW1_IF1 の BGP インターフェースの作成

    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
    

    TUNNEL_NAME_GW1_IF1 の BGP ピアの作成

    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_2interface 0TUNNEL_NAME_GW2_IF0GW_1interface 0 に接続します。

    次のコマンドで、以下のように置き換えます。

    • ROUTER_2_INTERFACE_NAME_0: Cloud Router の BGP インターフェース名。TUNNEL_NAME_GW2_IF0 に関連する名前を使うと便利です。
    • IP_ADDRESS: このゲートウェイとインターフェースで以前に使用した BGP IP アドレス。この例では、169.254.0.2 を使用しています。
    • MASK_LENGTH: 30。同じ Cloud Router 上の各 BGP セッションで、169.254.0.0/16 ブロックの一意の /30 CIDR を使用する必要があります。
    • PEER_NAME: BGP ピアを説明する名前。TUNNEL_NAME_GW2_IF0 に関連する名前を使用すると便利です。
    • PEER_IP_ADDRESS: 以前にピア ゲートウェイとインターフェースに使用された IP アドレス。この例では、169.254.0.1 を使用しています。
    • PEER_ASN: ROUTER_NAME_1 のすべてのインターフェースに使用される ASN 番号。この例では ASN 番号 65001 を使用しています。

    TUNNEL_NAME_GW2_IF0 の BGP インターフェースの作成

    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
    

    TUNNEL_NAME_GW2_IF0 の BGP ピアの作成

    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_2interface 1TUNNEL_NAME_GW2_IF1GW_1interface 1 に接続します。

    次のコマンドで、以下のように置き換えます。

    • ROUTER_2_INTERFACE_NAME_1: Cloud Router の BGP インターフェース名。TUNNEL_NAME_GW2_IF1 に関連する名前を使うと便利です。
    • IP_ADDRESS: このゲートウェイとインターフェースで以前に使用した BGP IP アドレス。この例では、169.254.1.2 を使用しています。
    • MASK_LENGTH: 30。同じ Cloud Router 上の各 BGP セッションで、169.254.0.0/16 ブロックの一意の /30 CIDR を使用する必要があります。
    • 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 を使用しています。

    TUNNEL_NAME_GW2_IF1 の BGP インターフェースの作成

    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].
    

    TUNNEL_NAME_GW2_IF1 の BGP ピアの作成

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

    BGP IP アドレス範囲は、VPC ネットワークのすべてのリージョンの Cloud Router 間で一意にする必要があります。

    PATCH https://compute.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"
       }
     ]
    }
    
  2. VPN トンネルごとに Cloud Router に BGP ピアを追加するには、routers.insert メソッドに対して POST リクエストを行います。namepeerAsn 以外のオプションをすべて変更して、このコマンドを他の VPN トンネルに繰り返します。

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

    POST https://compute.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"
       }
     ]
    }
    

構成を確認する

Console

構成を確認するには、[まとめとリマインダー] ページに移動します。

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

gcloud

Cloud Router の構成を確認するには、BGP セッションの作成で [gcloud] タブでの確認の手順をご覧ください。

API

Cloud Router の構成を確認するには、routers.getRouterStatus メソッドを使用して GET リクエストを行います。リクエストの本文は空にします。

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers

シングル トンネル ゲートウェイにトンネルを作成する

Console

99.99% の稼働時間の SLA を受けるには、HA VPN 間のゲートウェイ構成の各側で、各 HA VPN インターフェースにトンネルを構成します。

HA VPN ゲートウェイで別の HA VPN ゲートウェイへのトンネルを 1 つ構成済みであるものの、稼働時間 99.99% の SLA を達成する必要がある場合は、2 つ目のトンネルを構成する必要があります。

2 つ目のトンネルを構成するには、HA VPN ゲートウェイから別の HA VPN ゲートウェイへのトンネルの追加の手順を行います。

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

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

両側の 2 つのトンネルのアドバタイズされたルートの優先度が一致するアクティブ / アクティブ ルーティング構成では、相互に接続する 2 つの完全に構成された HA VPN ゲートウェイの作成に記載されている構成を使用します。アドバタイズされたルート優先度(--advertised-route-priority)を省略すると、同じアドバタイズされたルートの優先度が両方の BGP ピアに設定されます。

アクティブ / パッシブのルーティング構成では、BGP ピアを追加または更新するときにアドバタイズされたルートの優先度(--advertised-route-priority)を設定することで、Cloud Router がピア VPN ゲートウェイと共有する to Google Cloud ルートのアドバタイズされたルートの優先度を制御できます。アクティブ / パッシブ構成を作成するには、1 つの BGP セッションと対応する VPN トンネルのアドバタイズされたルートの優先度を、他の BGP セッションと VPN トンネルよりも高く設定します。

アドバタイズされたルートの基本優先度の詳細については、アドバタイズされた接頭辞と優先度をご覧ください。

カスタムルート アドバタイズを使用して、アドバタイズされたルートを絞り込むこともできます。

  • --advertisement-mode=CUSTOM フラグ(gcloud)または advertiseMode: custom フラグ(API)を追加します。
  • --set-advertisement-ranges フラグ(gcloud)または advertisedIpRanges フラグ(API)を使用して、IP アドレス範囲を指定します。

構成の完了

新しい Cloud VPN ゲートウェイとそれに関連付けられた VPN トンネルを使用するには、次の操作を行います。

  1. ピア VPN ゲートウェイを設定し、対応するトンネルを構成します。手順については、以下をご覧ください。
  2. 必要に応じて、Google Cloud とピア ネットワークにファイアウォール ルールを構成します
  3. VPN トンネルのステータスを確認します。この手順は、HA VPN ゲートウェイの高可用性構成の確認を含みます。

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

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

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

必要な権限

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

特定のピア IP アドレスからの接続を制限する

Cloud VPN トンネル経由で特定のピア IP アドレスのみを許可するには、次の手順を行います。

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

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

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

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

任意のピア IP アドレスからの接続を制限する

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

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

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

次のステップ

  • VPN トンネルとゲートウェイを維持するためのリソースを確認するには、入門ガイドの VPN の管理をご覧ください。
  • 高可用性と高スループットのシナリオ、または複数のサブネット シナリオを使用する。高度な構成をご覧ください。
  • Cloud VPN の使用時に発生する可能性のある一般的な問題を解決する。トラブルシューティングをご覧ください。