動的ルーティングを使用する Classic VPN ゲートウェイの作成

このページでは、動的ルーティングを使用して、Classic VPN ゲートウェイと、Border Gateway Protocol(BGP)を使用するトンネルを作成する方法について説明します。

動的ルーティングを使用する場合はローカル、リモートのどちらのトラフィック セレクタも指定せず、代わりに Cloud Router を使用します。ルート情報は動的に交換されます。

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

  • Cloud VPN を設定する前に検討すべきベスト プラクティスについては、ベスト プラクティスをご覧ください。

  • Cloud VPN の詳細については、Cloud VPN の概要をご覧ください。

  • このページで使用している用語の定義については、主な用語をご覧ください。

要件

一般的なガイドライン

  • Google Cloud での動的ルーティングの仕組みを確認します。
  • 使用するピア VPN ゲートウェイで BGP がサポートされていることを確認します。
  • Classic VPN トポロジのサンプルを表示します。

Compute Engine VM にサードパーティ VPN ソフトウェアをインストールする

動的ルーティングを使用する Classic VPN トンネルを作成する場合は、ピア VPN ゲートウェイ インターフェースに指定する IP アドレスを Compute Engine VM に割り当てる必要があります。

したがって、Classic VPN トンネルを作成する前に、Compute Engine VM にサードパーティ VPN ソフトウェアをインストールする必要があります。Classic VPN トンネルを構成する場合は、Compute Engine VM の外部 IP アドレスをピア VPN ゲートウェイ インターフェースとして指定します。

また、ピア VPN ゲートウェイ インターフェースの IP アドレスは、Google が所有するリージョン外部 IPv4 アドレスプールから割り振る必要があります。お客様所有 IP アドレス(BYOIP)範囲の IP アドレスは使用できません。

Cloud Router を作成する

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

始める前に

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

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  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 を使用している場合は、次のコマンドを使用してプロジェクト ID を設定します。このページの gcloud の説明では、コマンド発行前にプロジェクト ID を設定済みであることを前提としています。

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

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

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

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

ゲートウェイとトンネルを作成する

コンソール

ゲートウェイの構成

  1. Google Cloud コンソールの [VPN] ページに移動します。
    [VPN] ページに移動
    1. ゲートウェイを作成するのが初めての場合、[VPN 接続を作成] ボタンをクリックします。
    2. [VPN 設定ウィザード] を選択します。
  2. [Classic VPN] のラジオボタンをオンにします。
  3. [続行] をクリックします。
  4. [VPN 接続の作成] ページで、次のゲートウェイ設定を指定します。
    • [名前] - VPN ゲートウェイの名前。この名前は後で変更できません。
    • [説明] - 必要に応じて、説明を追加します。
    • [ネットワーク] - VPN ゲートウェイとトンネルを作成する既存の VPC ネットワークを指定します。
    • [リージョン] - Cloud VPN ゲートウェイとトンネルは、リージョン オブジェクトです。ゲートウェイが配置される Google Cloud リージョンを選択します。別のリージョン内にあるインスタンスなどのリソースでは、ルートの順序の対象となる下り(外向き)トラフィック用のトンネルを使用できます。パフォーマンスの向上のために、ゲートウェイとトンネルは、関連する Google Cloud リソースと同じリージョン内に配置してください。
    • IP アドレス - 既存のリージョンの外部 IP アドレスを作成または選択します。

トンネルの構成

  1. 新しいトンネルについて、[トンネル] セクションに次の情報を指定します。

    • 名前 - VPN トンネルの名前。この名前は後で変更できません。
    • [説明] - 説明を任意で入力します。
    • [リモートピア IP アドレス] - ピア VPN ゲートウェイの外部 IP アドレスを指定します。
    • [IKE バージョン] - ピア VPN ゲートウェイでサポートされている適切な IKE バージョンを選択します。IKEv2 がピアデバイスでサポートされていれば、このバージョンを選択してください。

    • 共有シークレット - 認証用の事前共有キーを指定します。Cloud VPN トンネルの共有シークレットは、ピア VPN ゲートウェイ上で対応するトンネルを構成する場合に使用するものと同じでなければなりません。暗号として強い共有シークレットを生成するには、こちらの手順に沿って操作してください。

    • ルーティング オプション - [動的(BGP)] を選択します。Google Cloud VM インスタンス内で実行されているサードパーティの VPN ゲートウェイ ソフトウェアに接続する場合は、動的ルーティングのみを使用できます。

    • Cloud Router - 下記のようにオプションを指定して新しい Cloud Router を作成します(まだ行っていない場合)。また、Cloud Router が Partner Interconnect に関連付けられた相互接続アタッチメントの BGP セッションをまだ管理していない場合は、既存の Cloud Router を使用できます。既存の Cloud Router を選択しても、新しい BGP セッションが作成されますが、Google ASN は同じです。新しい Cloud Router を作成するには、次の情報を指定します。

      • 名前 - Cloud Router の名前。この名前は後で変更できません。
      • [説明] - 説明を任意で入力します。
      • Google ASN - プライベート ASN645126553442000000004294967294)を選択します。この Google ASN は Cloud Router が管理するすべての BGP セッションに使用されます。この ASN は後で変更できません。
      • [保存して次へ] をクリックします。
    • BGP セッション - 鉛筆アイコンをクリックして、次のように詳細を入力します。入力が済んだら [保存して次へ] をクリックします。

      • 名前 - BGP セッションの名前。この名前は後で変更できません。
      • ピア ASN - ピア VPN ゲートウェイで使用されるパブリックまたはプライベート645126553442000000004294967294)ASN。
      • [アドバタイズされたルートの優先度] - (省略可)Cloud Router が「Google Cloud に至る」ルートのアドバタイジングで使用する基本優先度。詳細については、アドバタイズされたプレフィックスと優先度をご覧ください。ピア VPN ゲートウェイの場合、この値は MED 値としてインポートされます。
      • [Cloud Router の BGP IP] と [BGP ピア IP] - この 2 つの BGP インターフェース IP アドレスは、169.254.0.0/16 ブロックの共通の /30 CIDR に属するリンクローカル IP アドレスでなければなりません。各 BGP IP は、ルート情報の交換に使用される、それぞれのリンクローカル IP を定義します。たとえば、169.254.1.1169.254.1.2 は共通の /30 ブロックに属します。
  2. 同じゲートウェイ上でトンネルを追加作成する場合は、[トンネルの追加] をクリックし、上記の手順を繰り返します。後でトンネルを追加することもできます。

  3. [作成] をクリックします。

gcloud

以下のコマンドでは、次の箇所を置き換えてください。

  • PROJECT_ID はプロジェクトの ID に置き換えます。
  • NETWORK は、Google Cloud ネットワークの名前に置き換えます。
  • REGION は、ゲートウェイとトンネルを作成する Google Cloud リージョンに置き換えます。
  • (省略可)--target-vpn-gateway-region は、Classic VPN ゲートウェイが動作するリージョンです。--region と同じ値になります。指定しない場合、このオプションが自動的に設定されます。このオプションは、このコマンド呼び出しのデフォルトの compute/region プロパティ値をオーバーライドします。
  • GW_NAME はゲートウェイの名前に置き換えます。
  • GW_IP_NAME は、ゲートウェイによって使用される外部 IP の名前に置き換えます。

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

  1. Cloud VPN ゲートウェイのリソースを作成します。

    1. ターゲット VPN ゲートウェイ オブジェクトを作成します。

      gcloud compute target-vpn-gateways create GW_NAME \
          --network NETWORK \
          --region REGION \
          --project PROJECT_ID
      
    2. リージョンの外部(静的)IP アドレスを予約します。

      gcloud compute addresses create GW_IP_NAME \
          --region REGION \
          --project PROJECT_ID
      
    3. IP アドレスをメモします(ピア VPN ゲートウェイを構成するときに使用します)。

      gcloud compute addresses describe GW_IP_NAME \
          --region REGION \
          --project PROJECT_ID \
          --format='flattened(address)'
      
    4. 転送ルールを 3 つ作成します。この 3 つのルールは、ESP(IPSec)、UDP 500、UDP 4500 のトラフィックをゲートウェイに送信するよう Google Cloud に指示します。

       gcloud compute forwarding-rules create fr-GW_NAME-esp \
           --load-balancing-scheme=EXTERNAL \
           --ip-protocol ESP \
           --address GW_IP_NAME \
           --target-vpn-gateway GW_NAME \
           --region REGION \
           --project PROJECT_ID
      
      gcloud compute forwarding-rules create fr-GW_NAME-udp500 \
          --load-balancing-scheme=EXTERNAL \
          --ip-protocol UDP \
          --ports 500 \
          --address GW_IP_NAME \
          --target-vpn-gateway GW_NAME \
          --region REGION \
          --project PROJECT_ID
      
      gcloud compute forwarding-rules create fr-GW_NAME-udp4500 \
          --load-balancing-scheme=EXTERNAL \
          --ip-protocol UDP \
          --ports 4500 \
          --address GW_IP_NAME \
          --target-vpn-gateway GW_NAME \
          --region REGION \
          --project PROJECT_ID
      
  2. 次のコマンドを実行して Cloud Router を作成します(まだ行っていない場合)。下記のオプションを置き換えます。また、Cloud Router が Partner Interconnect に関連付けられた相互接続アタッチメントの BGP セッションをまだ管理していない場合は、既存の Cloud Router を使用できます。

    • ROUTER_NAME は、Cloud Router の名前に置き換えます。
    • GOOGLE_ASN は、プライベート ASN645126553442000000004294967294)に置き換えます。この Google ASN は同じ Cloud Router 上のすべての BGP セッションに使用され、後で変更できません。
      gcloud compute routers create ROUTER_NAME \
      --asn GOOGLE_ASN \
      --network NETWORK \
      --region REGION \
      --project PROJECT_ID
    
  3. 詳細を次のように指定して Cloud VPN トンネルを作成します。

    • TUNNEL_NAME はトンネルの名前に置き換えます。
    • ON_PREM_IP は、ピア VPN ゲートウェイの外部 IP アドレスに置き換えます。
    • IKE_VERS1(IKEv1 の場合)または 2(IKEv2 の場合)に置き換えます。
    • SHARED_SECRET は共有シークレットに置き換えます。Cloud VPN トンネルの共有シークレットは、ピア VPN ゲートウェイ上で対応するトンネルを構成する場合に使用するものと同じでなければなりません。暗号として強い共有シークレットを生成するには、こちらの手順に従ってください。
    • ROUTER_NAME は、Cloud VPN トンネルのルートの管理に使用する Cloud Router の名前に置き換えます。Cloud Router はトンネルを作成する前に作成しておきます。

      gcloud compute vpn-tunnels create TUNNEL_NAME \
          --peer-address ON_PREM_IP \
          --ike-version IKE_VERS \
          --shared-secret SHARED_SECRET \
          --router ROUTER_NAME \
          --target-vpn-gateway GW_NAME \
          --region REGION \
          --project PROJECT_ID
      
  4. インターフェースと BGP ピアを作成して、Cloud Router の BGP セッションを構成します。次のいずれかを行います。

    • リンクローカル BGP IP アドレスが Google Cloud によって自動的に選択されるようにする場合

      1. Cloud Router に新しいインターフェースを追加します。このインターフェースの名前を INTERFACE_NAME に指定します。

        gcloud compute routers add-interface ROUTER_NAME \
            --interface-name INTERFACE_NAME \
            --vpn-tunnel TUNNEL_NAME \
            --region REGION \
            --project PROJECT_ID
        
      2. インターフェースに BGP ピアを追加します。PEER_NAME はピアの名前に置き換え、PEER_ASN はピア VPN ゲートウェイ用に構成された ASN に置き換えます。

        gcloud compute routers add-bgp-peer ROUTER_NAME \
            --peer-name PEER_NAME \
            --peer-asn PEER_ASN \
            --interface INTERFACE_NAME \
            --region REGION \
            --project PROJECT_ID
        

        ピアにカスタム学習ルートを定義する場合は、--set-custom-learned-route-ranges フラグを追加します。必要に応じて、--custom-learned-route-priority フラグを使用して、ルートの優先度を 065535 (両端を含む)の範囲で設定できます。各 BGP セッションには、セッションに構成したすべてのカスタム学習ルートに適用される優先度値が 1 つあります。この機能の詳細については、カスタム学習ルートをご覧ください。

        gcloud compute routers add-bgp-peer ROUTER_NAME \
            --peer-name=PEER_NAME_0 \
            --peer-asn=PEER_ASN \
            --interface=ROUTER_INTERFACE_NAME_0 \
            --region=REGION \
            --set-custom-learned-route-ranges=IP_ADDRESS_RANGES \
            --custom-learned-route-priority=PRIORITY
        
      3. Cloud Router によって選択された BGP IP アドレスを一覧表示します。既存の Cloud Router に新しいインターフェースを追加した場合、そのインターフェースの BGP IP アドレスは最も大きいインデックス番号付きでリストされます。ピア IP アドレスは、ピア VPN ゲートウェイの構成に使用する BGP IP です。

        gcloud compute routers get-status ROUTER_NAME \
             --region REGION \
             --project PROJECT_ID \
             --format='flattened(result.bgpPeerStatus[].ipAddress, \
             result.bgpPeerStatus[].peerIpAddress)'
        

        Cloud Router が単一の Cloud VPN トンネル(インデックス 0)を管理している場合、次のような出力が表示されます。この場合、GOOGLE_BGP_IP は Cloud Router のインターフェースの BGP IP を表し、ON_PREM_BGP_IP はそのピアの BGP IP を表します。

        result.bgpPeerStatus[0].ipAddress:     GOOGLE_BGP_IP
        result.bgpPeerStatus[0].peerIpAddress: ON_PREM_BGP_IP
        
    • Google Cloud BGP インターフェースとピアに関連付けられた BGP IP アドレスを手動で割り当てるには、次のようにします

      1. 169.254.0.0/16 の範囲にある /30 ブロック内で、リンクローカル BGP IP アドレスを 2 つ決定します。次のコマンドで GOOGLE_BGP_IP を置き換えて、これらの BGP IP アドレスのいずれかを Cloud Router に割り当てます。もう 1 つの BGP IP アドレスはピア VPN ゲートウェイに使用します。このアドレスを使用するようにデバイスを構成し、次の後半のコマンドにある ON_PREM_BGP_IP をこのアドレスに置き換えます。

      2. Cloud Router に新しいインターフェースを追加します。INTERFACE_NAME を置き換えて、インターフェースの名前を指定します。

        gcloud compute routers add-interface ROUTER_NAME \
            --interface-name INTERFACE_NAME \
            --vpn-tunnel TUNNEL_NAME \
            --ip-address GOOGLE_BGP_IP \
            --mask-length 30 \
            --region REGION \
            --project PROJECT_ID
        
      3. インターフェースに BGP ピアを追加します。PEER_NAME はピアの名前に置き換え、PEER_ASN はピア VPN ゲートウェイ用に構成された ASN に置き換えます。

        gcloud compute routers add-bgp-peer ROUTER_NAME \
            --peer-name PEER_NAME \
            --peer-asn PEER_ASN \
            --interface INTERFACE_NAME \
            --peer-ip-address ON_PREM_BGP_IP \
            --region REGION \
            --project PROJECT_ID
        

        ピアにカスタム学習ルートを定義する場合は、--set-custom-learned-route-ranges フラグを追加します。必要に応じて、--custom-learned-route-priority フラグを使用して、ルートの優先度を 065535 (両端を含む)の範囲で設定できます。各 BGP セッションには、セッションに構成したすべてのカスタム学習ルートに適用される優先度値が 1 つあります。この機能の詳細については、カスタム学習ルートをご覧ください。

        gcloud compute routers add-bgp-peer ROUTER_NAME \
            --peer-name=PEER_NAME_0 \
            --peer-asn=PEER_ASN \
            --interface=ROUTER_INTERFACE_NAME_0 \
            --region=REGION \
            --set-custom-learned-route-ranges=IP_ADDRESS_RANGES \
            --custom-learned-route-priority=PRIORITY
        

構成を完了する

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

  1. Google Cloud VM インスタンスでサードパーティ VPN ソフトウェアを使用して、ピア VPN ゲートウェイの構成を完了します。対応するトンネルを構成します。Google Cloud 内で実行されているサードパーティの VPN ソフトウェアに接続できるのは、Classic VPN の動的ルーティングのみです。
  2. 必要に応じて、Google Cloud とピア ネットワークにファイアウォール ルールを構成します
  3. VPN トンネルと転送ルールのステータスを確認します

次のステップ