VPC ネットワーク ピアリングの設定と管理

Google Cloud VPC ネットワーク ピアリングでは、2 つの Virtual Private Cloud(VPC)ネットワークが同じプロジェクトまたは同じ組織に属しているかにかかわらず、内部 IP アドレス接続できます。ピアリングは、デュアルスタック サブネットを使用するネットワーク間の接続をサポートします。

詳細については、VPC ネットワーク ピアリングをご覧ください。

ピアリング構成を作成する

操作を始める前に、ピアリング先の VPC ネットワークの名前を確認する必要があります。そのネットワークが別のプロジェクトにある場合は、そのプロジェクトのプロジェクト ID も必要です。VPC ネットワークのピアリング リクエストの一覧は表示できません。必要に応じて、ピアリングするネットワークの管理者にネットワーク名とプロジェクト名を確認してください。

ピアリングを構成することは、別の VPC ネットワークに接続する意思があることを表します。ピアリングされるそれぞれのネットワークが相手側とのピアリングを構成するまでは、両者は接続されません。相手側のネットワークでこちら側のネットワークとピアリングするための構成が行われると、双方のネットワークでピアリング状態が ACTIVE に変わり、接続が確立されます。相手側のネットワークで同じピアリング構成が行われていない場合、ピアリング状態は INACTIVE のままになります。これは、2 つのネットワークが接続されていないことを示します。

Google Cloud では、ピアリングされたネットワーク間で一度に 1 つのピアリング関連アクティビティしか許可されません。たとえば、あるネットワークとのピアリングを設定し、すぐに別のネットワークとのピアリングを設定しようとすると、オペレーションは失敗し、Error: There is a peering operation in progress on the local or peer network. Try again later. が返されます。

接続後、2 つの VPC ネットワークは、プライベート IPv4 アドレス範囲を使用する IPv4 サブネット ルート(プライマリとセカンダリの IPv4 サブネット範囲)を常に交換します。サブネット ルート交換オプションの詳細については、サブネット ルートの交換オプションをご覧ください。静的ルートまたは動的ルートの交換の詳細については、静的ルートの交換オプション動的ルートの交換オプションをご覧ください。

コンソール

  1. Google Cloud コンソールの [VPC ネットワーク ピアリング] ページに移動します。
    [VPC ネットワーク ピアリング] に移動
  2. [接続の作成] をクリックします。
  3. [続行] をクリックします。
  4. [名前] フィールドに、ピアリング構成の名前を入力します。
  5. [VPC ネットワーク] で、ピアリングするネットワークを選択します。
  6. ピアリング先のネットワークを選択します。

    • ピアリング先のネットワークが同じプロジェクト内にある場合は、[プロジェクト [NAME-OF-YOUR-PROJECT]] を選択した後、ピアリング先のネットワークを選択します。
    • ピアリング先のネットワークが別のプロジェクト内にある場合は、[別のプロジェクト] を選択します。ピアリング先のネットワークを含むプロジェクトの ID と、その VPC ネットワークの名前を指定します。
  7. [IP スタックタイプ] で、ピアリングされたネットワーク間で交換するサブネット ルートを指定します。

    • IPv4(シングルスタック): IPv4 ルートのみを交換します。
    • IPv4 と IPv6(デュアル スタック): IPv4 ルートと IPv6 ルートの両方を交換します。
  8. IPv4 と IPv6 のカスタムルートをインポートまたはエクスポートするには、次のオプションのいずれかまたは両方を選択します。

    • カスタムルートをインポートする: ピア ネットワークからカスタムルートをインポートします。ルートをインポートするには、ピア ネットワークでカスタムルートのエクスポートを有効にする必要があります。
    • カスタムルートをエクスポートする: カスタムルートをピア ネットワークにエクスポートします。ルートをエクスポートするには、ピア ネットワークでカスタムルートのインポートを有効にする必要があります。
  9. ネットワークまたはピア ネットワークが、サブネット内でプライベート パブリック IPv4 範囲を使用している場合、これらのルートはデフォルトでエクスポートされますが、インポートされません。プライベートで使用されるパブリック IPv4 サブネット ルートをインポートするには:

    • [パブリック IP を使用したサブネット ルートのインポート] を選択して、他のネットワークからエクスポートしたパブリック IPv4 サブネット ルートをインポートします。
  10. [作成] をクリックします。

gcloud

VPC ネットワーク ピアリング接続を作成します。

gcloud compute networks peerings create PEERING_NAME \
    --network=NETWORK \
    --peer-project=PEER_PROJECT_ID \
    --peer-network=PEER_NETWORK_NAME \
    [--stack-type=STACK_TYPE] \
    [--import-custom-routes] \
    [--export-custom-routes] \
    [--import-subnet-routes-with-public-ip] \
    [--export-subnet-routes-with-public-ip]

次のように置き換えます。

  • PEERING_NAME: ピアリング構成の名前。
  • NETWORK: ピアリングするプロジェクトのネットワーク名。
  • PEER_PROJECT_ID: ピアリング先のネットワークを含むプロジェクトの ID。
  • PEER_NETWORK_NAME: ピアリング先のネットワーク名。
  • STACK_TYPE: ピアリング接続のスタックタイプ。IPv4 ルートのみを交換する場合は、IPV4_ONLY を指定します。あるいは、IPV4_IPV6 を指定して IPv4 ルートと IPv6 ルートの両方を交換します。IPV4_ONLY がデフォルト値です。
  • --import-custom-routes を使用すると、ネットワークはピアリングされるネットワークからカスタムルートを受け取ります。まず、ピアリングされたネットワークでルートをエクスポートする必要があります。
  • --export-custom-routes を使用すると、ネットワークはピアリングされるネットワークにカスタムルートをエクスポートします。ルートをインポートするように、ピアリングされたネットワークを設定する必要があります。
  • --import-subnet-routes-with-public-ip を使用すると、ネットワークがサブネット内でプライベート パブリック IPv4 アドレスを使用している場合に、ピアリングされたネットワークからサブネット ルートを受け取ります。まず、ピアリングされたネットワークでルートをエクスポートする必要があります。
  • --export-subnet-routes-with-public-ip を使用すると、ネットワークはプライベートで使用されているパブリック IPv4 アドレスを含むサブネット ルートをエクスポートします。ルートをインポートするように、ピアリングされたネットワークを設定する必要があります。

Terraform

Terraform モジュールを使用してピアリング構成を作成できます。

module "peering1" {
  source        = "terraform-google-modules/network/google//modules/network-peering"
  version       = "~> 9.0"
  local_network = var.local_network # Replace with self link to VPC network "foobar" in quotes
  peer_network  = var.peer_network  # Replace with self link to VPC network "other" in quotes
}

ピアリングされた 2 つの VPC ネットワークの場合、各セルフリンクには、プロジェクト ID と VPC ネットワークの名前が含まれます。VPC ネットワークのセルフリンクを取得するには、VPC ネットワーク プロジェクトそれぞれで gcloud compute networks describe コマンドまたは networks.get メソッドを使用します。

local_network から peer_network へのピアリングを作成すると、ピアリング関係は双方向になります。peer_network から local_network へのピアリングが自動的に作成されます。

Terraform 構成を適用または削除する方法については、基本的な Terraform コマンドをご覧ください。

ピアリングされた VPC ネットワーク間でトラフィックが送受信されていることを確認する

VPC Flow Logs を使用すると、VM インスタンスで送受信されたネットワーク フローを確認できます。また、ファイアウォール ルールロギングを使用して、ネットワーク間でのトラフィックの受け渡しを確認することもできます。ピアリングされるネットワーク間のトラフィックを許可(または拒否)する VPC ファイアウォール ルールを作成し、それらのルールのファイアウォール ルールロギングを有効にします。Cloud Logging で、どのファイアウォール ルールが一致したかを確認できます。

ピアリング接続の更新

既存の VPC ネットワーク ピアリング接続を更新すると、次のことができます。

  • VPC ネットワークが、ピア VPC ネットワーク間でカスタムルートまたはプライベート パブリック IPv4 サブネット ルートのエクスポートまたはインポートを行うかどうかを変更します。
  • 既存のピアリング接続を更新して、ピアリング ネットワーク間の IPv6 ルート交換を有効または無効にします。

ルートをインポートするのは、ピア ネットワークがルートをエクスポートしている場合のみです。ピア ネットワークでは、ルートをインポートする場合にのみルートを受け取ります。

コンソール

  1. Google Cloud コンソールで、[VPC ネットワーク ピアリング] ページに移動します。
    [VPC ネットワーク ピアリング] に移動
  2. 更新するピアリング接続を選択します。
  3. [編集] をクリックします。
  4. [IP スタックタイプ] の選択を更新して、ピアリングされたネットワーク間で交換するサブネット ルートを指定します。
    • IPv4(シングルスタック): ピアリングを介した既存の IPv6 ルートの交換を停止し、IPv4 ルートのみの交換を継続します。
    • IPv4 と IPv6(デュアル スタック): IPv4 ルートと IPv6 ルートの交換を開始します(一致するピアリング接続で IP スタックタイプが [IPv4 と IPv6(デュアル スタック)] に設定されている場合)。
  5. IPv4 と IPv6 のカスタムルートをインポートまたはエクスポートするには、次のオプションのいずれかまたは両方を選択します。
    • カスタムルートをインポートして、相手側のネットワークからエクスポートされたカスタムルートをインポートする。
    • カスタムルートをエクスポートして、カスタムルートを他のネットワークにエクスポートする。他のネットワークは、使用するルートをインポートする必要があります。
  6. ネットワークまたはピア ネットワークが、サブネット内でプライベート パブリック IPv4 範囲を使用している場合、これらのルートはデフォルトでエクスポートされますが、インポートされません。プライベートで使用されるパブリック IPv4 サブネット ルートをインポートするには:
    • [パブリック IP を使用したサブネット ルートのインポート] を選択して、他のネットワークからエクスポートしたパブリック IPv4 サブネット ルートをインポートします。
    • [保存] をクリックします。

gcloud

gcloud compute networks peerings update PEERING_NAME \
    --network=NETWORK \
    [--stack-type=STACK_TYPE] \
    [--import-custom-routes] \
    [--export-custom-routes] \
    [--export-subnet-routes-with-public-ip] \
    [--import-subnet-routes-with-public-ip]

次のように置き換えます。

  • PEERING_NAME: 既存のピアリング接続の名前。
  • NETWORK: ピアリングされているプロジェクト内のネットワークの名前。
  • STACK_TYPE: ピアリング接続のスタックタイプ。
    • ピアリングでの IPv6 ルートの既存の交換を停止し、IPv4 ルートのみの交換を継続するには、IPV4_ONLY を指定します。
    • 一致するピアリング接続の stack_typeIPV4_IPV6 に設定されている場合は、IPv4 ルートと IPv6 ルートの交換を開始するために、IPV4_IPV6 を指定します。
  • --import-custom-routes を使用すると、ネットワークはピアリングされるネットワークからカスタムルートを受け取ります。まず、ピアリングされたネットワークでルートをエクスポートする必要があります。
  • --export-custom-routes を使用すると、ネットワークはピアリングされるネットワークにカスタムルートをエクスポートします。ルートをインポートするように、ピアリングされたネットワークを設定する必要があります。
  • --import-subnet-routes-with-public-ip を使用すると、ネットワークがサブネット内でプライベート パブリック IPv4 アドレスを使用している場合に、ピアリングされたネットワークからサブネット ルートを受け取ります。まず、ピアリングされたネットワークでルートをエクスポートする必要があります。
  • --export-subnet-routes-with-public-ip を使用すると、ネットワークはプライベートで使用されているパブリック IPv4 アドレスを含むサブネット ルートをエクスポートします。ルートをインポートするように、ピアリングされたネットワークを設定する必要があります。

ピアリング接続を一覧表示する

既存のピアリング接続を一覧表示すると、それぞれのステータスと、カスタムルートのインポートまたはエクスポートが行われているかを確認できます。

コンソール

  1. Google Cloud コンソールで、[VPC ネットワーク ピアリング] ページに移動します。
    [VPC ネットワーク ピアリング] に移動
  2. 目的のピアリング接続を選択し、詳細を表示します。

gcloud

gcloud compute networks peerings list

ピアリング ルートを一覧取得する

コンソール

[適用されているルート] タブを使用すると、VPC ネットワークで使用可能なすべてのルートタイプ(インポートされたピアリング サブネット、ピアリング静的ルート、ピアリング動的ルートなど)を確認できます。

  1. Google Cloud コンソールで、[ルート] ページに移動します。

    [ルート] に移動

  2. [適用されているルート] タブで、次の操作を行います。

    • VPC ネットワークを選択します。
    • リージョンを選択します。
  3. [表示] をクリックします。

  4. [フィルタ] テキスト フィールドをクリックして、次の操作を行います。

    • [プロパティ] メニューから [タイプ] を選択します。
    • [] メニューから次のいずれかを選択します。
      • ピアリング サブネット: ピア VPC ネットワークからサブネット ルートを確認します。
      • ピアリング静的: ピア VPC ネットワークからインポートされた静的ルートを確認します。
      • ピアリング ダイナミック: ピア VPC ネットワークからインポートされた動的ルートを確認します。
  5. 必要に応じて、[Show suppressed routes] をクリックして、抑制されたルートを表示します。[ステータス] 列のアイコンにポインタを合わせると、ルートの抑制理由が表示されます。理由には、説明のあるルーティング順序ドキュメントへのリンクが含まれます。

gcloud

次の Google Cloud CLI コマンドを使用して、以下の操作を行います。

  • VPC ネットワークからピア VPC ネットワークに送信されたルート エクスポートを一覧取得します。
  • VPC ネットワークのルート インポート候補を一覧取得します。
gcloud compute networks peerings list-routes PEERING_NAME \
    --network=NETWORK \
    --region=REGION \
    --direction=DIRECTION

次のように置き換えます。

  • PEERING_NAME: 既存のピアリング接続の名前。
  • NETWORK: ピアリングされているプロジェクト内のネットワークの名前。
  • REGION: すべての動的ルートの一覧を取得するリージョン。サブネット ルートと静的ルートはグローバルであるため、すべてのリージョンに表示されます。
  • DIRECTION: インポートされたルート(incoming)とエクスポートされたルート(outgoing)のどちらの一覧を取得するかを指定します。

VPC ネットワークのピアリング接続を削除する

ピアリング構成の削除は、自分自身で行うこともピア VPC ネットワークのネットワーク管理者が行うこともできます。ピアリング構成を削除すると、相手側のネットワークでピアリング接続INACTIVE に切り替わり、ネットワーク間で共有されていたすべてのルートが削除されます。

コンソール

  1. Google Cloud コンソールの [VPC ネットワーク ピアリング] ページに移動します。
    [VPC ネットワーク ピアリング] に移動
  2. 削除するピアリングの横にあるチェックボックスをオンにします。
  3. [削除] をクリックします。

gcloud

gcloud compute networks peerings delete PEERING_NAME \
    --network=NETWORK

次のように置き換えます。

  • PEERING_NAME: 削除するピアリング接続の名前。
  • NETWORK: ピアリングされているプロジェクト内のネットワークの名前。

トラブルシューティング

以降のセクションでは、VPC ネットワーク ピアリングのトラブルシューティング方法について説明します。

ピア VM に到達できない

ピアリング接続が ACTIVE になった後、ピアリングされたネットワーク間ですべてのトラフィック フローが設定されるまでに 1 分ほどかかることがあります。所要時間は、ピアリングしているネットワークのサイズによって異なります。ピアリング接続を最近設定した場合は、1 分ほど待ってからもう一度試してください。また、ピア VPC ネットワークのサブネット CIDR へのアクセスおよび CIDR からのアクセスをブロックするファイアウォール ルールがないことを確認してください。

カスタムルートが見つからない

このセクションでは、カスタムルートが見つからない場合のトラブルシューティング方法について説明します。

ピアリング接続の状態を確認する

ピアリング接続の状態を確認する手順は次のとおりです。

  1. ピアリング接続を一覧取得します
  2. トラブルシューティングするピアリング接続を特定し、ピアリングの状態を確認します。
    1. 状態が ACTIVE の場合は、次のセクションの手順に沿って操作します。
    2. ピアリング状態が INACTIVE の場合、他のネットワークのネットワーク管理者が VPC ネットワークにピアリング構成を作成する必要があります。

ACTIVE 接続のトラブルシューティング

ACTIVE ピアリング接続でカスタムルートが見つからない場合にトラブルシューティングを行うには:

  1. VPC ネットワークのピアリング ルートを一覧取得します。[適用されているルート] タブで、次の操作を行います。

    1. 動的ルートがプログラムされるリージョンは、カスタムルートをエクスポートする VPC ネットワークの動的ルーティング モードによって異なります。詳細については、動的ルーティング モードの影響をご覧ください。グローバル動的ルーティング モードでは、ネクストホップのリージョンと一致しないリージョンに、最も高いランクの動的ルートのみがプログラムされます。

    2. [Show suppressed routes] 切り替えボタンをクリックしてオンの位置に切り替え、ルートを確認します。ルートの抑制の理由を表示するには、[ステータス] 列のアイコンにカーソルを合わせます。Google Cloud では、VPC ネットワーク ピアリングを使用してルートをインポートする VPC ネットワークで、リージョンごとにルート競合を解決します。

    3. VPC ネットワークがピアリング グループ割り当てあたりのリージョンごとの動的ルートの上限に達したことを示す警告を確認します。VPC ネットワークがこの割り当ての上限に達している場合、1 つ以上のピアリング動的ルートがプログラムされていません。どのピアリング動的ルートがプログラムされていないかを正確に示すことはできないため、ピアリング グループごとのリージョンあたりの動的ルートの割り当て上限の増加をリクエストします。

  2. 想定したルートがまだ表示されない場合は、次の操作を行います。

    1. ピアリング構成を確認し、必要に応じてピアリング構成を更新して、カスタムルートをインポートします。

    2. ルートが、VPC ネットワーク ピアリングを使用して交換できない次のルートタイプのいずれかではないことを確認します。

      • ピアリングされた VPC ネットワーク内のピアリング サブネット、ピアリング静的ルート、ピアリング動的ルートは、他のピア ネットワークから受信されたもので、VPC ネットワーク ピアリングを使用して VPC ネットワークと交換することはできません。

      • デフォルト インターネット ゲートウェイのネクストホップを使用する静的ルート、およびネットワーク タグを持つ静的ルートは、VPC ネットワーク ピアリングを使用して交換できません

      詳細については、ルート交換オプションをご覧ください。

    3. ピアリングされた VPC ネットワークのネットワーク管理者に、次のことを依頼します。

      1. VPC ネットワーク内のルートを一覧取得して、想定されるルートを探します。

      2. ピアリング構成を確認して、必要に応じてピアリング構成を更新し、カスタムルートをエクスポートするようにします。

ピア ネットワークを宛先とするトラフィックがドロップされる

接続テストを使用すると、ピア ネットワークを宛先とするトラフィックがドロップされる理由を特定できます。カスタムルートを使用してトラフィックを送信する必要がある場合は、カスタムルートが見つからないをご覧ください。

トラフィックが想定外のネクストホップに送信される

接続テストを使用すると、トラフィックが想定外のネクストホップに送信される理由を特定できます。カスタムルートを使用してトラフィックを送信する必要がある場合は、カスタムルートが見つからないをご覧ください。

特定の VPC ネットワークとピアリングできない

特定の VPC ネットワークでピアリング構成を作成できない場合は、組織のポリシーによって、ネットワークでピアリングできる VPC ネットワークが制限されていることもあります。組織ポリシーで、許可されたネットワークのリストに、ロードバランサを作成するピアを追加するか、組織管理者にお問い合わせください。詳細については、constraints/compute.restrictVpcPeering の制約をご覧ください。

IPv6 ルートが交換されない

まず、ピアリング接続とピアリングされた VPC ネットワークのピアリング接続の両方で、スタックタイプが IPV4_IPV6 に設定されていることを確認します。必要であれば、次の操作を行います。

  • ピアリング接続を更新して、スタックタイプを IPV4_IPV6 に設定します。
  • ピアリング接続を更新してスタックタイプを IPV4_IPV6 に設定するよう、ピアリングされた VPC ネットワークのネットワーク管理者に依頼します。

両方のピアリング接続でスタックタイプが IPV4_IPV6 に設定されると、IPv6 サブネット ルート(内部と外部の両方)が交換されます。IPv6 サブネット ルートは、すべての Google Cloud VPC ネットワーク内で一意です。

IPv6 カスタムルートを交換するには:

  • ピアリング接続を更新して、カスタムルートのインポートとエクスポートを行います。
  • ピアリング接続を更新してカスタムルートのインポートとエクスポートを行うように、ピアリングされた VPC ネットワークのネットワーク管理者に依頼します。

次のステップ