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