VPC ネットワーク内の接続性をテストする

接続テストの一般的なユースケースは、同じネットワークやピアリングした Virtual Private Cloud(VPC)ネットワーク内の 2 つの Compute Engine 仮想マシン(VM)インスタンス間をテストすることです。

このタイプのテストでは、接続テストは構成分析とライブ データプレーン分析の両方を使用してネットワーク到達性を評価します。接続テストでは、構成を分析するためにトレースパスを特定して評価します。

このページのトレース図では、次の凡例で説明されている記号を使用しています。
記号 名前 意味
パケット トレース図の凡例: 灰色のひし形灰色のひし形
チェックポイント 接続テストにより構成がチェックされ、トレース パケットを転送、配信、またはドロップする必要があるかどうかを決める決定ポイント。
パケット トレース図の凡例: 青い四角形青い四角形
ホップ トレース パケットの転送パス内のステップ。VPC ネットワークのネクストホップ(Cloud Load Balancing プロキシや Cloud VPN トンネルなど)にパケットを転送する Google Cloud リソースを表します。
パケット トレース図の凡例: オレンジ色の六角形オレンジ色の六角形
エンドポイント トレース パケットの送信元または送信先。

次の図は、2 つの VM インスタンス間の一般的なトレースパスを示しています。Match routes オブジェクトは、1 つの VPC ネットワーク内または 2 つのピアリングした VPC ネットワーク間でトラフィックを転送するルートを表します。

送信元 VM から送信先 VM へのトレース
送信元 VM から送信先 VM へのトレース(クリックして拡大)

次の手順では、トレース図の各ポイントに対応するチェックポイントについて説明します。チェックは任意のチェックポイントで失敗する可能性があります。失敗の理由はクエリ結果に示されます。テストの状態とメッセージの一覧については、構成分析の状態をご覧ください。

  1. 接続テストでは、送信元 VM が特定の送信元 IP アドレスを含む下り(外向き)パケットを送信できることを確認します。送信元 IP アドレスが指定されていない場合は、デフォルトでなりすましチェック プロセスが行われることを確認します。

  2. 接続テストは、VM インスタンスとの間のシミュレートされたパケットが、そのインスタンスが所有していない IP アドレスを使用している場合に、なりすましチェックを実施します。VM が所有する IP アドレスには、すべての VM 内部 IP アドレスとセカンダリ IP アドレスが含まれます。

    アドレスが、外部トラフィックから発信されているように見せかけたアドレス(外部アドレスとも呼ばれる)である場合、その IP アドレスはなりすましチェックに合格しません。

  3. ソースからトレース パケットを送信できるかどうかを判断するために、接続テストは適切な下り(外向き)ファイアウォール ルールを検証します。このプロセスの一環として、接続テストはまず、既存の階層のファイアウォール ポリシールールを評価します。階層型ファイアウォール ポリシールールと VPC ファイアウォール ルールが接続に与える影響の詳細については、階層型ファイアウォール ポリシーの例をご覧ください。

  4. 接続テストは、ルーティング順序に従って、送信先 IP アドレスのルートを検索(照合)します。送信先 VM インスタンスに使用できる他のルートがない場合、接続テストではネクストホップを含むデフォルトの静的ルートをインターネット ゲートウェイとして使用します。このデフォルト ルートが削除されていない限り、すべての VPC ネットワークで使用されます。

  5. 接続テストでは、ネットワークの上り(内向き)ファイアウォール ルールがパケットの送信先 VM への到達を許可していることを確認します。ここでも、接続テストはまず、既存の階層のファイアウォール ポリシールールを評価します。

  6. 必要に応じて、接続テストは 2 番目の VM に到着したパケットに対してなりすましチェックを行います。

  7. 接続テストでは、送信先 VM が指定した送信先 IP アドレスを持つパケットを受信できることを確認します。このアドレスが外部 IP アドレスの場合、送信先 VM で IP 転送が有効にされている必要があります。外部 IP アドレスとは、VM に属していないアドレスのことです。

次の Google Cloud Console のスクリーンショットは、VM から VM へのテスト結果を示しています。

構成分析では、パケットは配信されている可能性がありますという結果が表示されます(API レスポンスでは、このラベルは Deliver の最終状態に対応します)。

この結果は、送信元 VM から宛先 VM へのパス上にあるすべての Google Cloud リソースのネットワーク接続が検証されたことを示しています。 この場合、ルートには 2 つの VPC ファイアウォール ルール(default という暗黙の VPC ファイアウォール ルール)と、この VPC ネットワーク用に作成されたルールがあります。

また、接続テストでは、アクティブ プローブを使用して、宛先 VM へのネットワーク到達性も動的に確認します。この結果の詳細が [前回のパケット送信の結果] フィールドに表示されます。

VM 間トレースが表示された Google Cloud コンソールのスクリーンショット。
VM 間トレースが表示された Google Cloud コンソールのスクリーンショット(クリックして拡大)

トレースパスの各カードを展開すると、詳細が表示されます。

次の例は、展開した上り(内向き)ファイアウォール ルールのカードを示しています。このカードには、VPC ネットワーク、ファイアウォール ルールに構成されたアクション(許可)、ルールの優先度に関する情報が含まれています。

展開した上り(内向き)ファイアウォール ルールのカード。
展開した上り(内向き)ファイアウォール ルールのカード(クリックして拡大)

ネクストホップがピアリングした VPC ネットワークである VPC ネットワーク ルートがトレースに含まれている場合、トレースは VM インスタンスではなく VPC ネットワークから開始されます。このタイプのトレースでは、テスト対象の IP アドレスが VM インスタンスではなくネットワークの範囲にあるため、ネットワーク レベルでファイアウォール ルールとルートが検証されます。

ピアリングしたネットワークは、同じプロジェクトまたは別のプロジェクトに存在できます。次のトレース例では、異なるプロジェクトのピアリングしたネットワークを示しています。

別のプロジェクトにあるアクセス可能なピアリングした VPC ネットワークを介した VM 間のトレース。
別のプロジェクトにあるアクセス可能なピアリングした VPC ネットワークを介した VM 間のトレース(クリックして拡大)

VPC ネットワークのテストの失敗

次の表に、VPC ネットワーク内のテストの一般的な失敗を示します。

失敗の種類 説明 トレース結果
ファイアウォール ルールによってブロックされた 送信元エンドポイントから送信されるトラフィックまたは送信先エンドポイントに到達するトラフィックが、階層型ファイアウォール ポリシー ルールまたは VPC ファイアウォール ルールによってブロックされます。
  • 階層型ファイアウォール ポリシールールによって接続がブロックされている場合、トレースにはポリシーの名前が含まれます。テストを実施したユーザーに、ポリシーの詳細を表示する権限が付与されていない可能性があります。この状況の詳細については、階層型ファイアウォール ポリシーのトラブルシューティングをご覧ください。
  • VPC ファイアウォール ルールによって接続がブロックされている場合、トレースには、関連する上り(内向き)、または下り(外向き)のファイアウォール ルールの名前が一覧表示されます。
一致するルートがない 送信先エンドポイントへのルートが見つかりません。
  • 送信元と宛先の VM インスタンスが別の VPC ネットワークにあり、それらのネットワークがピアリングされていない場合は、分析によってパケットはドロップされている可能性がありますと判定されます。
  • 両方の VM が同じネットワーク内に存在していても一致するルートが見つからない場合、トラフィックは、デフォルトの静的ルート(インターネット ゲートウェイへのネクストホップ)に送信されます。この場合、トラフィックは宛先 VM に到達せず、分析によって、パケットはドロップされている可能性がありますと判定されます。
  • インターネット ゲートウェイへのルートがない場合、パケットがドロップされる可能性があると分析されます。
インスタンスが実行されていない 送信先 VM インスタンスは存在しますが、実行状態ではありません。 この場合、パケットがドロップされる可能性があると分析されます。
ネクストホップが無効 VM インスタンスに構成されたネクストホップが存在せず、そのインスタンスへのルートは無効です。 この場合、パケットがドロップされる可能性があると分析されます。

次のスクリーンショットは、上り(内向き)の階層型ファイアウォール ポリシールールによって接続がブロックされたために失敗したトレースを示しています。

階層型ファイアウォール ポリシー ルールでブロックされたトレースが表示された Google Cloud コンソールのスクリーンショット。
階層型ファイアウォール ポリシー ルールでブロックされたトレースが表示された Google Cloud コンソールのスクリーンショット(クリックして拡大)

共有 VPC ネットワークのテストの失敗

共有 VPC ネットワークでは、ホスト プロジェクトまたはサービス プロジェクトに対する権限がない場合、次の表に示すテストの失敗につながることがあります。

失敗の種類 動作 トレース結果
権限がホスト プロジェクトに限定される 送信先 IP アドレスが配置されているサービス プロジェクトに対する権限がないため、トレースを行えません。 構成分析では、構成分析が中断されましたという結果が示されます(API レスポンスでは、このラベルは Abort の最終状態に対応します)。
権限がサービス プロジェクトに限定される

権限がないため、Google Cloud Console でトレースを行うことや、ホスト プロジェクト ネットワークを選択することができません。

ホスト プロジェクトがネットワーク構成を所有しているため、ホスト プロジェクト内の VPC ファイアウォール ルール、ネットワーク ルート、IP アドレスにアクセスできないと、サービス プロジェクトのリソースに対するトレースを続行できません。

接続テストでは、パケットを送信先に配信できるかどうかを判定できないため、全体的なネットワーク到達性の結果は Undetermined になります。

VPC ネットワーク ピアリング ネットワークのテストの失敗

VPC ネットワーク ピアリングでは、peered ネットワークの Google Cloud プロジェクトに対して primary ネットワークからの権限がない場合、次の表に示すテスト結果につながることがあります。

失敗の種類 動作 トレース結果
ピアリングした VPC ネットワーク内のプロジェクト構成に対する権限がない 接続テストでトレースできるのは、プライマリ ネットワークのプロジェクトの構成のみに限定されます。 構成分析の結果として [パケットは転送されている可能性があります] が表示されます。この結果は、パケットがネットワークからアクセス権のないネットワークに送信されることを示します。この場合、パケットはピアリングしたネットワーク ゲートウェイに転送されます。API レスポンスでは、この状態は Forward の最終状態に対応します。

次のトレースパスは、ピアリングされた VPC ネットワークの転送状態を示しています。

別のプロジェクトにあるアクセス不能のピアリングした VPC ネットワークを介した VM 間のトレース。
別のプロジェクトにあるアクセス不能のピアリングした VPC ネットワークを介した VM 間のトレース(クリックして拡大)

次のステップ