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 コンソールのスクリーンショットは、VM 間のテスト結果を示しています。

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

この結果は、構成分析によって、送信元 VM から送信先 VM までのパス上にあるすべての Google Cloud リソースのネットワーク接続が確認されたことを示しています。この場合、ルートには 2 つの VPC ファイアウォール ルール、つまり暗黙の VPC ファイアウォール ルール(default)と、この 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 コンソールでトレースを行うことや、ホスト プロジェクト ネットワークを選択することができません。

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

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

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

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

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

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

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

次のステップ