接続テストは、ネットワーク エンドポイント間の接続を確認できる診断ツールです。構成を分析し、場合によってはエンドポイント間でライブ データプレーン分析を行います。エンドポイントは、VM、Google Kubernetes Engine(GKE)クラスタ、ロードバランサの転送ルール、インターネット上の IP アドレスなどのネットワーク トラフィックの送信元または宛先です。
ネットワーク構成を分析するため、接続テストでは、Virtual Private Cloud(VPC)ネットワーク、Cloud VPN トンネル、VLAN アタッチメントを通過するパケットの想定転送パスをシミュレートします。さらに、VPC ネットワーク内のリソースへの想定されるインバウンド転送パスをシミュレートすることもできます。
一部の接続シナリオでは、接続テストでライブ データプレーン分析も行います。この機能は、接続性を検証するためにデータプレーン経由でパケットを送信し、レイテンシとパケットロスのベースライン診断を行います。機能に対してルートがサポートされている場合、実行する各テストには、ライブ データプレーン分析の結果が含まれます。
さまざまなシナリオでテストを作成して実行する方法については、接続テストを作成して実行するをご覧ください。
接続テストで使われる API は、Network Management API です。詳細については、API ドキュメントをご覧ください。
接続テストを使用するメリット
接続テストは、次のネットワーク接続に関する問題のトラブルシューティングに有用です。
- 予期しない構成の矛盾
- ネットワーク構成の変更または移行に起因する構成
- さまざまなネットワーク サービスや機能の構成エラー
Google マネージド サービスの接続テストを行うと、VPC ネットワークの問題や、サービス リソースに使用されている Google 所有の VPC ネットワークの問題を特定できます。
接続テストが構成を分析する仕組み
ネットワーク構成を分析するとき、接続テストでは抽象ステートマシンを使用して、VPC ネットワークがどのようにパケットを処理するかをモデル化します。Google Cloud は複数の論理ステップでパケットを処理します。
分析ではさまざまなパスが使用されることがある
構成分析ではさまざまな VPC ネットワーク サービスと機能がサポートされているので、テストパケットが通過する可能性のある VPC ネットワーク構成のパス(経路)は多数あります。
次の図は、構成分析によって 2 つの Compute Engine インスタンス(左側と右側)の間のトレース トラフィックをシミュレーションするモデルを示しています。
分析はネットワーク インフラストラクチャに依存する
使用する Google Cloud ネットワーク構成とリソース構成によっては、このトラフィックは送信先 Compute Engine インスタンスに到達する前に、Cloud VPN トンネル、VPC ネットワーク、 Google Cloud ロードバランサ、ピアリングされた VPC ネットワークを通過する場合もあります。
分析では多数の有限状態のうちの 1 つをたどる
パケットが配信またはドロップされるまでの離散状態間の有限数のステップが、有限ステートマシンとしてモデル化されています。この有限ステートマシンは、どの時点においても多数の有限状態のうちの 1 つだけを取ることができ、後続の状態が複数存在することがあります。
たとえば、接続テストでルートの優先順位に従って複数のルートが一致する場合、データプレーン内の未指定のハッシュ関数に基づいて、複数のルートのうちの 1 つを Google Cloud で選択できます。ポリシーベースのルートが構成されている場合、接続テストでは、ネクストホップ(内部ロードバランサ)にパケットをルーティングします。
前のケースでは、接続テストのトレースにより、すべての可能なルートが返されますが、ルートを返すために Google Cloud で使用された方法を特定することはできません。これは、その方法が Google Cloud内部にあり、変更される可能性があるためです。
Google マネージド サービス
Cloud SQL や Google Kubernetes Engine(GKE)などの Google マネージド サービスでは、Google が所有および管理するプロジェクトや VPC ネットワークのお客様に対してリソースが割り当てられます。お客様には、これらのリソースにアクセスする権限がありません。
接続テストの構成分析では、Google マネージド サービスについてもテストを実行して全体的な到達可能性を示す結果を確認できますが、Google が所有するプロジェクト内のテスト対象リソースの詳細は表示されません。
次の図のモデルでは、構成分析によって、お客様の VPC ネットワーク内の Compute Engine インスタンスから Google 所有の VPC ネットワーク内の Cloud SQL インスタンスへのトレース トラフィックをシミュレートしています。この例では、ネットワークが VPC ネットワーク ピアリングで接続されています。
2 つの Compute Engine インスタンス間で行う標準的なテストと同様、論理ステップには関連する下り(外向き)ファイアウォール ルールの確認とルートの照合が含まれています。テストの際は、接続テストの構成分析により、これらのステップの詳細が提供されます。ただし、最後の論理ステップ(Google 所有の VPC ネットワークの構成の分析)では、全体的な到達可能性を示す結果のみが提供されます。Google 所有プロジェクトのリソースに対する表示権限がないため、これらのリソースの詳細情報は表示されません。
詳細については、Google マネージド サービスとの接続性をテストするのテスト例をご覧ください。
サポートされている構成
接続テストの構成分析では、次のセクションで説明するネットワーク構成のテストがサポートされています。
送信元エンドポイント
接続テストの構成分析では、次の送信元エンドポイントがサポートされています。
- Compute Engine インスタンス
- Cloud Run のリビジョン
- Cloud Run functions(第 1 世代)
- App Engine スタンダード環境
- Cloud SQL インスタンス
- GKE コントロール プレーン
- インターネット上の IP アドレス
- オンプレミス ネットワーク内の IP アドレス
- Compute Engine インスタンスの IP アドレス
- Cloud SQL インスタンスの IP アドレス
- GKE コントロール プレーンの IP アドレス
- Virtual Private Cloud ネットワーク内の割り当てられていない IP アドレス
宛先エンドポイント
接続テストの構成分析では、次の宛先エンドポイントがサポートされています。
- Compute Engine インスタンス
- Cloud SQL インスタンス
- GKE コントロール プレーン
- 外部アプリケーション ロードバランサと内部アプリケーション ロードバランサ
- 外部プロキシ ネットワーク ロードバランサと内部プロキシ ネットワーク ロードバランサ
- 外部パススルー ネットワーク ロードバランサと内部パススルー ネットワーク ロードバランサ
- Private Service Connect エンドポイント
- Memorystore for Redis Cluster
- Memorystore for Redis インスタンス
- インターネット上の IP アドレス
- オンプレミス ネットワーク内の IP アドレス
- 転送ルールの IP アドレス
- Compute Engine インスタンスの IP アドレス
- Cloud SQL インスタンスの IP アドレス
- GKE コントロール プレーンの IP アドレス
- Memorystore for Redis Cluster の IP アドレス
- Memorystore for Redis インスタンスの IP アドレス
Google Cloud のネットワーキング機能
次の機能を使用するリソース間の接続性をテストできます(該当する場合は IPv4 と IPv6 のどちらもサポートされます)。
- VPC ネットワーク
- VPC ネットワーク ピアリング
- 共有 VPC
- プライベート Google アクセス
- Cloud Load Balancing
- エイリアス IP 範囲
- プライベートで使用されるパブリック IPv4 アドレス
- 複数のネットワーク インターフェースを持つ Compute Engine インスタンス
- VPC ルーティング
- VPC ファイアウォール ルール
- リージョン ネットワーク ファイアウォール ポリシー
- 階層型ファイアウォール ポリシーとグローバル ネットワーク ファイアウォール ポリシー
- ファイアウォールの Resource Manager タグ(複数のネットワーク インターフェースを持つ Compute Engine インスタンスにアタッチされている場合を含む)
- ポリシーベースのルート
- Private Service Connect
- IPv6 アドレスを持つインスタンス(複数のネットワーク インターフェースを持つインスタンスを含む)
- Network Connectivity Center 用の VPC スポークとハイブリッド スポーク
- Public NAT と Private NAT
- Cloud VPN
- Cloud Interconnect
- Cloud Router(BGP と静的ルートを使用した動的ルートを含む)
Cloud Load Balancing での考慮事項
接続テストの構成分析では、Cloud Load Balancing について次の機能がサポートされています。
- ロードバランサの IP アドレスへの接続性をテストする
- バックエンドへの Cloud Load Balancing ヘルスチェックの接続性を確認する
- 内部 TCP / UDP ロードバランサをネクストホップとして使用する
サポートされていない Cloud Load Balancing の機能については、サポートされていない構成のセクションをご覧ください。
接続テストがロードバランサのバックエンドを分析する方法については、ロードバランサへのテスト内のトレースの数をご覧ください。
Google Kubernetes Engine での考慮事項
接続テストの構成分析では、GKE について次の機能がサポートされています。
- GKE ノードと GKE コントロール プレーンへの接続性、および GKE ノードと GKE コントロール プレーンの間の接続性
- Cloud Load Balancing を介した GKE Service への接続性
VPC ネイティブ クラスタ内の GKE Pod への接続性はサポートされていますが、GKE NetworkPolicies などの一部の GKE ネットワーキング機能はサポートされていません。
サポートされていない GKE の機能については、サポートされていない構成のセクションをご覧ください。
サーバーレス エンドポイントでの考慮事項
サーバーレス エンドポイントの送信元 IP アドレスは通常、非確定的です。接続テストでは、テスト実行ごとに、サーバーレス エンドポイントで使用可能なアドレスプールからランダムに IP アドレスが選択されます。サーバーレス エンドポイントに IP アドレスが割り振られる方法の一般的な情報については、以下をご覧ください。
- 外部接続については、IP アドレスをご覧ください。
- サーバーレス VPC アクセス コネクタを介した接続については、サーバーレス トラフィックを Virtual Private Cloud ネットワークに送信するをご覧ください。
- ダイレクト VPC 下り(外向き)を介した接続については、IP アドレスの割り振りをご覧ください。この接続タイプは Cloud Run でのみ使用できます。
下り(外向き)設定によっては、ダイレクト VPC 下り(外向き)コネクタとサーバーレス VPC アクセス コネクタが、Virtual Private Cloud ネットワークではなく外部接続を介してサーバーレス エンドポイントからのトラフィックを転送するように構成されている場合もあります。
サポートされていないサーバーレスの機能については、サポートされていない構成のセクションをご覧ください。
サポートされていない構成
接続テストの構成分析では、次のネットワーク構成はサポートされていません。
- 位置情報オブジェクト、脅威インテリジェンス データ、FQDN オブジェクトを含むファイアウォール ポリシールールはサポートされていません。このようなファイアウォールが特定のトラフィック フローに影響する可能性がある場合、それに対応する警告が接続テストから返されます。
- FQDN をターゲットとするインターネット NEG バックエンドはサポートされていません。ただし、IP アドレスをターゲットとするインターネット NEG バックエンドはサポートされています。
INTERNAL_SELF_MANAGED転送ルールを使用する Cloud Service Mesh ロードバランサはサポートされていません。- 外部アプリケーション ロードバランサの IP アドレスへの接続性をトレースする際に、Google Cloud Armor ポリシーは考慮されず、使用されません。
- Compute Engine インスタンスに接続された HA VPN ゲートウェイはサポートされていません。
- GKE クラスタ内とノード内の IP アドレスへの接続性をトレースする際に、GKE NetworkPolicies と IP マスカレードの構成は考慮されず、使用されません。
- DNS 名で定義された Cloud SQL 外部サーバー レプリカはサポートされていません。ただし、IP アドレスで定義された外部サーバー レプリカはサポートされています。
- Cloud Run functions(第 2 世代)はサポートされていません。ただし、基盤となる Cloud Run リビジョンの接続テストを作成することで、Cloud Run functions(第 2 世代)からの接続をテストできます。Cloud Run リビジョンは、Cloud Functions 関数がデプロイされるたびに作成されます。
- App Engine フレキシブル環境はサポートされていません。
- Cloud Run ジョブはサポートされていません。詳細については、サービス、ジョブ、ワーカープール: コードを実行する 3 つの方法をご覧ください。
接続テストによるライブ データプレーンの分析方法
ライブ データプレーン分析機能では、送信元のエンドポイントから宛先に複数のプローブ パケットが送信されて接続性がテストされます。宛先が Google Cloud リソースでない場合は、送信元エンドポイントとネットワーク エッジ ロケーションの間の接続性がテストされます。
ライブ データプレーン分析の結果には、送信されたプローブの数、宛先に正常に到達したプローブの数、ネットワーク到達性のステータスが表示されます。次の表に示すように、このステータスは正常に配信されたプローブの数によって決まります。
| ステータス | 宛先に到達したプローブの数 |
|---|---|
| 到達可能 | 95% 以上 |
| 到達不能 | なし |
| 一部到達可能 | 0より大きく、95%未満 |
ライブ データプレーン分析では、正常に配信されたパケットの数だけでなく、中央値と 95 パーセンタイルの一方向のレイテンシ情報も表示されます。宛先がインターネット IP アドレスの場合は、トラフィックがルーティングされる可能性のある各 Google ネットワーク エッジルーターについてプローブが送信され、結果が表示されます。
制限事項
ライブ データプレーン分析では、考えられる全ネットワーキング パスのうち、一部が網羅されない場合もあります。
- 宛先エンドポイントが複数のバックエンドを持つ Google Cloud ロードバランサの場合、ライブ データプレーン分析の各プローブはランダムに選ばれたバックエンドに送信されます。一部のバックエンドが多くのプローブによってテストされ、他のバックエンドがまったくテストされないという場合もあります。
- 等価コスト マルチパス(ECMP)ルーティングの場合、ライブ データプレーン分析の各プローブはランダムに選ばれたルートによって転送されます。一部のルーティング パスが多くのプローブによってテストされ、他のルーティング パスがまったくテストされないという場合もあります。
- ライブ データプレーン分析のプローブの数は存在するネットワーキング パスの数によって決まるわけではないため、考えられる各パスをテストするのに十分な数のプローブが送信されない場合もあります。
構成分析の結果とライブ データプレーン分析の結果に明らかな違いがある場合は、接続テストのトラブルシューティングをご覧ください。
サポートされている構成
ライブ データプレーン分析では、接続テストの構成分析でテストされる構成のサブセットがサポートされています。
送信元エンドポイント
ライブ データプレーン分析では、次の送信元エンドポイントがサポートされています。
- Compute Engine インスタンス
- サーバーレス VPC アクセス コネクタで構成され、次のいずれかのリソースに関連付けられたサーバーレス エンドポイント:
- Cloud SQL インスタンス
- GKE コントロール プレーン
宛先エンドポイント
ライブ データプレーン分析では、次の宛先エンドポイントがサポートされています。
- Compute Engine インスタンス
- 内部パススルー ネットワーク ロードバランサ
- プロデューサーの内部パススルー ネットワーク ロードバランサを使用する Private Service Connect
- インターネット IP アドレス(ネットワーク エッジ上のロケーションへの接続がテストされます)
- Cloud Interconnect 用の VLAN アタッチメント
- 次のいずれかのリソースに関連付けられたプライベート エンドポイント:
- Cloud SQL インスタンス
- Memorystore for Redis Cluster
- Memorystore for Redis インスタンス
- GKE コントロール プレーン
プロトコル
ライブ データプレーン分析では、TCP と UDP のプロトコルがサポートされています。
Google Cloud のネットワーキング機能
ライブ データプレーン分析では、次の機能がサポートされています。
- VPC ネットワーク
- VPC ネットワーク ピアリング
- 共有 VPC
- Network Connectivity Center の VPC スポークとハイブリッド スポーク
- エイリアス IP 範囲
- 外部 IP アドレス
- 内部 IP アドレス(プライベートで使用されるパブリック IPv4 アドレスを含む)
- 複数のネットワーク インターフェースを持つ Compute Engine インスタンス
- VPC ルーティング
- Public NAT と Private NAT(NAT64 を除く)
- VPC ファイアウォール ルール
- 階層型ファイアウォール ポリシー、グローバル ネットワーク ファイアウォール ポリシー、リージョン ネットワーク ファイアウォール ポリシー
- ファイアウォールのセキュアタグ(複数のネットワーク インターフェースを持つ Compute Engine インスタンスにアタッチされている場合を含む)
- ポリシーベースのルート
- IPv6 アドレスを持つインスタンス(複数のネットワーク インターフェースを持つインスタンスを含む)
サポートされていない構成
ライブ データプレーン分析では、次のネットワーク構成はサポートされていません。この場合、ライブ データプレーン分析は実行されません。
- Google Cloud 以外のリソースが送信元エンドポイントである:
- インターネット IP アドレス
- Cloud Interconnect、Cloud VPN、Network Connectivity Center のハイブリッド スポークを介した、 Google Cloud へのインバウンド トラフィック
- VPC ネットワーク内の未割り当ての IP アドレスが送信元エンドポイントである
- 送信元エンドポイントと宛先エンドポイントが同じ Compute Engine インスタンスである
- 実行されていない Compute Engine インスタンス
- Google API とサービス
- 外部アプリケーション ロードバランサと内部アプリケーション ロードバランサ
- 外部プロキシ ネットワーク ロードバランサと内部プロキシ ネットワーク ロードバランサ
- 外部パススルー ネットワーク ロードバランサ
- Cloud VPN
- NAT64
考慮事項と制約
接続テストを使用するかどうかを決定するときには、次の考慮事項を検討してください。
- 接続テストで実行される構成分析は Google Cloud リソースの構成情報のみに基づいています。したがって、VPC ネットワークのデータプレーンの実際の状態やステータスを表しているとは限りません。
- 接続テストでは Cloud VPN トンネルの状態や Cloud Router の動的ルートなどの動的構成情報が取得されますが、Google 内部の本番環境インフラストラクチャとデータプレーン コンポーネントのヘルス ステータスの確認や管理は行われません。
- 接続テストのステータスが
Packet could be deliveredの場合でも、トラフィックがデータプレーンを通過できることは保証されません。テストの目的は、トラフィックのドロップを引き起こす可能性がある構成の問題を検証することです。
サポートされているルートの場合、ライブ データプレーン分析の結果では、送信パケットが宛先に到着するかどうかのテストによって、構成分析の結果が補完されます。
接続テストでは Google Cloud外部のネットワークの情報がわからない
外部ネットワークは、次のように定義されます。
- ハードウェア デバイスとソフトウェア アプリケーションを操作するデータセンターや他の施設にあるオンプレミス ネットワーク
- リソースを実行するほかのクラウド プロバイダ
- VPC ネットワークにトラフィックを送信するインターネット上のホスト
接続テストでファイアウォールの接続トラッキングが行われない
VPC ファイアウォールの接続トラッキングでは、新規の接続と確立済みの接続に関する情報を格納し、その情報に基づいて後続のトラフィックを許可または制限できるようにします。
ファイアウォールの接続テーブルは Compute Engine インスタンスのデータプレーンに配置され、アクセスできないため、接続テストの構成分析ではファイアウォール接続のトラッキングはサポートされていません。ただし、接続テストから開始されたアウトバウンド接続については、通常は上り(内向き)ファイアウォール ルールによって拒否されるリターン接続を許可することで、接続トラッキングをシミュレーションできます。
ライブ データプレーン分析では、ファイアウォールの接続トラッキングのテストはサポートされていません。
接続テストでは、転送動作を変更するように構成された Compute Engine インスタンスをテストできない
接続テストでは、データプレーンでルーター、ファイアウォール、NAT ゲートウェイ、VPN として動作するように構成された Compute Engine インスタンスをテストできません。このタイプの構成を使用すると、Compute Engine インスタンスで実行される環境の評価が困難になります。また、ライブ データプレーン分析では、このタイプのテストシナリオはサポートされていません。
接続テストの結果が出るまでの時間は状況による
接続テストの結果の取得には、30 秒から最大 10 分かかります。テストにかかる時間は、VPC ネットワーク構成のサイズと使用する Google Cloud リソースの数に基づきます。
次の表は、すべてのユーザーがクエリでサンプル構成に対するテストを行う場合に期待できるレスポンス時間を示しています。この構成には、Compute Engine インスタンス、Cloud VPN トンネル、 Google Cloudロードバランサが含まれています。
| プロジェクトの規模 | Google Cloud リソース数 | レスポンスのレイテンシ |
|---|---|---|
| 小規模プロジェクト | 50 未満 | すべてのユーザーからのクエリの 95% で 60 秒 |
| 中規模プロジェクト | 50 以上、5,000 未満 | すべてのユーザーからのクエリの 95% で 120 秒 |
| 大規模プロジェクト | 5,000 以上 | すべてのユーザーからのクエリの 95% で 600 秒 |
ライブ データプレーン分析は継続的なモニタリングを目的としたものではない
ライブ データプレーン分析は、診断のためにネットワーク接続の 1 回限りの検証を行います。接続とパケットロスを継続的にモニタリングするには、パフォーマンス ダッシュボードを使用します。
VPC Service Controls のサポート
VPC Service Controls は接続テストのセキュリティを強化して、データの引き出しのリスクを低減します。VPC Service Controls の活用により、境界の外部から発生するリクエストからリソースとサービスを保護するサービス境界にプロジェクトを追加できます。
サービス境界の詳細については、VPC Service Controls ドキュメントのサービス境界の詳細と構成のページをご覧ください。
次のステップ
ICMP の問題を特定して修正する(チュートリアル)