このページでは、接続テストでネットワーク到達性を測定する方法について説明します。また、構成分析とライブ データプレーン分析の仕組みについても説明します。
ネットワーク到達性について
ファイアウォールやルートなどのネットワーク構成でトラフィックが相互に送受信されている場合、リソースは別のエンドポイントから到達可能です。たとえば、ネットワーク構成で VM1 が VM2 にパケットを送信できるようにする必要がある場合、VM2 は VM1 から到達可能であると言えます。
接続テストで到達可能性を測定する方法については、次の点に注意してください。
- 接続テストは、特定の送信元から特定の宛先へのネットワーク到達性を測定します。VM1 が VM2 に接続できるということは、必ずしも VM3 が VM2 に到達できるというわけではありません。
- 接続テストは単一方向のネットワーク到達性を測定します。VM1 が VM2 への接続が確立できても、VM2 が VM1 との接続を確立できるわけではありません。ファイアウォール ルールで 1 方向のトラフィックが許可され、逆方向は許可されない場合があります。
- 接続テストは、特定のプロトコルと宛先ポートのネットワーク到達性を測定します。VM1 が
tcp:443
で VM2 に到達できても、tcp:80
で到達できるわけではありません。 - 接続テストでは、送信元から宛先へのパケット配信に影響する可能性がある Google Cloud VPC ネットワークの構成のみをテストします。宛先で有効なサーバーが実行されているかどうか、オペレーティング システムのファイアウォール ルールによってトラフィックがブロックされるかどうか、セキュリティ ソフトウェアがウイルス ペイロードを含むパケットをブロックするかどうかは確認されません。
ネットワーク到達性の概念は、グラフ理論からきています。概念的には、ネットワーク到達性グラフ全体には、すべてのエンドポイントがノードとして含まれ、方向エッジは送信元ノードから宛先ノードへのネットワーク到達性を示します。
ネットワーク到達性分析とは、ネットワークの到達性を判断するために実施できる一連の分析を表す、より一般的な用語です。ネットワーク到達性分析のユースケースの 1 つが接続テストです。この場合の接続性とは、ネットワーク接続の状態を指します。
ネットワーク転送パスに沿ったすべてのステップで、ネットワーク到達性分析がテストされ、基礎となるネットワーク構成の結果が提供されます。たとえば、接続テストでは、シミュレーションされたテストパケットに適用される Google Cloud ファイアウォール ルールとルートが分析されます。
接続テストの仕組み
接続テストには、構成分析とライブ データプレーン分析という 2 つの主なコンポーネントがあります。このセクションでは、これら 2 種類の分析の仕組みについて説明します。
構成分析の仕組み
このセクションでは、接続テストとそのコンポーネントの仕組みについて説明します。
接続テストではネットワーク到達性の分析を行い、テストパス内の Google Cloud リソースと理想的な構成モデルを比較して評価します。さらに、ライブ データプレーン分析機能を使用してパケットを送信し、データプレーンの状態を検証して、サポートされている構成のベースライン情報を提供します。ダイナミック検証の仕組みの詳細については、ライブ データプレーン分析の仕組みをご覧ください。
ネットワーク管理者は、分析結果に影響を与える可能性がある多くの構成を制御できます。ただし、いくつかの例外が適用されます。たとえば、Cloud SQL インスタンスなどの Google マネージド サービスをホストする VPC ネットワークは制御できません。さらに、権限の制限により、ネットワークに影響する階層型ファイアウォール ポリシールールを制御できない場合があります。
接続テストを実施するときは、特定のパラメータ セットを入力し、フォーマットされた結果をネットワーク トレースかクエリの形式で受け取ります。接続テストでは、ネットワーク内に可能なパスが複数ある場合(送信先エンドポイントが複数のバックエンドを持つ Google Cloud ロードバランサの場合など)、複数のトレースが生成されます。
- 一致とは、シミュレーションされたパケットがテストパスを続行できる Google Cloud 構成が接続テストで見つかることを意味します。
- 一致なしとは、接続テストで一致が見つからないことを意味します。この場合、構成は存在しません。
- 拒否された一致とは、シミュレーションされたテストパケットがドロップされる Google Cloud 構成が接続テストで見つかることを意味します。
接続テストのコンポーネント
接続テストは、構成分析に必要な他のすべてのサブコンポーネントを含む最上位のコンポーネントです。コンポーネントは次のとおりです。
- 送信元エンドポイントと送信先エンドポイント
- テストとそのトレースのネットワーク到達性の詳細(構成分析で特定された全体的なネットワーク到達性の結果を含む)
- それぞれに 1 つ以上のステップがある 1 つ以上のトレース
- 各ステップの状態
各テストには一意の名前が付き、各ステップには状態とそれに関連付けられた Info
メタデータがあります。たとえば、ステップがルートをチェックする場合、RouteInfo
メタデータがそのステップに含まれます。
次の図は、ある Compute Engine VM インスタンスから別のインスタンスへのテストを示しています。テスト コンポーネントについては、以降のセクションで説明します。
送信元エンドポイントと送信先エンドポイント
接続テストの構成分析では、送信元ポートのない 5 タプルパケット ヘッダーがサポートされています。これは、送信元ポートが Google Cloud ネットワーク構成のリソースの検証に使用されていないためです。したがって、テストを実施するときに送信元ポートを提供する必要はありません。
パケット ヘッダーには、次のコンポーネントが含まれます。
- ネットワーク プロトコル
- 以下のいずれかで構成される送信元エンドポイント:
- VM インスタンス名
- 送信元 IP アドレス
- 送信元 App Engine サービス
- Cloud Run 関数(第 1 世代)環境
- Cloud Run サービス
- Cloud SQL インスタンス名
- GKE コントロール プレーンのクラスタ名
- 以下のいずれかとポート番号で構成される宛先エンドポイント:
- VM インスタンス名
- 宛先 IP アドレス
- Cloud SQL インスタンス名
- GKE コントロール プレーンのクラスタ名
- Private Service Connect エンドポイント
Google Cloud または Google Cloud 以外のネットワーク タイプを指定できます。また、ネットワーク タイプと IP アドレス(または VM インスタンス名)の組み合わせを指定して、ネットワークのロケーションを一意に識別することもできます。
VM、IP アドレス、Google マネージド サービスでは、次のネットワーク プロトコルがサポートされています。
- TCP
- UDP
- ICMP
- ESP
- AH
- SCTP
- IPIP
サーバーレス VPC アクセス コネクタでは、次のネットワーク プロトコルがサポートされています。
- TCP
- UDP
TCP または UDP プロトコルの送信先ポートがサポートされています。ポートを指定しない場合、デフォルト設定はポート 80
です。
トレース、ステップ、状態
構成分析には 1 つ以上のトレースが含まれています。各トレースは、テストでシミュレーションされた、1 つの一意のパケット転送パスを表します。
- 各トレースには、順序付けされた複数のステップが含まれています。
- 各ステップには、接続テストがそのステップの有無をチェックする Google Cloud 構成に関連する状態が含まれています。
- 状態は、非最終状態と最終状態に分類されます。
非最終状態
非最終状態は、テストパスの各 Google Cloud リソース(VM インスタンス、エンドポイント、ファイアウォール ルール、ルート、Google Cloud ロードバランサなど)に対する構成チェックを表します。
非最終状態には、次の 4 つの状態があります。
- 初期
- 構成チェック
- 転送
- 移行
詳細については、構成分析の状態をご覧ください。
最終状態
各トレースは、トレースの最後のステップである最終状態で終了する必要があります。
最終状態には、次の 4 つの状態があります。
Drop
Abort
Forward
Deliver
各状態には、それに関連付けられた理由があります。詳しくは、最終状態の詳細をご覧ください。
全体的なネットワーク到達性の結果
構成分析は、Reachable
、Unreachable
、Ambiguous
、Undetermined
の 4 つの値のいずれかになる、全体的なネットワーク到達性の結果も提供します。
全体的なネットワーク到達性の結果を知ることは、モニタリングまたは自動化の設定に役立ちます。
詳細については、全体的なネットワーク到達性の結果をご覧ください。
なりすましチェック
接続テストは、VM インスタンスとの間のシミュレートされたパケットが、そのインスタンスが所有していない IP アドレスを使用している場合に、なりすましチェックを実施します。VM が所有する IP アドレスには、すべての VM 内部 IP アドレスとセカンダリ IP アドレスが含まれます。
アドレスが、外部トラフィックから発信されているように見せかけたアドレス(外部アドレスとも呼ばれる)である場合、その IP アドレスはなりすましチェックに合格しません。
メタデータ
各状態には、Info
フィールドの形式でメタデータを関連付けることができます。たとえば、InstanceInfo
には、名前や IP アドレスなど、VM インスタンスの詳細が含まれています。
構成分析では、テスト自体のメタデータとテストの各ステップのメタデータが提供されます。
ライブ データプレーン分析の仕組み
ライブ データプレーン分析のプローブ メカニズムにはゲスト OS は含まれず、ユーザーには完全に透過的です。プローブは、送信元エンドポイントの代わりにネットワークに挿入され、宛先エンドポイントに配信される直前に破棄されます。プローブは、通常のネットワーク課金、テレメトリ指標、フローログから除外されます。
次のステップ
ICMP の問題を特定して修正する(チュートリアル)