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

このページでは、静的ルーティングを使用して Classic VPN ゲートウェイとトンネルを作成する方法を説明します。このトンネルは、ポリシーベースまたはルートベースのトンネルです。

ルートベースの VPN では、リモート トラフィック セレクタのみを指定します。ローカル トラフィック セレクタを指定する必要がある場合は、代わりにポリシーベース ルーティングを使用する Cloud VPN トンネルを作成してください。

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

ルーティング オプション

Google Cloud Console を使用してポリシーベースのトンネルを作成すると、Classic VPN は次のタスクを実行します。

  • トンネルのローカル トラフィック セレクタを、指定する IP 範囲に設定します。
  • トンネルのリモート トラフィック セレクタを [リモート ネットワーク IP の範囲] フィールドに指定する IP 範囲に設定します。
  • [リモート ネットワーク IP の範囲] の各範囲に対して、宛先(接頭辞)が範囲内の CIDR であり、ネクストホップがトンネルであるカスタム静的ルートを Google Cloud が作成します。

Cloud Console を使用してルートベースのトンネルを作成すると、Classic VPN は次のタスクを実行します。

  • トンネルのローカルとリモートのトラフィック セレクタを任意の IP アドレス(0.0.0.0/0)に設定します。
  • [リモート ネットワーク IP の範囲] の各範囲に対して、宛先(接頭辞)が範囲内の CIDR であり、ネクストホップがトンネルであるカスタム静的ルートを Google Cloud が作成します。

gcloud コマンドライン ツールを使用してポリシーベースまたはルートベースのトンネルを作成する場合も、トンネルのトラフィック セレクタは同じ方法で定義されます。ただし、カスタム静的ルートの作成は個別のコマンドで行われるため、これらのルートはより詳細に制御できます。

トラフィック セレクタで指定できる CIDR の数は、IKE のバージョンによって異なります。

重要な背景情報については、以下をご覧ください。

始める前に

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

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

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

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

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

Console

ゲートウェイの構成

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

    [VPN] に移動

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

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

  4. [Classic VPN] オプション ボタンを選択します。

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

  6. [VPN 接続の作成] ページで、次のゲートウェイ設定を指定します。

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

トンネルの構成

  1. 新しいトンネルの場合、[トンネル] セクションで次の設定を指定します。

    • 名前: VPN トンネルの名前。この名前は後で変更できません。
    • 説明: 説明を任意で入力します。
    • リモートピア IP アドレス: ピア VPN ゲートウェイの外部 IP アドレスを指定します。
    • IKE バージョン: ピア VPN ゲートウェイでサポートされている適切な IKE バージョンを選択します。IKEv2 がピアデバイスでサポートされていれば、このバージョンを選択してください。
    • IKE 事前共有キー: 認証用の事前共有キー(共有シークレット)を指定します。Cloud VPN トンネルの事前共有キーは、ピア VPN ゲートウェイ上で対応するトンネルを構成する場合に使用するものと同じでなければなりません。暗号的に強い共有鍵を生成するには、こちらの手順で操作してください。

    ポリシーベースのトンネルの場合

    1. [ルーティング オプション] で [ポリシーベース] を選択します。
    2. [リモート ネットワーク IP の範囲] で、ピア ネットワークで使用される IP 範囲をスペース区切りリストで指定します。これは、リモート トラフィック セレクタ、つまり Cloud VPN の観点から見ると右側です。
    3. [ローカル IP 範囲] で、次のいずれかの方法を選択します。
      • 既存のローカル IP 範囲を選択するには、[ローカル サブネットワーク] メニューを使用します。
      • VPC ネットワークで使用される IP 範囲のスペース区切りのリストを入力するには、[ローカル IP 範囲] フィールドを使用します。重要な考慮事項について、ポリシーベースのトンネルとトラフィック セレクタをご覧ください。

    ルートベースのトンネルの場合

    1. [ルーティング オプション] で [ルートベース] を選択します。
    2. [リモート ネットワーク IP の範囲] で、ピア ネットワークで使用される IP 範囲をスペース区切りリストで指定します。これらの範囲は、ネクストホップがこの VPN トンネルであるカスタム静的ルートを作成するために使用されます。
  2. 同じゲートウェイ上でトンネルを追加作成する場合は、[トンネルの追加] をクリックし、上記の手順を繰り返します。後でトンネルを追加することもできます。

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

gcloud

Cloud VPN ゲートウェイを作成するには、次のコマンド シーケンスを完了します。コマンドでは、以下を置き換えます。

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

ゲートウェイ リソースの構成

  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 つ作成します。このルールは、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
    

Cloud VPN トンネルの作成

  1. コマンドでは、以下を置き換えます。

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

    ポリシーベースの VPN の場合:

    • LOCAL_IP_RANGES: Google Cloud IP 範囲のカンマ区切りのリスト。たとえば、VPC ネットワーク内のサブネットごとに CIDR ブロックを指定できます。これは Cloud VPN の観点から見ると「左側」です。
    • REMOTE_IP_RANGES: ピア ネットワーク IP 範囲のカンマ区切りリスト。これは Cloud VPN の観点から見ると「右側」です。

    ポリシーベースの VPN トンネルを構成するには、次のコマンドを実行します。

    gcloud compute vpn-tunnels create TUNNEL_NAME \
        --peer-address=ON_PREM_IP \
        --ike-version=IKE_VERS \
        --shared-secret=SHARED_SECRET \
        --local-traffic-selector=LOCAL_IP_RANGES \
        --remote-traffic-selector=REMOTE_IP_RANGES \
        --target-vpn-gateway=GW_NAME \
        --region=REGION \
        --project=PROJECT_ID
    

    ルーティング オプションとトラフィック セレクタで定義されるとおり、ルートベースの VPN の場合、ローカルとリモートのトラフィック セレクタはどちらも 0.0.0.0/0 です。

    ルートベースの VPN トンネルを構成するには、次のコマンドを実行します。

    gcloud compute vpn-tunnels create TUNNEL_NAME \
        --peer-address=ON_PREM_IP \
        --ike-version=IKE_VERS \
        --shared-secret=SHARED_SECRET \
        --local-traffic-selector=0.0.0.0/0 \
        --remote-traffic-selector=0.0.0.0/0 \
        --target-vpn-gateway=GW_NAME \
        --region=REGION \
        --project=PROJECT_ID
    
  2. 前の手順の --remote-traffic-selector オプションで指定したリモート IP 範囲ごとに静的ルートを作成します。このコマンドをリモート IP 範囲ごとに繰り返します。ROUTE_NAME はルートの一意の名前に、REMOTE_IP_RANGE は該当するリモート IP 範囲に置き換えます。

    gcloud compute routes create ROUTE_NAME \
        --destination-range=REMOTE_IP_RANGE \
        --next-hop-vpn-tunnel=TUNNEL_NAME \
        --network=NETWORK \
        --next-hop-vpn-tunnel-region=REGION \
        --project=PROJECT_ID
    

構成の完了

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

  1. ピア VPN ゲートウェイを設定し、対応するトンネルを構成します。手順については、以下をご覧ください。
  2. 必要に応じて、Google Cloud とピア ネットワークにファイアウォール ルールを構成します
  3. VPN トンネルと転送ルールのステータスを確認します
  4. プロジェクトのルーティング テーブルに移動し、Next hop type:VPN tunnel をフィルタリングして 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 の使用時に発生する可能性のある一般的な問題を解決する。トラブルシューティングをご覧ください。