NCC (Network Connectivity Center)のVPCスポーク機能で異なるプロジェクトのVPC同士を接続してみた

NCC (Network Connectivity Center)のVPCスポーク機能で異なるプロジェクトのVPC同士を接続してみた

2025.11.05

はじめに

こんにちは。
クラウド事業本部コンサルティング部の渡邉です。

Google Cloudのネットワーク機能の一つである、Network Connectivity Center (NCC)についてご存知でしょうか?

複数のVPCネットワークを接続する必要がある場合、VPCピアリングを使って1対1で接続していくと、ネットワークの規模が大きくなるにつれて管理が煩雑になります。例えば、5つのVPCをフルメッシュで接続する場合、10個ものピアリング接続を管理する必要があります。

Network Connectivity Center (NCC) は、この課題を解決するGoogle Cloudのネットワーク接続オーケストレーションサービスです。中央の「Hub(ハブ)」に複数の「Spoke(スポーク)」を接続することで、シンプルかつスケーラブルなネットワーク管理を実現します。

今回は、Network Connectivity Center (NCC)のVPCスポーク機能を利用して、異なるプロジェクトのVPC同士を接続してみたいと思います。

Network Connectivity Center (NCC)とは

Network Connectivity Center (NCC)は、Hub-and-Spoke(ハブ・アンド・スポーク) モデルを採用したネットワーク接続管理サービスです。
2025年11月5日時点では、スポークの対象として、以下がサポートされています。

  • Virtual Private Cloud(VPC)スポーク
  • プロデューサーVPCスポーク
  • NCC Gatewayスポーク
  • ハイブリッド スポーク
    • HA VPN トンネル
    • Cloud Interconnect VLAN アタッチメント
    • ルーター アプライアンス VM

Google Cloud環境のVPC間接続だけではなく、オンプレミスや他クラウドプロバイダーネットワークとも接続することができます。

なぜNetwork Connectivity Center (NCC)が必要なのか?

従来のVPCピアリングは、メッシュで接続するVPCの数が多くなると必要なピアリング数も増大してしまい、管理工数が増加してしまう課題がありました。
Hub-and-Spoke(ハブ・アンド・スポーク)モデルでピアリングしたとしても、1つのVPCで利用できるVPCネットワークピアリング数のクォータ制限(25)に引っかかってしまいます。

VPCの数 必要なピアリング数 管理工数
3個 3個 普通
5個 10個
10個 45個 増大
20個 190個 増大

Network Connectivity Center (NCC)を利用することで、上記の課題を解消することができます。

Network Connectivity Center (NCC)の利点

  1. シンプルな管理: 各VPCはHubに1回接続するだけ
  2. スケーラビリティ: 最大250個のアクティブVPC Spokeを1つのHubに接続可能
  3. 柔軟なトポロジー: メッシュ、スター、ハイブリッド型を選択可能
  4. 自動ルート配布: サブネットルートが自動的に交換される

Network Connectivity Center (NCC)のアーキテクチャ

Network Connectivity Center (NCC)にはいくつかの大切なコンポーネントが存在します。

1. Hub(ハブ)

特徴

  • グローバルリソース(リージョンを超えて動作)
  • 1つのプロジェクトに複数のHubを作成可能
  • ルート情報の中央管理と配布を担当

主な役割

  • Spokeからルート情報を学習
  • 他のSpokeへルート情報を配布
  • トポロジーを管理(メッシュ、スター、ハイブリッド)

2. Spoke(スポーク)

NCCは複数のSpokeタイプをサポートしています

VPC Spoke

  • 複数のVPCネットワークをHub経由で接続
  • IPv4とIPv6のサブネットルートをサポート
  • 最も低レイテンシ、最高スループット
  • VM間通信と同等のパフォーマンス

その他のSpokeタイプ

  • Hybrid Spoke: オンプレミスや他クラウドとの接続
    • HA VPN トンネル
    • Cloud Interconnect VLAN アタッチメント
    • Router Appliance インスタンス
  • NCC Gateway Spoke: サードパーティSSE(Security Service Edge)との統合
  • Producer VPC Spoke: 他プロジェクトからのサービス公開

VPC Spokeの詳細

ルート交換の仕組み

VPC Spokeを使用すると、接続されたVPCネットワーク間でサブネットルートが自動的に交換されます。

例: 3つのVPCを接続する場合

ncc-route

ルート交換後

  • spoke-vpcA は spoke-vpcB (10.1.1.0/24, 10.1.2.0/24) と spoke-vpcC (10.2.1.0/24, 10.2.2.0/24)のルートを学習
  • spoke-vpcB は spoke-vpcA (10.0.1.0/24, 10.0.2.0/24) と spoke-vpcC (10.2.1.0/24, 10.2.2.0/24)のルートを学習
  • spoke-vpcC は spoke-vpcA (10.0.1.0/24, 10.0.2.0/24) と spoke-vpcB (10.1.1.0/24, 10.1.2.0/24)のルートを学習

Export Filter(エクスポートフィルター)

特定のサブネットのみを広告したい場合、Export Filterを利用して制御することができます。

使用例

# 特定のIP範囲のみを広告
--include-export-ranges=10.0.1.0/24,10.0.2.0/24

# 特定のIP範囲を除外
--exclude-export-ranges=10.0.99.0/24

# すべてのプライベートIPv4範囲を広告
--include-export-ranges=ALL_PRIVATE_IPV4_RANGES

トポロジーの種類

1. メッシュトポロジ(デフォルト)

メッシュトポロジでは、すべてのSpoke VPCを相互に接続することができます。

ncc-mesh-topology

Hubの作成時にトポロジを明示的に指定しない場合は、デフォルトでメッシュトポロジになります。
メッシュトポロジは以下のスポークタイプをサポートしています。

  • VPCスポーク
  • プロデューサーVPCスポーク
  • ハイブリッドスポーク

用途:

  • すべてのVPC間で通信が必要な場合
  • 部門横断のリソース共有

2. スタートポロジ

スタートポロジでは、Center Group同士とEdge Groupは通信することができますが、Edge Group同士は通信することができません。

ncc-star-topology

スタートポロジも以下のスポークタイプをサポートしています。

  • VPCスポーク
  • プロデューサーVPCスポーク
  • ハイブリッドスポーク

用途:

  • ネットワークセグメンテーションの独立
  • セキュリティ要件が厳しい環境

3. ハイブリッド検査トポロジー (Preview)

ネットワークアプライアンス(ファイアウォール、IDS/IPS)を介した通信を強制します。
ハイブリッド検査トポロジは、NCC Gatewayでのみサポートされます。

用途:

  • サードパーティセキュリティ製品との統合
  • すべてのVPC間トラフィックの検査

やってみた

Step0. アーキテクチャ

今回検証するアーキテクチャ図になります。
Network Connectivity Centerのメッシュトポロジ(VPCスポーク)を利用したVMインスタンス同士の接続確認を行っていきます。

ncc-architecture

Step1. APIの有効化

各プロジェクトで必要なAPI (compute.googleapis.comnetworkconnectivity.googleapis.com)を有効化していきます。
APIの有効化は各プロジェクトのCloud Shellからgcloudコマンドを使って実行していきます。

# 必要なAPIを有効化
gcloud services enable networkconnectivity.googleapis.com
gcloud services enable compute.googleapis.com

Step2. VPCネットワークの作成

Spokeプロジェクトで使用するVPCネットワークのリソースを作成します。

Spoke VPC 01 ネットワークの作成

# Spoke VPC 01を作成
gcloud compute networks create spoke-vpc01 \
    --subnet-mode=custom \
    --bgp-routing-mode=regional

# Spoke VPC 01のサブネットを作成
gcloud compute networks subnets create spoke-vpc01-tky-subnet \
    --network=spoke-vpc01 \
    --range=192.168.0.0/24 \
    --region=asia-northeast1

Spoke VPC 02 ネットワークの作成

# Spoke VPC 02を作成
gcloud compute networks create spoke-vpc02 \
    --subnet-mode=custom \
    --bgp-routing-mode=regional

# Spoke VPC 02のサブネットを作成
gcloud compute networks subnets create spoke-vpc02-tky-subnet \
    --network=spoke-vpc02 \
    --range=192.168.1.0/24 \
    --region=asia-northeast1

Step3. ファイアウォールルールの作成

Spokeプロジェクト同士の通信で使用するファイアウォールルールを作成します。
また、Compute Engineに安全にSSH接続するためにIAP用のファイアウォールルールも作成します。

Spoke VPC 01 ファイアウォールルールの作成

# Spoke VPC 01 のファイアウォールルール
gcloud compute firewall-rules create spoke-vpc01-allow-internal \
    --network=spoke-vpc01 \
    --allow=tcp,udp,icmp \
    --priority=1000 \
    --source-ranges=192.168.0.0/24,192.168.1.0/24

gcloud compute firewall-rules create spoke-vpc01-allow-ssh-ingress-from-iap \
    --network=spoke-vpc01 \
    --direction=INGRESS \
    --action=allow \
    --rules=tcp:22 \
    --priority=1001 \
    --source-ranges=35.235.240.0/20

Spoke VPC 02 ファイアウォールルールの作成

# Spoke VPC 02 のファイアウォールルール
gcloud compute firewall-rules create spoke-vpc02-allow-internal \
    --network=spoke-vpc02 \
    --allow=tcp,udp,icmp \
    --priority=1000 \
    --source-ranges=192.168.0.0/24,192.168.1.0/24

gcloud compute firewall-rules create spoke-vpc02-allow-ssh-ingress-from-iap \
    --network=spoke-vpc02 \
    --direction=INGRESS \
    --action=allow \
    --rules=tcp:22 \
    --priority=1001 \
    --source-ranges=35.235.240.0/20

Step4. Network Connectivity Center Hubの作成

いよいよNetwork Connectivity Centerの作成作業です。
まず、Hubプロジェクト上に、Network Connectivity Center Hubを作成していきます。

gcloud network-connectivity hubs create ncc-test-hub \
    --project=${GOOGLE_CLOUD_PROJECT} \
    --description="NCC Test Hub" \
    --preset-topology="mesh"

実行すると数秒後にNetwork Connectivity Center Hubが作成されます。

test-ncc-01

ハブの作成は以下のコマンドで確認することができます。

gcloud network-connectivity hubs list

NAME: ncc-test-hub
DESCRIPTION: NCC Test Hub
gcloud network-connectivity hubs describe ncc-test-hub

createTime: '2025-10-10T04:38:29.822555139Z'
description: NCC Test Hub
exportPsc: false
name: projects/PROJECT_ID/locations/global/hubs/ncc-test-hub
policyMode: PRESET
presetTopology: MESH
routeTables:
- projects/PROJECT_ID/locations/global/hubs/ncc-test-hub/routeTables/default
state: ACTIVE
uniqueId: 37cf9a2f-e16a-4846-ba5f-83aab6024d9e
updateTime: '2025-10-10T08:34:34.227447353Z'

Step5. VPC Spokeの作成とHub への接続

次に、作成したNetwork Connectivity Center HubにSpoke VPCを接続します。

Spoke VPC 01 を接続を提案

まずは、Spoke VPC 01のHubへの接続を提案します。
Spoke VPC 01が存在するプロジェクトのCloud Shellで以下のコマンドを実行します。

# Spoke VPC 01 のSpokeをHubへ提案
gcloud network-connectivity spokes linked-vpc-network create spoke-vpc01 \
    --hub=projects/PROJECT_ID/locations/global/hubs/ncc-test-hub \
    --vpc-network=projects/$GOOGLE_CLOUD_PROJECT/global/networks/spoke-vpc01 \
    --global

# Spoke VPC 01 のSpokeをHubへ提案中の状態(PENDING_REVIEW)
Create request issued for: [spoke-vpc01]
Waiting for operation [projects/PROJECT_ID/locations/global/operations/operation-1762303377313-642ce3aca8d18-66971793-c32176c6] to complete...done.                               
Created spoke [spoke-vpc01].
createTime: '2025-11-05T00:42:59.353063898Z'
etag: '2'
group: projects/PROJECT_ID/locations/global/hubs/ncc-test-hub/groups/default
hub: projects/PROJECT_ID/locations/global/hubs/ncc-test-hub
linkedVpcNetwork:
  uri: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/spoke-vpc01
name: projects/PROJECT_ID/locations/global/spokes/spoke-vpc01
reasons:
- code: PENDING_REVIEW
  message: Spoke is Pending Review
spokeType: VPC_NETWORK
state: INACTIVE
uniqueId: c13872cb-b9e8-4d8a-85e9-faf0d477944c
updateTime: '2025-11-05T00:43:13.562693712Z

Spoke VPC 01の状況を確認するためには、Cloud Shellで以下のコマンドを実行します。
この状態では、Hub管理者がSpokeの提案を承認するまで、Spokeは完全に機能しません。

# 確認
gcloud network-connectivity spokes describe spoke-vpc01 --global

createTime: '2025-11-05T00:42:59.353063898Z'
etag: '2'
group: projects/PROJECT_ID/locations/global/hubs/ncc-test-hub/groups/default
hub: projects/PROJECT_ID/locations/global/hubs/ncc-test-hub
linkedVpcNetwork:
  uri: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/spoke-vpc01
name: projects/PROJECT_ID/locations/global/spokes/spoke-vpc01
reasons:
- code: PENDING_REVIEW
  message: Spoke is Pending Review
spokeType: VPC_NETWORK
state: INACTIVE
uniqueId: c13872cb-b9e8-4d8a-85e9-faf0d477944c
updateTime: '2025-11-05T00:43:13.562693712Z'

コンソール上では、スポークのステータスが【無効、確認待ち】の状態になっています。
test-ncc-02

Spoke VPC 02 を接続

同様に、Spoke VPC 02のHubへの接続を提案します。
Spoke VPC 02が存在するプロジェクトのCloud Shellで以下のコマンドを実行します。

# Spoke VPC 02 のSpokeをHubへ提案
gcloud network-connectivity spokes linked-vpc-network create spoke-vpc02 \
    --hub=projects/PROJECT_ID/locations/global/hubs/ncc-test-hub \
    --vpc-network=projects/$GOOGLE_CLOUD_PROJECT/global/networks/spoke-vpc02 \
    --global

# Spoke VPC 02 のSpokeをHubへ提案中の状態(PENDING_REVIEW)
Create request issued for: [spoke-vpc02]
Waiting for operation [projects/PROJECT_ID/locations/global/operations/operation-1762303924524-642ce5b68556e-53de2d5d-64ddca27] to complete...done.                               
Created spoke [spoke-vpc02].
createTime: '2025-11-05T00:52:06.246670699Z'
etag: '2'
group: projects/PROJECT_ID/locations/global/hubs/ncc-test-hub/groups/default
hub: projects/PROJECT_ID/locations/global/hubs/ncc-test-hub
linkedVpcNetwork:
  uri: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/spoke-vpc02
name: projects/PROJECT_ID/locations/global/spokes/spoke-vpc02
reasons:
- code: PENDING_REVIEW
  message: Spoke is Pending Review
spokeType: VPC_NETWORK
state: INACTIVE
uniqueId: 3ec4a8c2-0073-41c6-a2cf-3b334db63adb
updateTime: '2025-11-05T00:52:17.428395211Z'

Spoke VPC 02の状況を確認するためには、Cloud Shellで以下のコマンドを実行します。
同様にこの状態では、Hub管理者がSpokeの提案を承認するまで、Spokeは完全に機能しません。

gcloud network-connectivity spokes describe spoke-vpc02 --global

createTime: '2025-11-05T00:52:06.246670699Z'
etag: '2'
group: projects/PROJECT_ID/locations/global/hubs/ncc-test-hub/groups/default
hub: projects/PROJECT_ID/locations/global/hubs/ncc-test-hub
linkedVpcNetwork:
  uri: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/spoke-vpc02
name: projects/PROJECT_ID/locations/global/spokes/spoke-vpc02
reasons:
- code: PENDING_REVIEW
  message: Spoke is Pending Review
spokeType: VPC_NETWORK
state: INACTIVE
uniqueId: 3ec4a8c2-0073-41c6-a2cf-3b334db63adb
updateTime: '2025-11-05T00:52:17.428395211Z'

こちらも同様に、コンソール上では、スポークのステータスが【無効、確認待ち】の状態になっています。

test-ncc-03

Spoke VPC 01 と Spoke VPC 02の承認

Hubプロジェクトでは、Spokeレビュー保留中の提案の一覧を以下のコマンドで取得することができます。
現状Spoke VPC 01/02ともにレビュー保留中の状態なので、Hubへは接続されていません。

gcloud network-connectivity hubs list-spokes ncc-test-hub \
    --filter="reasons:PENDING_REVIEW" \
    --format=yaml
---
# Spoke VPC 01
createTime: '2025-11-05T00:43:11.218353Z'
etag: '1'
group: projects/PROJECT_ID/locations/global/hubs/ncc-test-hub/groups/default
hub: projects/PROJECT_ID/locations/global/hubs/ncc-test-hub
name: projects/PROJECT_ID/locations/global/spokes/spoke-vpc01
reasons:
- code: PENDING_REVIEW
  message: Spoke is Pending Review
spokeType: VPC_NETWORK
state: INACTIVE
uniqueId: c13872cb-b9e8-4d8a-85e9-faf0d477944c
---
# Spoke VPC 02
createTime: '2025-11-05T00:52:15.230373Z'
etag: '1'
group: projects/PROJECT_ID/locations/global/hubs/ncc-test-hub/groups/default
hub: projects/PROJECT_ID/locations/global/hubs/ncc-test-hub
name: projects/PROJECT_ID/locations/global/spokes/spoke-vpc02
reasons:
- code: PENDING_REVIEW
  message: Spoke is Pending Review
spokeType: VPC_NETWORK
state: INACTIVE
uniqueId: 3ec4a8c2-0073-41c6-a2cf-3b334db63adb

コンソール上では、接続予定のスポークのステータスを確認することができます。
各スポークプロジェクトで確認したと通り、ステータスが【無効、確認待ち】の状態になっています。
test-ncc-04

次に、提案されたSpoke VPC 01を承認し、Hubに接続するためには、以下のコマンドを実行します。

gcloud network-connectivity hubs accept-spoke ncc-test-hub \
    --spoke=projects/PROJECT_ID/locations/global/spokes/spoke-vpc01

Accept spoke request issued for: [ncc-test-hub]
Waiting for operation [projects/PROJECT_ID/locations/global/operations/operation-1762305065109-642ce9f644895-496189fd-ab8c98a5] to complete...done.                                   
'@type': type.googleapis.com/google.cloud.networkconnectivity.v1.AcceptHubSpokeResponse
spoke:
  createTime: '2025-11-05T00:43:11.218353Z'
  etag: '2'
  group: projects/PROJECT_ID/locations/global/hubs/ncc-test-hub/groups/default
  hub: projects/PROJECT_ID/locations/global/hubs/ncc-test-hub
  linkedVpcNetwork:
    uri: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/spoke-vpc01
  name: projects/PROJECT_ID/locations/global/spokes/spoke-vpc01
  spokeType: VPC_NETWORK
  state: ACTIVE
  uniqueId: c13872cb-b9e8-4d8a-85e9-faf0d477944c

コマンド実行後、コンソール上ではSpoke VPC 01のステータスが【有効】になっていることが確認できます。
これで、Spoke VPC 01とHubは接続がされた状態になります。
test-ncc-05

同様に、Spoke VPC 02を承認し、Hubに接続するためには、以下のコマンドを実行します。

gcloud network-connectivity hubs accept-spoke ncc-test-hub \
    --spoke=projects/PROJECT_ID/locations/global/spokes/spoke-vpc02

Accept spoke request issued for: [ncc-test-hub]
Waiting for operation [projects/PROJECT_ID/locations/global/operations/operation-1762305525956-642cebadc3e8a-f3d76273-1cd887fa] to complete...done.                                   
'@type': type.googleapis.com/google.cloud.networkconnectivity.v1.AcceptHubSpokeResponse
spoke:
  createTime: '2025-11-05T00:52:15.230373Z'
  etag: '2'
  group: projects/PROJECT_ID/locations/global/hubs/ncc-test-hub/groups/default
  hub: projects/PROJECT_ID/locations/global/hubs/ncc-test-hub
  linkedVpcNetwork:
    uri: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/spoke-vpc02
  name: projects/PROJECT_ID/locations/global/spokes/spoke-vpc02
  spokeType: VPC_NETWORK
  state: ACTIVE
  uniqueId: 3ec4a8c2-0073-41c6-a2cf-3b334db63adb

コマンド実行後、コンソール上ではSpoke VPC 02のステータスが【有効】になっていることが確認できます。
これで、Spoke VPC 02とHubは接続がされた状態になります。
test-ncc-06

これでSpoke VPC 01/02 ともにHubへの接続要求が承認されたので、正式にHubと接続することができました。

Step6. Spokeプロジェクトでテスト用VMインスタンスの作成

Spokeプロジェクトで同士で疎通確認を行うため、テスト用VMインスタンスを作成します。

Spokeプロジェクト A

Spokeプロジェクト AのCloud Shellで以下のコマンドを実行します。

gcloud compute instances create my-ubuntu-vm-01 \
    --zone=asia-northeast1-a \
    --machine-type=e2-medium \
    --image-family=ubuntu-2204-lts \
    --image-project=ubuntu-os-cloud \
    --network=spoke-vpc01 \
    --subnet=spoke-vpc01-tky-subnet \
    --no-address

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/asia-northeast1-a/instances/my-ubuntu-vm-01].
NAME: my-ubuntu-vm-01
ZONE: asia-northeast1-a
MACHINE_TYPE: e2-medium
PREEMPTIBLE: 
INTERNAL_IP: 192.168.0.2
EXTERNAL_IP: 
STATUS: RUNNING

VMインスタンスが作成できました。

Spoke VPC 01のルート確認

ここで、Spoke VPC 01のルート情報を確認していきます。
デフォルトルートとサブネットルートに加えて、Network Connectivity CenterによりSpoke VPC 02のサブネットルートが広報されてきたことがわかります。

gcloud compute routes list \
    --project=$GOOGLE_CLOUD_PROJECT \
    --filter="network:spoke-vpc01"

# デフォルトルート
NAME: default-route-0edb9089b7dd7c99
NETWORK: spoke-vpc01
DEST_RANGE: 0.0.0.0/0
NEXT_HOP: default-internet-gateway
PRIORITY: 1000

# サブネットルート
NAME: default-route-r-5f0548e77290ea3d
NETWORK: spoke-vpc01
DEST_RANGE: 192.168.0.0/24
NEXT_HOP: spoke-vpc01
PRIORITY: 0

# Network Connectivity Centerにより広報されたルート
NAME: ncc-subnet-route-c91e5976-f742-5011-8e84-a1867a62d086
NETWORK: spoke-vpc01
DEST_RANGE: 192.168.1.0/24
NEXT_HOP: projects/PROJECT_ID/locations/global/hubs/ncc-test-hub
PRIORITY: 0

Spokeプロジェクト B

同様に、Spokeプロジェクト BのCloud Shellで以下のコマンドを実行します。

gcloud compute instances create my-ubuntu-vm-02 \
    --zone=asia-northeast1-a \
    --machine-type=e2-medium \
    --image-family=ubuntu-2204-lts \
    --image-project=ubuntu-os-cloud \
    --network=spoke-vpc02 \
    --subnet=spoke-vpc02-tky-subnet \
    --no-address

Created [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/asia-northeast1-a/instances/my-ubuntu-vm-02].
NAME: my-ubuntu-vm-02
ZONE: asia-northeast1-a
MACHINE_TYPE: e2-medium
PREEMPTIBLE: 
INTERNAL_IP: 192.168.1.2
EXTERNAL_IP: 
STATUS: RUNNING

VMインスタンスが作成できました。

Spoke VPC 02のルート確認

同様に、Spoke VPC 02のルート情報を確認していきます。
デフォルトルートとサブネットルートに加えて、Network Connectivity CenterによりSpoke VPC 01のサブネットルートが広報されてきたことがわかります。

gcloud compute routes list \
    --project=$GOOGLE_CLOUD_PROJECT \
    --filter="network:spoke-vpc02"

# デフォルトルート
NAME: default-route-47ebc995918fee6b
NETWORK: spoke-vpc02
DEST_RANGE: 0.0.0.0/0
NEXT_HOP: default-internet-gateway
PRIORITY: 1000

# サブネットルート
NAME: default-route-r-0d3c54a77796626d
NETWORK: spoke-vpc02
DEST_RANGE: 192.168.1.0/24
NEXT_HOP: spoke-vpc02
PRIORITY: 0

# Network Connectivity Centerにより広報されたルート
NAME: ncc-subnet-route-268e47e8-9969-5d60-ac6b-fd7c928c9719
NETWORK: spoke-vpc02
DEST_RANGE: 192.168.0.0/24
NEXT_HOP: projects/PROJECT_ID/locations/global/hubs/ncc-test-hub
PRIORITY: 0

Step7. プロジェクト間接続テスト

Spoke VPC 01 からSpoke VPC 02への接続テスト

SpokeプロジェクトAのmy-ubuntu-vm-01インスタンスにIAP経由でSSHし、pingコマンドを実行して、SpokeプロジェクトBのmy-ubuntu-vm-02インスタンスへ疎通確認を実行してみます。

$ ping -c 4 192.168.1.2

PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data.
64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=3.16 ms
64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.897 ms
64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.887 ms
64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.897 ms

--- 192.168.1.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3088ms
rtt min/avg/max/mdev = 0.887/1.461/3.164/0.983 ms

無事接続することができました。

Spoke VPC 02 からSpoke VPC 01への接続テスト

同様に、SpokeプロジェクトBのmy-ubuntu-vm-02インスタンスにIAP経由でSSHし、pingコマンドを実行して、SpokeプロジェクトAのmy-ubuntu-vm-01インスタンスへ疎通確認を実行してみます。

$ ping -c 4 192.168.0.2
PING 192.168.0.2 (192.168.0.2) 56(84) bytes of data.
64 bytes from 192.168.0.2: icmp_seq=1 ttl=64 time=3.32 ms
64 bytes from 192.168.0.2: icmp_seq=2 ttl=64 time=0.942 ms
64 bytes from 192.168.0.2: icmp_seq=3 ttl=64 time=0.981 ms
64 bytes from 192.168.0.2: icmp_seq=4 ttl=64 time=0.969 ms

--- 192.168.0.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 0.942/1.551/3.315/1.018 ms

こちらも、無事接続することができました。

これで、Network Connectivity Center (NCC) のVPCスポークメッシュトポロジで相互に通信接続をすることができました。

最後に

今回は、Network Connectivity Center (NCC)のVPCスポーク機能を利用して、異なるプロジェクトのVPC同士を接続してみました。
Network Connectivity Center (NCC)はGoogle Cloudで大規模なネットワークを構築する場合に、力を発揮するサービスになります。

VPCピアリングや、HA VPN接続からの移行の方法も公式ドキュメントで確認することができるので、大規模ネットワーク運用管理で現在困っている方はこちらも確認してみてください。

他の Google Cloud ソリューションから移行する  |  Network Connectivity Center

今回はVPCスポークの検証でしたが、オンプレミス環境やマルチクラウドとの接続で使用するハイブリッドスポークの検証もいつかやってみたいと思います。

この記事が誰かの助けになれば幸いです。

以上、クラウド事業本部コンサルティング部の渡邉でした!

この記事をシェアする

FacebookHatena blogX

関連記事