VPC ネットワーク ピアリングの使用

Google Cloud Platform(GCP)Virtual Private Cloud(VPC)ネットワーク ピアリングを利用すると、同じプロジェクトまたは同じ組織に属しているかどうかにかかわらず、2 つの VPC ネットワーク間で RFC1918 の非公開接続を行うことができます。

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

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

同じ組織ノード内の 1 つのネットワークで、同じプロジェクトまたは異なるプロジェクトの VPC ネットワークからアクセスされるサービスをホスティングする場合について考えてみましょう。

また、別の組織が提供するサービスへのアクセスが必要になる場合もあります。たとえばサードパーティのサービスを利用する場合などです。

プロジェクト ID は GCP 全体で一意であるため、ピアリングを設定するときに組織を指定する必要はありません。GCP はプロジェクト ID に基づいて組織を認識します。

VPC ネットワーク ピアリング セッションを設定する

たとえば、organization-A が project-A の network-A と project-B の network-B の間で VPC ネットワーク ピアリングを確立する必要があるとします。VPC ネットワーク ピアリングを正常に確立するには、network-A と network-B の管理者がそれぞれのネットワークでピアリングを設定する必要があります。

ステップ 1: network-A を network-B とピアリングする

project-A で適切な IAM 権限を持つユーザーが network-B とピアリングするように network-A を構成します。たとえば、roles/editor 役割か roles/compute.networkAdmin 役割を持つユーザーがピアリングを構成できます。

network-A から network-B へのピアリング(クリックで拡大)
network-A から network-B へのピアリング(クリックで拡大)

始める前に、ピアリングするネットワークのプロジェクト ID とネットワーク名が必要です。

Console

  1. Google Cloud Platform Console の [VPC ネットワーク ピアリング] ページに移動します。
    [VPC ネットワーク ピアリング] ページに移動
  2. [接続の作成] をクリックします。
  3. [続行] をクリックします。
  4. 接続の自分側の [名前] に「peer-ab」と入力します。
  5. [VPC ネットワーク] で、ピアリングするネットワークを選択します。
  6. 同じプロジェクト内でピアリングする場合を除き、[VPC ネットワーク ピアリング] ラジオボタンを [In another project] に設定します。
  7. 他のプロジェクトのプロジェクト ID を指定します。
  8. 他のネットワークの VPC ネットワーク名を指定します。
  9. [作成] をクリックします。

gcloud

gcloud compute networks peerings create peer-ab \
    --network network-A \
    --peer-project project-B \
    --peer-network network-B \
    --auto-create-routes

この段階では project-B の network-B に一致する設定がないため、ピアリングの状態は INACTIVE のままです。

Console

  1. Google Cloud Platform Console の [VPC ネットワーク ピアリング] ページに移動します。
    [VPC ネットワーク ピアリング] ページに移動
  2. ステータスに [Waiting for peer network to connect] と表示されます。

gcloud

gcloud compute networks peerings list --network network-A
NAME      NETWORK   PEER_PROJECT PEER_NETWORK AUTO_CREATE_ROUTES STATE    STATE_DETAILS
peer-ab   network-A project-B    network-B    True               INACTIVE The peering network has not been configured.

ステップ 2: network-B を network-A とピアリングする

ピアリングを両側で ACTIVE 状態にするには、project-B の NetworkAdmin または適切な IAM 権限を持つユーザーが network-B から network-A に同じ構成を行う必要があります。

network-B から network-A へのピアリング(クリックで拡大)
network-A から network-B へのピアリング(クリックで拡大)

Console

  1. Google Cloud Platform Console の [VPC ネットワーク ピアリング] ページに移動します。
    [VPC ネットワーク ピアリング] ページに移動
  2. [接続の作成] をクリックします。
  3. [続行] をクリックします。
  4. 接続の自分側の [名前] に「peer-ba」と入力します。
  5. [VPC ネットワーク] で、ピアリングするネットワークを選択します。
  6. 同じプロジェクト内でピアリングする場合を除き、[VPC ネットワーク ピアリング] ラジオボタンを [In another project] に設定します。
  7. 他のプロジェクトのプロジェクト ID を指定します。
  8. 他のネットワークの VPC ネットワーク名を指定します。
  9. [作成] をクリックします。

gcloud

gcloud compute networks peerings create peer-ba \
     --network network-B \
     --peer-project project-A \
     --peer-network network-A \
     --auto-create-routes

ステップ 3: VPC ネットワーク ピアリングが ACTIVE 状態になり、ルートが交換される

ピアリングが ACTIVE 状態になるとすぐに、次のトラフィック フローが設定されます。

  • ピアリングされたネットワークの VM インスタンス間: フルメッシュ接続
  • 片方のネットワークの VM インスタンスから、ピアリングされたネットワークの内部負荷分散エンドポイント
ACTIVE 状態のピアリング(クリックで拡大)
ACTIVE 状態のピアリング(クリックで拡大)

Console

  1. Google Cloud Platform Console の [VPC ネットワーク ピアリング] ページに移動します。
    [VPC ネットワーク ピアリング] ページに移動
  2. ステータスに「Connected」と表示されます。
  3. 他のプロジェクトで [VPC ネットワーク ピアリング] ページに移動し、そこでもステータスに「Connected」と表示されていることを確認します。

gcloud

gcloud compute networks peerings list --network network-A
NAME     NETWORK     PEER_PROJECT PEER_NETWORK AUTO_CREATE_ROUTES STATE    STATE_DETAILS
peer-ab  network-A   project-B   network-B    True                ACTIVE   The peering became ACTIVE at 2016-06-08T15:10:14.111-07:00.
gcloud compute networks peerings list --network network-B
NAME     NETWORK     PEER_PROJECT PEER_NETWORK AUTO_CREATE_ROUTES STATE    STATE_DETAILS
peer-ba  network-B   project-A    network-A    True               ACTIVE   The peering became ACTIVE at 2016-06-08T15:10:14.111-07:00.

VPC ネットワーク ピア間で、ピアリングされたネットワークの CIDR 接頭辞へのルートが公開されます。これらのルートは、アクティブなピアリングに生成される暗黙的なルートです。対応するルートリソースはありません。次のコマンドは、project-A のすべての VPC ネットワークのルートを一覧表示します。

Console

  1. Google Cloud Platform Console で [ルート] ページに移動します。
    [ルート] ページに移動

gcloud

gcloud compute routes list --project project-A
NAME                              NETWORK    DEST_RANGE     NEXT_HOP                  PRIORITY
default-route-2a865a00fa31d5df    network-A  0.0.0.0/0      default-internet-gateway  1000
default-route-8af4732e693eae27    network-A  10.0.0.0/16                              1000
peering-route-4732ee69e3ecab41    network-A  10.8.0.0/16    peer-ab                   1000

VPC ネットワーク ピアリング セッションを削除する

ピアリングは、どちらの側でも削除できます。片側で削除されると、ピアリングは再度 INACTIVE 状態になり、ピア ネットワークに対するすべてのルートが削除されます。この例では、network-A からピアリング構成を削除します。

Console

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

gcloud

gcloud compute networks peerings delete peer-ab --network network-A

ネットワーク ピアリング セッションの片側が削除されると、もう一方でもピアリングが INACTIVE 状態になります。

組織間で VPC ネットワークをピアリングする

ここでは、project-A/network-A の VM インスタンスが 2 つの異なる外部組織(SaaS1 と SaaS2)のサービスにアクセスする場合について考えてみます。RFC1918 空間経由でアクセスするために、network-A はサービスがホスティングされている SaaS1 の project-B/network-B と SaaS2 の project-C/network-C にピアリングする必要があります。

組織間のピアリング(クリックして拡大)
組織間のピアリング(クリックして拡大)

この設定を作成するには、2 つの異なるピアリング セッションを作成するだけです。

制限事項

ピアリングされた VPN ネットワーク間でサブネット IP 範囲の重複

ピアリングされた VPC ネットワークで、他のサブネットと重複するサブネット IP 範囲は設定できません。

VPC ネットワーク ピアリング設定時に実行されるチェック

ピアリングの設定時に、GCP は 2 つの VPC ネットワーク間またはピアリングされたネットワークでサブネットの IP 範囲が重複しているかどうか確認します。重複がある場合、ピアリングは確立しません。VM インスタンス間でフルメッシュ接続が構成されるため、ピアリングされた VPC ネットワークのサブネットで IP 範囲が重複していると、ルーティングで問題が発生します。

2 つのピアでのサブネット IP 範囲の重複(クリックで拡大)
2 つのピアでのサブネット IP 範囲の重複(クリックで拡大)

特定の VPC ネットワークのピア間でサブネット IP 範囲が重複していると、ルーティングで競合が発生します。たとえば、VPC ネットワーク N1 が VPC ネットワーク N2 とピアリングしているときに、VPC ネットワーク N3 が N2 とのピアリングを試みたとします。N3 のサブネット Subnet_5 がネットワーク N1 の Subnet_1 と IP 範囲が重複しているため、このピアリングは確立しません。

3 つのピアでのサブネット IP 範囲の重複(クリックで拡大)
3 つのピアでのサブネット IP 範囲の重複(クリックで拡大)

VPC ネットワーク ピアリングのサブネット作成時に実行されるチェック

VPC サブネットを作成したり、サブネット IP 範囲を拡大したりすると、GCP は、新しいサブネットの IP 範囲が同じ VPC ネットワークまたは直接ピアリングされている VPC ネットワーク内のサブネットと重複しているかどうか確認します。重複する場合、作成または拡大は失敗します。下の図で、新しいサブネット subnet_3 ネットワーク N2 に作成するときに、直接ピアリングされたネットワーク N1 の定義と重複する IP 範囲は使用できません。

サブネット作成時のチェック(クリックで拡大)
サブネット作成時のチェック(クリックで拡大)

また、GCP は、ピアリングされたネットワークを持つ VPC ネットワーク間で重複するサブネット IP 範囲が存在するかどうか確認します。重複する場合、作成または拡大は失敗します。下の図で、新しいサブネット subnet_5 をネットワーク N3 に作成する場合、ネットワーク N1 はすでに N2 とピアリングされているため、直接ピアリングされるネットワーク N2 のサブネット IP 範囲だけでなく、ネットワーク N1 の定義に重複する IP 範囲も使用できません。

3 つのピアが存在する場合のサブネット作成時のチェック(クリックで拡大)
3 つのピアが存在する場合のサブネット作成時のチェック(クリックで拡大)

レガシー ネットワークは VPC ネットワーク ピアリングでサポートされていない

レガシー ネットワークにはサブネットがありません。レガシー ネットワークは他のネットワークとピアリングできないため、VPC ネットワーク ピアリングでサポートされていません。

ピアリングされたネットワークから VPN に到達できない

ピアリングされたネットワークからネットワーク内の VPN に到達できません。

プロジェクト間に Compute Engine DNS が存在しない

ネットワークで作成した Compute Engine 内部 DNS 名で、ピアリングされたネットワークにアクセスすることはできません。ピアリングされたネットワーク内の VM インスタンスに達するには、VM の IP アドレスを使用する必要があります。

ユーザーが設定したルートはピアリングされたネットワーク間で伝播されない

ユーザーが設定したルートは、ピアリングされたネットワーク間で伝播されません。ネットワーク内に VPC ネットワーク内を宛先とするルートを構成しても、ピアリングされたネットワークから宛先に接続することはできません。

ピアリングされたネットワーク間でタグとサービス アカウントを使用できない

ピアリングされたネットワークのタグまたはサービス アカウントを他のピアリングされたネットワーク内で使用することはできません。

GKE と VPC ネットワーク ピアリング

IP エイリアスで使用される場合、GKE との VPC ネットワーク ピアリングがサポートされます。Kubernetes サービス(内部負荷分散を介して公開されている場合)とポッド IP には、VPC ネットワークから到達できます。

制限

ピアリング数の制限

1 つのネットワークには、直接ピアリングされたネットワークを合計で最大 25 個設定できます。この合計には、アクティブと非アクティブの両方のピアリングが含まれます。

VPC ネットワーク ピアリングの VM インスタンス数の制限

1 つの VPC ネットワークには、最大で 15,500 個のインスタンスを作成できます。この合計には、このネットワークだけでなく、直接ピアリングされているすべての VPC ネットワークが含まれます。

各ネットワークには「ピアリング インスタンスの上限」があります。これは、ネットワーク内に存在できるインスタンスと、直接ピアリングされているすべてのネットワークの組み合せ内に存在できるインスタンスの数に対する制限です。

VPC ネットワーク ピアリングの内部負荷分散転送ルールの制限

ネットワークごとの上限は 50 です。ネットワークの転送ルールと、そのネットワークに直接ピアリングされているすべてのネットワークの転送ルールの合計がこの上限を超えることはできません。

各ネットワークには、「ピアリング内部負荷分散転送ルールの上限」があります。これは、ネットワーク内に存在できる内部負荷分散転送ルールと、直接ピアリングされているすべてのネットワークの組み合わせ内に存在できる内部負荷分散転送ルールの数に対する制限です。

トラブルシューティング

Q: ピアリング接続が設定されていますが、ピア VM または内部ロードバランサに到達できません。

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

Q: ピアリング接続を設定しようとすると、別のピアリング オペレーションが進行中であるというエラーが表示されます。

ルーティング更新などとの競合を避けるため、GCP ではピアリングされたネットワーク間のピアリング関連アクティビティが一度に 1 つしか許可されません。たとえば、あるネットワークとのピアリングを設定し、すぐに別のネットワークとのピアリングを設定しようとすると、最初のピアリングのすべてのタスクが完了していない可能性があります。すべてのタスクが完了するまでに最大で 1 分かかることがあります。または、既存のネットワーク ピアが、内部ロードバランサまたは VM を追加している可能性があります。どちらもネットワーク間の到達可能性に影響します。ほとんどの場合、1~2 分待ってからピアリング オペレーションを再試行してください。

Q: ピアリングが ACTIVE 状態の VPC ネットワークを削除しようとすると、エラーが発生します。

ピアリング接続の自分側を削除してから再試行してください。

Q: ピアリングしようとしている VPC ネットワークに重複するサブネット CIDR があります。このネットワークにピアリングできるようにする方法がありますか。

いいえ。サブネット CIDR が重複しないように VPC ネットワークを変更する必要があります。

Q: 別のネットワークとピアリングされている VPC ネットワークがあります。自分の VPC ネットワークにサブネットを作成したいと考えています。このサブネットを、ピア VPC ネットワークと重複しないように作成するにはどうすればよいですか。

ネクストホップとしてピア VPC ネットワークを指しているピアリング ルートを調べます。これらのルートは、ピア VPC ネットワーク内のサブネット CIDR のリストを表します。既存のサブネット CIDR、ピア VPC ネットワークのサブネット CIDR と重複しない CIDR を選択してください。

Q: 別の VPC ネットワークとピアリングされている VPC ネットワークがあります。自分の VPC ネットワークにサブネットを作成したいと考えています。このサブネットを、自分のピアのピア VPC ネットワークと重複しないように作成するにはどうすればよいですか。

現時点では、これを見つけるのに役立つコマンドはありません。ピアリングされたネットワークの管理者に、そのネットワークにすでに存在するサブネット ルートを確認するよう依頼してください。

Q: VPC ピアリングにセキュリティやプライバシーの問題はありますか。

ピアリングが設定されると、各 VPC ネットワークは他のネットワークのサブネット範囲を認識します。さらに、各ピア VPC ネットワークは、ファイアウォール ルールがトラフィックを遮断するように設定されている場合を除いて、他のネットワークのすべての VM のトラフィックを送受信できます。それ以上は、ピアリングされたネットワーク間に相互視認性はありません。

Q: 自分のネットワークに対して他の VPC ネットワークから VPC ピアリングがリクエストされているかどうか確認できますか。

いいえ。VPC ピアリングは双方向ベースで機能します。ピアリングは自分側から設定し、ピア側からピアリングを設定します。自分が設定した VPC ピアリング リクエストのみ確認できます。

次のステップ

  • VPC ルーティングの詳細について、ルートの概要を参照する。
このページは役立ちましたか?評価をお願いいたします。