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

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

ルートベースの 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 の指定

トラフィック セレクタで指定できる CIDR の数は、IKE のバージョンによって異なります。その他の重要な背景知識については、ルーティング オプションとトラフィック セレクタおよびトラフィック セレクタごとに複数の CIDR を指定するをよく確認してください。

始める前に

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 ネットワークとサブネットの作成

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

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

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

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

VPN ウィザード

ゲートウェイの構成

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

トンネルの構成

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

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

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

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

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

    • [ルーティング オプション] - [ルートベース] を選択します。
    • [リモート ネットワーク IP の範囲] - ピア ネットワークで使用される IP 範囲をスペース区切りリストで指定します。これらの範囲は、ネクストホップがこの VPN トンネルであるカスタム静的ルートを作成するために使用されます。
  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 VPN トンネルを作成します。

    • tunnel-name はトンネルの名前に置き換えます。
    • on-prem-ip は、ピア VPN ゲートウェイの外部 IP アドレスに置き換えます。
    • ike-vers1(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 の場合:

    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
    
  3. 前の手順の --remote-traffic-selector オプションで指定したリモート IP 範囲ごとに静的ルートを作成します。route-name はルートの一意の名前に、[REMOTE_IP_RANGE] は該当するリモート IP 範囲に置き換えて、リモート 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 ゲートウェイとトンネルを使用する前に、次の手順を行う必要があります。

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