接続テストの構成分析では、指定された送信元から宛先へのネットワーク パス内の Google Cloud リソースの構成をチェックしながら、一連のテスト状態を遷移します。このリファレンスでは、テスト状態の解釈方法を説明します。
ライブ データプレーン分析の詳細を含む、接続テストの詳細については、概要をご覧ください。
テスト状態
接続テストの構成分析では、次のテスト状態のデータが以下の順番で提供されます。
- 初期状態
- 構成チェック状態
- 転送状態
- 移行状態
- 特別な状態
- 最終状態
- 全体的なネットワーク到達性の結果
こうした状態には、すべてのトレースに表示されるものと、特定の Google Cloud リソースの構成をテストするとき、または特定のタスクを行うときにのみ表示されるものがあります。
最終状態と全体的なネットワーク到達性の結果は、最も重要なテスト出力を提供します。
さらに、テスト出力には、1 つ以上の状態に関連付けられている Google Cloud リソースのメタデータを含めることができます。たとえば、仮想マシン(VM)インスタンスの名前と IP アドレスに関する情報などです。
構成分析による到達可能性の評価方法
構成分析では、ネットワーク パス上の Google Cloud リソースの構成を検証し、そのパスを通過するテストパケットをシミュレーションします。たとえば、バックエンドのない Cloud Load Balancing 転送ルールや、存在しないネットワーク ルートなどが無効なネットワーク構成に該当します。
接続テストでは、構成チェック状態中に、ユーザーが構成したルート、BGP アドバタイズに基づく動的ルート、ポリシーベースのルートなどのネットワーク ルートに関する情報を収集します。続いて、構成分析により、適用範囲と順序に基づいてネットワーク ルートが選択されます。
構成チェック状態の場合、verified
は、接続テスト対象の Google Cloud リソースの構成が有効であること、その構成により、シミュレーションされたテストパケットがテスト中のネットワーク パスを介して続行できることを示します。
上り(内向き)および下り(外向き)ファイアウォール ルールの場合、verified
は、ファイアウォール ルールが有効であり、シミュレートされたテストパケットの通過をファイアウォール ルールが許可していることが構成分析により確認されることを意味します。
接続テストで構成が無効であると判断された場合、パケットの最終状態は Drop
です。
全体的なネットワーク到達性の結果
構成分析は、到達可能性ステータス(結果とも呼ばれます)の概要を提供します。結果は、Reachable
、Unreachable
、Ambiguous
、Undetermined
の 4 つの値のいずれかになります。
値の表
次の表は、全体的なネットワーク到達性の結果の各タイプの値を示しています。
全体的なネットワーク到達性の結果 | 説明 |
---|---|
Reachable |
次の 2 つのシナリオが考えられます。どちらの場合も、接続テストに構成の問題はありません。したがって、両方のシナリオが Reachable とみなされます。
|
Unreachable |
送信元から発信されたパケットは、送信先に到達する前にドロップされることが想定されます。すべてのトレースの最終状態が Drop になります。 |
Ambiguous |
この結果は、送信元エンドポイントと送信先エンドポイントがネットワーク内のテスト ロケーションを一意に識別せず、 この場合、複数のトレース間の最終状態は、異なる最終状態を返します。 |
Undetermined |
ネットワーク到達性を判別できませんでした。1 つのトレースの最終状態は 次のいずれかの理由により、送信元から送信先へのネットワーク到達性を判断できません。
|
複数のトレース
各構成分析には複数のトレースを含めることができます。これらのトレースの最終状態は異なる場合があります。たとえば、Google Cloud ロードバランサに n
バックエンド VM インスタンスが構成されている場合、このロードバランサの VIP へのパケットは n
トレースになる可能性があります。これらの n
トレースの最終状態は異なる場合があります。
分析によって複数のトレースが生成される可能性があるため、次のことが当てはまります。
- トレース結果が 1 つしかない場合、全体的なネットワーク到達性の結果は、トレースの最終状態と同じになります。
- 複数のトレース結果がある場合は、すべてのトレースに含まれる最終状態の分布に基づいて、全体的なネットワーク到達性の結果が計算されます。
結果のメタデータ
トレースの全体的なネットワーク到達性の結果に加えて、すべてのテスト結果には次のメタデータが含まれています。
- テストの状態が検証された時刻
- テストの失敗またはキャンセルのエラーの詳細
- 各トレースの詳細
テストの失敗またはキャンセルのエラーの詳細は、全体的なネットワーク到達性の結果にコードとメッセージとして示されます。たとえば、最終状態が Abort
のテストでは、Failed to pull initial config. An internal error occurred.
などのエラー メッセージが表示される場合があります。
初期状態
初期状態では、構成分析はネットワーク エンドポイントからの開始をシミュレーションします。
メッセージ | 説明 |
---|---|
START_FROM_INSTANCE |
パケットは Compute Engine インスタンスから発信されました。InstanceInfo メタデータは、接続テストによって入力されました。 |
START_FROM_INTERNET |
パケットはインターネットから発信されました。EndpointInfo メタデータは、接続テストによって入力されました。 |
START_FROM_PRIVATE_NETWORK |
パケットは、内部送信元 IP アドレスを持つ VPC ネットワークまたはオンプレミス ネットワークから発信されました。ソースがユーザーに表示される VPC ネットワークであった場合、接続テストによって NetworkInfo メタデータにネットワークの詳細が入力されました。 |
START_FROM_CLOUD_FUNCTION |
パケットが Cloud Run の関数から発信されました。CloudFunctionInfo メタデータは、接続テストによって入力されました。 |
START_FROM_CLOUD_RUN_REVISION |
パケットは Cloud Run サービスのリビジョンから発信されました。CloudRunRevisionInfo メタデータは、接続テストによって入力されました。 |
START_FROM_APP_ENGINE_VERSION |
パケットは App Engine スタンダード環境のサービスのバージョンから発信されました。AppEngineVersionInfo メタデータは、接続テストによって入力されました。 |
最終状態
最終状態は、Drop
、Abort
、Forward
、Deliver
のいずれかです。以下の各セクションの表には、状態ごとのメッセージと説明が含まれています。
ドロップ
次の理由でテスト ターゲットに到達できなかったため、接続テストはシミュレーションされたテストパケットをドロップしました。
メッセージ | 説明 |
---|---|
UNKNOWN_EXTERNAL_ADDRESS |
宛先の外部アドレスを既知のターゲットに解決することができません。 |
FOREIGN_IP_DISALLOWED |
ip_forward が有効になっている場合、VM インスタンスは外部 IP アドレスを持つパケットのみを送受信できます。つまり、送信先の外部 IP アドレスはなりすましチェックに失敗しました。 |
FIREWALL_RULE |
接続トラッキングにより許可されない場合は、ファイアウォール ルールによりドロップされます。 ブロック ファイアウォール ルールにパケットが一致するため、接続テストでテストパケットが拒否される場合があります。ただし、ファイアウォール ルールでの接続トラッキングにより、実際のデータプレーンではパケットが通過する可能性があります。接続トラッキングにより、既存の接続のパケットは、ファイアウォール ルールに関係なく戻ることができます。 |
NO_ROUTE |
ルートがないためドロップされました。 |
ROUTE_BLACKHOLE |
一致するルートのネクストホップが存在しないため、ドロップされました。 |
ROUTE_WRONG_NETWORK |
無効な構成または整合性のない構成を検出するで示すように、パケットが間違った(意図しない)ネットワークに送信されました。 |
PRIVATE_TRAFFIC_TO_INTERNET |
内部の送信先アドレスを持つパケットがインターネット ゲートウェイに送信されました。 |
PRIVATE_GOOGLE_ACCESS_DISALLOWED |
内部 IP アドレスのみを持つ VM インスタンスが Google API または Google サービスにアクセスしようとしましたが、限定公開の Google アクセスが有効になっていませんでした。 |
NO_EXTERNAL_ADDRESS |
内部 IP アドレスのみを持つ VM インスタンスが、ネクストホップがデフォルトのインターネット ゲートウェイであるルートを介して外部ホストにアクセスしようとしました。サブネットで Cloud NAT が有効になっていない場合、または別の種類のネクストホップ(プロキシ VM など)を使用するデフォルト ルートが他にない場合に予期されます。 |
UNKNOWN_INTERNAL_ADDRESS |
送信先の内部アドレスを既知のターゲットに解決できませんでした。 |
FORWARDING_RULE_MISMATCH |
転送ルールのプロトコルとポートがパケット ヘッダーと一致しなかったか、パケットがリージョン ロードバランサと同じリージョンから発信されていないか、同じリージョンに送信されていません。 |
FORWARDING_RULE_NO_INSTANCES |
転送ルールには構成されたバックエンドがありません。 |
FIREWALL_BLOCKING_LOAD_BALANCER_BACKEND_HEALTH_CHECK |
ファイアウォール ルールによって、バックエンドに対するヘルスチェック プローブがブロックされており、ロードバランサからのトラフィックに対してはバックエンドが利用できなくなりました。 Cloud Load Balancing のテスト シーケンスの一環として、構成分析ではヘルスチェックのプローブ パケットを Cloud Load Balancing バックエンドに送信することを許可するように既存のファイアウォール ルールが構成されていることを確認します。この構成チェックの結果は、 |
INSTANCE_NOT_RUNNING |
実行状態ではない VM インスタンスとの間でパケットがやり取りされました。 |
TRAFFIC_TYPE_BLOCKED |
トラフィックのタイプがブロックされ、ユーザーはこのトラフィックを有効にするファイアウォール ルールを構成できませんでした。詳細については、常にブロックされるトラフィックをご覧ください。 |
GKE_MASTER_UNAUTHORIZED_ACCESS |
Google Kubernetes Engine コントロール プレーン エンドポイントへのアクセスが承認されませんでした。詳細については、クラスタ エンドポイントへのアクセスをご覧ください。 |
DROPPED_INSIDE_GKE_SERVICE |
Google Kubernetes Engine サービス内でパケットがドロップされました。 |
CLOUD_SQL_INSTANCE_UNAUTHORIZED_ACCESS |
Cloud SQL インスタンス エンドポイントへのアクセスが許可されません。詳細については、承認済みネットワークでの認証をご覧ください。 |
DROPPED_INSIDE_CLOUD_SQL_SERVICE |
Cloud SQL サービス内でパケットがドロップされました。 |
GOOGLE_MANAGED_SERVICE_NO_PEERING |
送信元ネットワークと Google マネージド サービス ネットワークの間にピアリングがないため、パケットがドロップされました。 |
CLOUD_SQL_INSTANCE_NO_IP_ADDRESS |
Cloud SQL インスタンスにプライベート IP アドレスもパブリック IP アドレスもないため、パケットがドロップされました。 |
PSC_CONNECTION_NOT_ACCEPTED |
Private Service Connect を使用する公開サービスへの接続が許容されないため、パケットがドロップされました。 |
CLOUD_FUNCTION_NOT_ACTIVE |
Cloud Run 関数が有効でないため、パケットがドロップされました。 |
VPC_CONNECTOR_NOT_SET |
App Engine スタンダード環境のサービス、Cloud Run の関数、または Cloud Run のリビジョンにサーバーレス VPC アクセス コネクタが構成されていないため、パケットがドロップされました。 |
VPC_CONNECTOR_NOT_RUNNING |
サーバーレス VPC アクセス コネクタが実行されていないため、パケットがドロップされました。 |
CLOUD_RUN_REVISION_NOT_READY |
Cloud Run のリビジョンの準備ができておらず、トラフィックを処理できないため、パケットがドロップされました。 |
中止
ネットワーク構成へのアクセス権の欠如など、基本情報の欠如のために構成分析が中止されました。
この状態は通常、次の表に示すように、接続テストにホスト プロジェクトからサービス プロジェクトの構成を取得するための適切な権限がない場合に発生します。
メッセージ | 説明 |
---|---|
UNKNOWN_NETWORK |
不明なネットワークが原因で中止されました。共有 VPC ネットワークで、テストを実施するユーザーに、ホスト プロジェクトのネットワーク構成(ファイアウォール ルールやルートなど)へのアクセス権がないため、分析を続行できません。 接続テストを行う場合は、テストを実施するユーザーが、ホスト プロジェクト内に存在するルートなどのリソースの構成を読み取ることができる必要があります。これは、ネットワーク リソースがホスト プロジェクトに割り当てられているものの、実際のリソースはサービス プロジェクトに存在するために発生します。 |
UNKNOWN_IP |
分析に必要な IP アドレスが不明だったため、分析は中止されました。これは、ユーザー入力が正しくないか、指定された入力パラメータに基づく有効なエンドポイントが構成分析によって特定できなかったことが原因です。 共有 VPC ネットワークで、テストを実施しているユーザーがホスト プロジェクトのネットワーク構成にアクセスできませんでした。このアクセス権は、サービス プロジェクトの IP アドレスに対するテストに必要です。 |
UNKNOWN_PROJECT |
接続テストへの入力からプロジェクト情報を取得できなかったため、分析は中止されました。これは、ユーザーの入力が正しくないか、指定された入力パラメータに基づいて有効なプロジェクトを特定できなかったためです。 |
PERMISSION_DENIED |
ユーザーがテストの実施に必要なネットワーク構成のすべてまたは、一部にアクセスする権限を持っていなかったため、分析は中止されました。 |
NO_SOURCE_LOCATION |
テスト入力から有効な送信元エンドポイントを取得できなかったため、分析は中止されました。これは、ユーザー入力が正しくないか、指定された入力パラメータに基づいて有効な送信元エンドポイントを特定できなかったためです。 |
INVALID_ARGUMENT |
テスト入力で指定された送信元エンドポイントや送信先エンドポイントが無効だったため、分析は中止されました。このメッセージが表示されたことに関して考えられる原因には次のものがあります。
|
NO_EXTERNAL_IP |
トラフィックがパブリック IP アドレスから外部 IP アドレスを持たない VM インスタンスに送信されたため、分析は中止されました。 |
UNINTENDED_DESTINATION |
テスト入力で指定された宛先情報に一致するトレースがなかったため、分析は中止されました。 |
TRACE_TOO_LONG |
トレースのステップ数が特定の上限を超えたため、分析は中止されました。この問題は、ルーティング ループが原因である可能性があります。 |
INTERNAL_ERROR |
内部サーバーエラーにより中止されました。 |
SOURCE_ENDPOINT_NOT_FOUND |
ソース エンドポイントが見つからないため、中止されました。 |
MISMATCHED_SOURCE_NETWORK |
ソース ネットワークがソース エンドポイントと一致しないため、中止されました。 |
DESTINATION_ENDPOINT_NOT_FOUND |
宛先エンドポイントが見つからないため、中止されました。 |
MISMATCHED_DESTINATION_NETWORK |
宛先ネットワークが宛先エンドポイントと一致しないため、中止されました。 |
転送
次の理由で、分析が特定のエンドポイントで停止し、それ以上は実行できませんでした。
- ユーザーが権限を持っている構成に基づいて分析が部分的に完了している。
- テストパケットが、不明な構成のネットワークに転送された。
- 既知の構成に従ってテスト ターゲットがドロップされず、テストパケットが、接続テストが公開設定されていないネットワークに転送されている。
メッセージ | 転送済み |
---|---|
PEERING_VPC |
ピア VPC ネットワーク |
VPN_GATEWAY |
Cloud VPN ゲートウェイ |
INTERCONNECT |
Cloud Interconnect 接続 |
GKE_MASTER |
GKE コントロール プレーン |
IMPORTED_CUSTOM_ROUTE_NEXT_HOP |
ピアリングした VPC ネットワークからインポートされたカスタムルートのネクストホップ |
CLOUD_SQL_INSTANCE |
Cloud SQL インスタンス |
配信
ターゲットに到達し、シミュレートされたテストパケットを配信できました。
最終状態が Deliver
の場合、トラフィックがデータプレーンを通過できることが保証されるわけではありません。分析の目的は、トラフィックのドロップを引き起こす可能性がある構成の問題を検証することです。
メッセージ | ターゲット |
---|---|
INSTANCE |
Compute Engine VM インスタンス |
INTERNET |
インターネット |
GOOGLE_API |
Google API |
GKE_MASTER |
GKE コントロール プレーン |
CLOUD_SQL_INSTANCE |
Cloud SQL インスタンス |
PSC_GOOGLE_API |
Private Service Connect を使用するすべての Google API とサービス |
PSC_VPC_SC |
Private Service Connect を使用する VPC Service Controls |
PSC_PUBLISHED_SERVICE |
Private Service Connect を使用する公開サービス |
メタデータ
構成分析では、最終状態に関する次のメタデータが表示されます。
メタデータ名 | 説明 |
---|---|
AbortInfo |
最終状態 Abort の原因と、この状態の原因となったリソース URI。 |
DropInfo |
最終状態 Drop の原因と、この状態の原因となったリソース URI。 |
ForwardInfo |
テストパケットが最終的に転送されたターゲット タイプとターゲット リソース URI(最終状態 Forward )。 |
その他の状態
テストパケットは、いずれかの最終状態に到達する前に、中間状態(構成チェック状態、転送状態、移行状態、特別な状態)を通過します。
構成チェック状態
構成チェック状態の間に、接続テストはシミュレーションされたネットワーク パス内の Google Cloud リソースの構成を確認し、リソース構成が有効であること、その構成によりシミュレーションされたテストパケットがネットワーク パス経由で続行できることを検証します。
必要に応じて、構成分析はなりすましチェックを行います。
メッセージ | 説明 |
---|---|
APPLY_INGRESS_FIREWALL_RULE |
上り(内向き)ファイアウォール ルールを検証しました。 |
APPLY_EGRESS_FIREWALL_RULE |
下り(外向き)ファイアウォール ルールを検証しました。 |
APPLY_ROUTE |
ルートを検証しました。 |
APPLY_FORWARDING_RULE |
転送ルールに一致しました。 |
SPOOFING_APPROVED |
パケットは外部 IP アドレスで送受信されていますが、許可されます。詳細については、なりすましチェックをご覧ください。 |
転送状態
転送状態の間に、接続テストはテストパスの中間 Google Cloud リソース(Cloud VPN ゲートウェイや Google Cloud ロードバランサに到着するパケットなど)に到達するパケットをシミュレーションします。
メッセージ | 説明 |
---|---|
ARRIVE_AT_INSTANCE |
Compute Engine VM インスタンスに到着しました。 |
ARRIVE_AT_INTERNAL_LOAD_BALANCER |
プライベート IP アドレスを VIP として使用する Google Cloud ロードバランサに到着しました。 |
ARRIVE_AT_EXTERNAL_LOAD_BALANCER |
Google Cloud ロードバランサのパブリック IP アドレスに到着しました。 |
ARRIVE_AT_VPN_GATEWAY |
Cloud VPN ゲートウェイに到着しました。 |
ARRIVE_AT_VPN_TUNNEL |
Cloud VPN トンネルに到着しました。 |
ARRIVE_AT_VPC_CONNECTOR |
サーバーレス VPC アクセス コネクタに到着しました。 |
移行状態
移行状態の間、接続テストはパケットが変更された(Cloud NAT がパケット ヘッダーを変換した、Google Cloud Load Balancing プロキシが終了して VM インスタンスへの受信 TCP が再開始されたなど)シミュレーション構成を検証します。
メッセージ | 説明 |
---|---|
NAT |
パケット ヘッダーが変換されました。 |
PROXY_CONNECTION |
元の接続が終了し、新しいプロキシ接続が開始されました。 |
特別な状態
この場合、テスト閲覧者には 1 つ以上の Google Cloud リソースを表示する権限がありません。詳細については、テスト権限をご覧ください。
メタデータ名 | 説明 |
---|---|
VIEWER_PERMISSION_MISSING |
テスト結果の閲覧者には、このステップで Google Cloud リソースの構成を表示する権限がありません。 |
リソース メタデータ
接続テストは、確認する Google Cloud リソース構成に関する次のメタデータを示します。
メタデータ名 | 説明 |
---|---|
EndpointInfo |
テストに使用されるエンドポイント。接続テストでは、送信元エンドポイントと送信先エンドポイントから EndpointInfo を取得し、データプレーンのモデルを使用してこの情報を検証します。 |
FirewallInfo |
ファイアウォール ルールに関連付けられたメタデータ。 |
ForwardingRuleInfo |
VPC 転送ルールに関連付けられたメタデータ。 |
InstanceInfo |
Compute Engine VM インスタンスに関連付けられたメタデータ。 |
LoadBalancerInfo |
Google Cloud ロードバランサに関連付けられたメタデータ。 |
NetworkInfo |
VPC ネットワークに関連付けられたメタデータ。 |
RouteInfo |
VPC ネットワーク ルートに関連付けられたメタデータ。 |
AppEngineVersionInfo |
App Engine スタンダード環境のサービスのバージョンに関連付けられたメタデータ。 |
CloudRunRevisionInfo |
Cloud Run のリビジョンに関連付けられたメタデータ。 |
CloudFunctionInfo |
Cloud Run の関数に関連付けられたメタデータ。 |
VpcConnectorInfo |
サーバーレス VPC アクセス コネクタに関連付けられたメタデータ。 |