動的ルーティングを使用する Classic VPN の作成

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

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

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

要件

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

Cloud Router の作成

新しい HA VPN ゲートウェイを構成するときは、新しい Cloud Router を作成するか、既存の Cloud VPN トンネルまたは相互接続のアタッチメント(VLAN)で使用している Cloud Router を使用できます。ただし、既存の Cloud Router を使用する場合は、アタッチメントの特定の ASN 要件により、この Cloud Router で Partner Interconnect 接続に関連付けられている相互接続のアタッチメント(VLAN)の 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

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

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

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

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

ゲートウェイとトンネルの作成

VPN 設定ウィザードは、Classic VPN ゲートウェイを作成する唯一のコンソール オプションです。このウィザードには、Classic VPN ゲートウェイ、トンネル、BGP セッション、外部 VPN ゲートウェイ リソースの作成に必要なすべての構成手順が含まれています。ですが、特定の手順は後から完了することもできます。たとえば、BGP セッションの構成です。

[VPN ゲートウェイの作成] ボタンは、HA VPN ゲートウェイの作成のみをサポートしています。

Console

ゲートウェイの構成

  1. Google Cloud Console の [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)] を選択します。
    • [Cloud Router] - 下記のようにオプションを指定して新しい Cloud Router を作成します(まだ行っていない場合)。また、Cloud Router が Partner Interconnect に関連付けられた相互接続アタッチメントの BGP セッションをまだ管理していない場合は、既存の Cloud Router を使用できます。既存の Cloud Router を選択しても、新しい BGP セッションが作成されますが、Google ASN は同じです。新しい Cloud Router を作成するには、次の情報を指定します。
      • [名前] - Cloud Router の名前。この名前は後で変更できません。
      • [説明] - 説明を任意で入力します。
      • [Google ASN] - プライベート ASN(64512~65534、4200000000~4294967294)を選択します。この Google ASN は、Cloud Router によって管理されるすべての BGP セッションで使用されます。この ASN は後で変更できません。
      • [保存して次へ] をクリックします。
    • [BGP セッション] - 鉛筆アイコンをクリックし、詳細を次のように入力します。入力が済んだら [保存して次へ] をクリックします。
      • [名前] - BGP セッションの名前。この名前は後で変更できません。
      • [ピア ASN] - ピア VPN ゲートウェイで使用されるパブリック ASN またはプライベート ASN(64512~65534、4200000000~4294967294)。
      • [アドバタイズされたルートの優先度] - (省略可)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 \
           --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 \
          --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 \
          --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 は、プライベート ASN(64512~65534、4200000000~4294967294)に置き換えます。この 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
        
      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
        

フォローアップ手順

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

  1. ピア VPN ゲートウェイを設定し、対応するトンネルを構成します。次のページをご覧ください。
  2. 必要に応じて、Google Cloud とピア ネットワークにファイアウォール ルールを構成します。推奨事項については、ファイアウォール ルールのページをご覧ください。
  3. 転送ルールを含め、トンネルのステータスを確認します。
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 ファイルを渡します。