接続テストを作成して実行する

このページの手順に沿って、接続テストを実施する方法を習得します。

1 つ以上のテストを編集または削除するには、テストを更新または削除するをご覧ください。

接続テストの詳細については、概要をご覧ください。

始める前に

接続テストを行う前に、Google Cloud で次の項目を設定します。

  1. Google Cloud Console でプロジェクト セレクタ ページに移動します。

    プロジェクト セレクタに移動

    Google Cloud プロジェクトを選択または作成します。

  2. Google Cloud プロジェクトで課金が有効になっていることを確認します。
  3. Google Cloud SDK の一部である Google Cloud CLI をインストールします。最新バージョンの gcloud CLI をインストールするには、gcloud CLI のドキュメントをご覧ください。

    全コマンドの一覧については、gcloud コマンド リファレンスをご覧ください。

  4. Network Management API を有効にします。API を有効にすると、次のものが提供されます。

    • Network Management API を使用した API 呼び出しのサンプル

      API Explorer を使用すると、Network Management API コマンドをテストできます。Network Management API リファレンス ドキュメントで、Try this API 列を使用して API フィールドを調べ、テストを実施します。

    • API Python クライアントを使用したサンプルコード

      このサンプルコードは、Network Management API とやり取りする api という名前のリソースを作成していることを前提としています。リソースを作成するには、build 関数を使用します。次の例をご覧ください。

      from googleapiclient.discovery import build
      api = build('networkmanagement', 'v1')
      

      API Python クライアントの詳細については、次をご覧ください。

  5. テストの実行と確認に必要な権限を取得します。詳しくは、アクセス権の割り当てをご覧ください。

接続テストを実施する

接続テストを実施するときは、テスト入力を送信元ポートのない 5 タプルとして提供します。

次のセクションでは、一般的な使用例で説明されている送信元エンドポイントと宛先エンドポイントのテストを実施する方法を示します。

Google Cloud コンソールで、次のいずれかを使用して接続テストを実施できます。

  • [ネットワーキング] > [Network Intelligence Center] メニューからアクセスできる [接続テスト] ページ

  • Compute Engine 仮想マシン(VM)インスタンスのネットワーク インターフェースの [ネットワーク インターフェースの詳細] ページ。このページを使用する場合は、テストのソースまたは宛先として、現在のネットワーク インターフェースを使用する必要があります。このページには、現在のネットワーク インターフェースに関連するテストのみが一覧表示されます。

作成した各テストは、作成した直後に実施され、接続テストリソースに保存されます。テストは削除されるまで存在します。

テスト オペレーションの実行中にそのステータスを確認するには、実行中のテスト オペレーションのチェックをご覧ください。テスト オペレーションには、たとえば creatererun があります。

送信元または宛先エンドポイントに IP アドレスを使用する場合は、追加のフィールドを指定する必要があります。

ベスト プラクティス

  • 共有 VPC サービス プロジェクトにあるエンドポイント(VM または IP アドレス)をテストする際は、サービス プロジェクトからテストを実施する方が便利です。これは、Google Cloud コンソールのプルダウン ボックスで VM または IP アドレスを選択できるためです。

    ただし、ネットワークがホスト プロジェクト内にあるため、Virtual Private Cloud(VPC)ネットワークを指定する前にホスト プロジェクトを指定する必要があります。詳細については、共有 VPC ネットワークで IP アドレスをテストするをご覧ください。

  • VPC ネットワークとピア ネットワークまたはオンプレミス ネットワークの間でテストを実施する場合、オンプレミスの IP アドレスを送信元として使用し、VPC ネットワーク内の VM インスタンスまたは IP アドレスを宛先として使用することで、別の接続テストの実施時に役立ちます。

    このタイプのテストにより、Google Cloud がオンプレミス ネットワークに想定どおりにルートをアドバタイジングしていることが確認されます。ただし、接続テストでは、オンプレミス ネットワークがこれらのルートを受信して実装したかどうかは確認されません。

  • 接続テストが構成の更新を受信して分析に組み入れるまでには、20~120 秒かかります。構成を変更してすぐにテストを実行した場合、期待する結果が得られない可能性があります。構成を変更した後は、十分に待ってからテストを行うようにしてください。

    この遅延は、ライブ データプレーン分析には適用されません。そのため、ライブデータ プレーン分析と構成分析が示す結果の間に、一時的に不整合が生じる場合があります。たとえば、ファイアウォール ルールを追加すると、ライブデータプレーン分析でアクセスされることがあります。構成分析に関しては、アクセスできるようになるまでしばらく待たなければならない場合があります。

複数のネットワーク インターフェースを持つ VM との間のテスト

このセクションでは、VM のプライマリ以外のネットワーク インターフェースとの間でテストを行う方法について説明します。

コンソール

複数のネットワーク インターフェースを持つ VM インスタンスをテストのソースまたは宛先として指定すると、接続テストでは、リストからネットワーク インターフェースを選択するよう求められます。

また、[ネットワーク インターフェースの詳細] ページから、Compute Engine VM インスタンスのネットワーク インターフェースをテストできます。このページを使用する場合は、テストのソースまたは宛先として、現在のネットワーク インターフェースを使用する必要があります。

gcloud と API

次のいずれかの方法で、テストに使用するネットワーク インターフェースを指定する必要があります。

  • IP アドレスとネットワーク URI
  • IP アドレスと VM URI
  • ネットワーク URI と VM URI

複数のインターフェースを持つ VM の URI のみを提供すると、VM のプライマリ インターフェースのみが選択されます。

プロジェクトのすべてのテストを一覧表示する

コンソール

  1. Google Cloud コンソールで、[接続テスト] ページに移動します。

    [接続テスト] に移動

  2. ページの上部にあるプルダウン メニューでプロジェクトを選択します。
  3. [接続テスト] ページが更新され、そのプロジェクトのテストが表示されます。

gcloud

プロジェクトが所有するすべてのテストを一覧表示するには、次の gcloud コマンドを入力します。このコマンドにより、現在選択されているプロジェクトのテストが表示されます。

  gcloud network-management connectivity-tests list

特定のプロジェクトのテストを一覧表示するには、PROJECT_ID を指定します。

  gcloud network-management connectivity-tests list --project=PROJECT_ID

API

プロジェクトが所有する既存の全テストを一覧表示するには、projects.locations.global.connectivityTests.list メソッドを使用します。

GET https://networkmanagement.googleapis.com/v1/{parent=projects/PROJECT_ID/locations/global}/connectivityTests
  • PROJECT_ID は、一覧表示するテストが含まれているプロジェクトのプロジェクト ID に置き換えます。

Python

次のサンプルコードは、プロジェクトが所有する既存のすべてのテストを一覧表示します。詳細については、Python 用 Google API クライアント ライブラリの list をご覧ください。

project_id = "PROJECT_ID"
parent = 'projects/%s/locations/global' % project_id
request = api.projects().locations().global_().connectivityTests().list(parent=parent)
print(json.dumps(request.execute(), indent=4))

PROJECT_ID は、一覧表示するテストが含まれているプロジェクトのプロジェクト ID に置き換えます。

VPC ネットワークの VM インスタンス間のテスト

この手順は、両方の VM インスタンスが同じ Google Cloud プロジェクトにあることを前提としています。

コンソール

接続テストのメインページから

  1. Google Cloud コンソールで、[接続テスト] ページに移動します。

    [接続テスト] に移動

    残りの手順は、Google Cloud コンソールに自動的に表示されます。

  2. [接続テストを作成] を選択します。
  3. [テスト名] フィールドにテストの名前を入力します。
  4. [プロトコル] リストでプロトコルを選択します。
  5. [ソース] で次の操作を行います。
    1. [送信元エンドポイント] メニューで [VM インスタンス] を選択します。
    2. [送信元 VM インスタンス] メニューで、特定の送信元 VM インスタンスを選択します。
    3. [ソース ネットワーク インターフェース] メニューで、ネットワーク インターフェースを選択します。

      VM インスタンスに複数のネットワーク インターフェースがある場合は、ソースの場所を一意に識別する VM ネットワーク インターフェースを選択します。

    4. 省略可: リストから送信元 IP アドレスを選択します。デフォルトは、送信元 VM インスタンスの IP アドレスです。
  6. [宛先] で、次の操作を行います。
    1. [宛先エンドポイント] メニューで [VM インスタンス] を選択します。
    2. [宛先 VM インスタンス] メニューで、特定の宛先 VM インスタンスを選択します。
    3. [宛先ネットワーク インターフェース] メニューで、ネットワーク インターフェースを選択します。

      VM インスタンスに複数のネットワーク インターフェースがある場合は、VM ネットワーク インターフェースを選択して、宛先の場所を一意に識別します。

    4. 省略可: リストから宛先 IP アドレスを選択します。デフォルトは、宛先 VM インスタンスの IP アドレスです。
  7. 注: デュアルスタック インスタンスの場合、送信元 IP アドレスと宛先 IP アドレスは同じタイプでなければなりません。たとえば、IPv4 アドレスの VM から IPv6 アドレスの VM にテストを行うことはできません。

  8. [宛先ポート] フィールドに、宛先ポートを入力します。
  9. [作成] をクリックします。
  10. テストが終了すると、[接続テスト] のメインページが読み込まれ、このテストと他のテストを含むリストが表示されます。テスト結果を表示するに進みます。

ネットワーク インターフェースの詳細ページから

  1. Google Cloud コンソールで、[VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. まだ選択していない場合は、テスト対象のインスタンスを含むプロジェクトを選択します。
  3. テストの実施に使用するインスタンスをクリックします。
  4. [ネットワーク インターフェース] で、テストの実施に使用するネットワーク インターフェースを選択します。

    VM インスタンスに複数のネットワーク インターフェースがある場合は、VM ネットワーク インターフェースを選択して、宛先の場所を一意に識別します。

  5. [ネットワーク分析] で [接続テストを作成] をクリックし、次の操作を行います。

    1. [テスト名] フィールドにテストの名前を入力します。
    2. [プロトコル] リストでプロトコルを選択します。
    3. [ソース] で、[現在のネットワーク インターフェース] または [その他] を選択できます。

      [現在のネットワーク インターフェース] を選択した場合は、次の操作を行います。

      1. [宛先エンドポイント] メニューで [VM インスタンス] を選択します。
      2. [宛先 VM インスタンス] メニューで、インスタンスを選択します。
      3. [宛先ネットワーク インターフェース] メニューで、ネットワーク インターフェースを選択します。
      4. 省略可: 宛先 IP アドレスを選択します。デフォルトは、宛先 VM インスタンスの IP アドレスです。

      [その他] を選択した場合は、次の操作を行います。

      1. [送信元エンドポイント] メニューで [VM インスタンス] を選択します。
      2. [送信元 VM インスタンス] メニューで、インスタンスを選択します。
      3. [ソース ネットワーク インターフェース] メニューで、ネットワーク インターフェースを選択します。
      4. 省略可: 送信元 IP アドレスを選択します。デフォルトは、送信元 VM インスタンスの IP アドレスです。
    4. [宛先ポート] フィールドに、指定した宛先の宛先ポートを入力します。

    5. [作成] をクリックします。

  6. テストが終了すると、[接続テスト] のメインページが読み込まれ、このテストと他のテストを含むリストが表示されます。テスト結果を表示するに進みます。

gcloud

サンプル値は、実際の VPC ネットワークの値で置き換えてください。

gcloud network-management connectivity-tests create NAME \
    --source-instance=SOURCE_INSTANCE \
    --source-ip-address=SOURCE_IP_ADDRESS \
    --destination-instance=DESTINATION_INSTANCE \
    --destination-ip-address=DESTINATION_IP_ADDRESS \
    --destination-port=DESTINATION_PORT \
    --protocol=PROTOCOL

次のように置き換えます。

  • NAME: 接続テストの名前。
  • SOURCE_INSTANCE: ソース VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-1)。
  • SOURCE_IP_ADDRESS: テスト元のソース VM インスタンスの IP アドレス。IP アドレスは、ソース VM インスタンスの IP アドレスのいずれかである必要があります。
  • DESTINATION_INSTANCE: 宛先 VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-2)。
  • DESTINATION_IP_ADDRESS: テストの宛先 VM インスタンスの IP アドレス。IP アドレスは、宛先 VM インスタンスの IP アドレスのいずれかにする必要があります。
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

Terraform

Terraform リソースを使用して、VPC ネットワーク内の 2 つの VM インスタンス間でテストを作成できます。

resource "google_network_management_connectivity_test" "instance_test" {
  name = "conn-test-instances"
  source {
    instance = google_compute_instance.source.id
  }

  destination {
    instance = google_compute_instance.destination.id
    port     = "80"
  }

  protocol = "TCP"
}

resource "google_compute_instance" "source" {
  name         = "source-vm"
  machine_type = "e2-medium"

  boot_disk {
    initialize_params {
      image = data.google_compute_image.debian_9.id
    }
  }

  network_interface {
    network = "default"
    access_config {
    }
  }
}

resource "google_compute_instance" "destination" {
  name         = "dest-vm"
  machine_type = "e2-medium"

  boot_disk {
    initialize_params {
      image = data.google_compute_image.debian_9.id
    }
  }

  network_interface {
    network = "default"
    access_config {
    }
  }
}

data "google_compute_image" "debian_9" {
  family  = "debian-11"
  project = "debian-cloud"
}

API

次のテストの例では、既存のネットワーク構成で VM instance1 が VM instance2 に ping できるかどうかを確認します。

projects.locations.global.connectivityTests.create メソッドを使用します。

 POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
   {
     "source": {
       "instance": "SOURCE_INSTANCE",
       "ipAddress": "SOURCE_IP_ADDRESS",
     },
     "destination": {
       "instance": "DESTINATION_INSTANCE",
       "ipAddress": "DESTINATION_IP_ADDRESS",
     },
     "protocol": "PROTOCOL",
   }'

次のように置き換えます。

  • PROJECT_ID: ソース VM のプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。
  • SOURCE_INSTANCE: ソース VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-1)。
  • SOURCE_IP_ADDRESS: テスト元のソース VM インスタンスの IP アドレス。IP アドレスは、ソース VM インスタンスの IP アドレスのいずれかである必要があります。
  • DESTINATION_INSTANCE: 宛先 VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-2)。
  • DESTINATION_IP_ADDRESS: テストの宛先 VM インスタンスの IP アドレス。IP アドレスは、宛先 VM インスタンスの IP アドレスのいずれかにする必要があります。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

Python

次のサンプルコードは、2 つの VM インスタンス間でテストを作成します。詳細については、Python 用 Google API クライアント ライブラリの create をご覧ください。

test_input = {
  "source": {
      "instance":
          "SOURCE_INSTANCE",
      "ipAddress":
          "SOURCE_IP_ADDRESS",
      "projectId":
          "SOURCE_INSTANCE_PROJECT_ID"
  },
  "destination": {
      "instance":
          "DESTINATION_INSTANCE",
      "ipAddress":
          "DESTINATION_IP_ADDRESS",
      "projectId":
          "DESTINATION_INSTANCE_PROJECT_ID"
  },
  "protocol":
      "PROTOCOL",
}

request = api.projects().locations().global_().connectivityTests().create(
    parent="projects/PROJECT_ID/locations/global",
    testId="TEST_ID",
    body=test_input)

print(json.dumps(request.execute(), indent=4))

次のように置き換えます。

  • SOURCE_INSTANCE: ソース VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-1)。
  • SOURCE_IP_ADDRESS: テスト元のソース VM インスタンスの IP アドレス。IP アドレスは、ソース VM インスタンスの IP アドレスのいずれかである必要があります。
  • SOURCE_INSTANCE_PROJECT_ID: ソース VM のプロジェクト ID。
  • DESTINATION_INSTANCE: 宛先 VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-2)。
  • DESTINATION_IP_ADDRESS: テストの宛先 VM インスタンスの IP アドレス。IP アドレスは、宛先 VM インスタンスの IP アドレスのいずれかにする必要があります。
  • DESTINATION_INSTANCE_PROJECT_ID: 宛先 VM のプロジェクト ID。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。
  • PROJECT_ID: テストを作成するプロジェクトのプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。

VPC ネットワーク内のプライベート IP アドレス間のテスト

この例では、両方の IP アドレスが同じ Google Cloud プロジェクトおよび同じ VPC ネットワーク内のプライベート IP アドレスであることを前提としています。

ピアリングされた VPC ネットワーク間でテストする場合は、各ピアのソース ネットワークと宛先ネットワークを選択します。

コンソール

  1. Google Cloud コンソールで、[接続テスト] ページに移動します。

    [接続テスト] に移動

    残りの手順は、Google Cloud コンソールに自動的に表示されます。

  2. [接続テストを作成] を選択します。

  3. [テスト名] フィールドにテストの名前を入力します。
  4. [プロトコル] リストでプロトコルを選択します。
  5. [ソース] で次の操作を行います。

    1. [送信元エンドポイント] リストで、[IP アドレス] を選択します。
    2. [送信元 IP アドレス] フィールドに、送信元 IP アドレスを入力します。
    3. 送信元 IP アドレスの VPC ネットワークが現在のプロジェクトにある場合は、[これは Google Cloud で使用される IP アドレスです] チェックボックスをオフにします。

      VPC ネットワークが別のプロジェクトにある場合、[送信元 IP アドレスまたはサービス プロジェクト] フィールドで、ネットワークが配置されているプロジェクトを選択します。

      IP アドレスが RFC 1918 アドレス空間に含まれない場合は、[I confirm that the source endpoint resides in a range outside of the RFC 1918 address space] チェックボックスをオンにします。次に、[ソース ネットワーク] リストで、送信元 IP アドレスを含むネットワークを選択します。

  6. [宛先] で、次の操作を行います。

    1. [宛先エンドポイント] リストで、[IP アドレス] を選択します。
    2. [宛先 IP アドレス] フィールドに、宛先 IP アドレスを入力します。
    3. 宛先 IP アドレスの VPC ネットワークが現在のプロジェクトにある場合は、[これは Google Cloud で使用される IP アドレスです] チェックボックスをオフにします。

      VPC ネットワークが別のプロジェクトにある場合、[宛先 IP アドレスまたはサービス プロジェクト] フィールドで、ネットワークが配置されているプロジェクトを選択します。

      IP アドレスが RFC 1918 アドレス空間に含まれない場合は、[I confirm that the destination endpoint resides in a range outside of the RFC 1918 address space] チェックボックスをオンにします。次に、[宛先ネットワーク] リストで、宛先 IP アドレスを含むネットワークを選択します。

  7. [宛先ポート] フィールドに、有効な宛先ポート番号を入力します。この番号は 0~65535 の範囲で指定する必要があります。
  8. [作成] をクリックします。

テストが終了すると、[接続テスト] のメインページが読み込まれ、このテストと他のテストを含むリストが表示されます。テスト結果を表示するに進みます。

gcloud

コマンド オプションの変数は、VPC ネットワークの値に置き換えてください。

gcloud network-management connectivity-tests create NAME \
    --source-ip-address=SOURCE_IP_ADDRESS \
    --source-network=SOURCE_NETWORK \
    --destination-ip-address=DESTINATION_IP_ADDRESS \
    --destination-network=DESTINATION_NETWORK \
    --destination-port=DESTINATION_PORT \
    --protocol=PROTOCOL

次のように置き換えます。

  • NAME: 接続テストの名前。
  • SOURCE_IP_ADDRESS: テストの送信元 IP アドレス。
  • SOURCE_NETWORK: 送信元 IP アドレスがある VPC ネットワークの URI(例: projects/myproject/global/networks/default)。
  • DESTINATION_IP_ADDRESS: テストする内部または外部の宛先 IP アドレス。
  • DESTINATION_NETWORK: 宛先 IP アドレスがある VPC ネットワークの URI(例: projects/myproject/global/networks/network-a)。
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。デフォルトはポート 80 です。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

ネットワークが不明の場合、またはネットワークにアクセスする権限がない場合は、ネットワーク URI を指定する代わりに、ネットワークを GCP_NETWORK として指定できます。

IP アドレスが Google Cloud 内にあるかどうかや、送信元エンドポイントと宛先エンドポイントが RFC 1918 アドレス空間に含まれないかどうかを確認する必要はありません。これらのパラメータは、送信元 IP アドレスと宛先 IP アドレスに基づいて自動的に選択されます。

gcloud network-management connectivity-tests create NAME \
    --source-ip-address=SOURCE_IP_ADDRESS \
    [--source-network-type=GCP_NETWORK] \
    --destination-instance=DESTINATION_INSTANCE  \
    --destination-ip-address=DESTINATION_IP_ADDRESS \
    --destination-port=DESTINATION_PORT \
    --protocol=PROTOCOL

次のように置き換えます。

  • NAME: 接続テストの名前。
  • SOURCE_IP_ADDRESS: テストの送信元 IP アドレス。
  • SOURCE_NETWORK_TYPE: ソースがあるネットワークのタイプ。この場合は、GCP_NETWORK という値を使用します。
  • DESTINATION_INSTANCE: 宛先 VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-2)。
  • DESTINATION_IP_ADDRESS: テストする内部または外部の宛先 IP アドレス。
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。デフォルトはポート 80 です。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

Google Cloud の外部 IP アドレスとして送信元 IP アドレスを指定する場合は、NON_GCP_NETWORKnetworkType を指定する必要があります。次のコマンドで、各値は実際の VPC ネットワークの値に置き換えてください。

gcloud network-management connectivity-tests create NAME \
    --source-ip-address=SOURCE_IP_ADDRESS \
    --source-network-type=NON_GCP_NETWORK \
    --destination-ip-address= DESTINATION_IP_ADDRESS \
    --destination-network=DESTINATION_NETWORK \
    --destination-port=DESTINATION_PORT \
    --protocol=PROTOCOL

次のように置き換えます。

  • NAME: 接続テストの名前。
  • SOURCE_IP_ADDRESS: テストの送信元 IP アドレス。
  • SOURCE_NETWORK_TYPE: ソースがあるネットワークのタイプ。この場合は、NON_GCP_NETWORK という値を使用します。
  • DESTINATION_IP_ADDRESS: テストする内部または外部の宛先 IP アドレス。
  • DESTINATION_NETWORK: 宛先 IP アドレスがある VPC ネットワークの URI(例: projects/myproject/global/networks/default)。
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

Terraform

Terraform リソースを使用して、VPC ネットワーク内の 2 つの IP アドレス間でテストを作成できます。

IP アドレスが Google Cloud 内にあるかどうかや、送信元エンドポイントと宛先エンドポイントが RFC 1918 アドレス空間に含まれないかどうかを確認する必要はありません。これらのパラメータは、送信元 IP アドレスと宛先 IP アドレスに基づいて自動的に選択されます。

resource "google_network_management_connectivity_test" "default" {
  name = "conn-test-addr"
  source {
    ip_address   = google_compute_address.source_addr.address
    project_id   = google_compute_address.source_addr.project
    network      = google_compute_network.default.id
    network_type = "GCP_NETWORK"
  }

  destination {
    ip_address = google_compute_address.dest_addr.address
    project_id = google_compute_address.dest_addr.project
    network    = google_compute_network.default.id
    port       = "80"
  }

  protocol = "UDP"
}

resource "google_compute_network" "default" {
  name                    = "connectivity-vpc"
  auto_create_subnetworks = false
}

resource "google_compute_subnetwork" "default" {
  name          = "connectivity-vpc-subnet"
  ip_cidr_range = "10.0.0.0/8"
  region        = "us-central1"
  network       = google_compute_network.default.id
}

resource "google_compute_firewall" "default" {
  name    = "allow-incoming-all"
  network = google_compute_network.default.name

  allow {
    protocol = "all"
  }

  source_ranges = ["0.0.0.0/0"]
}

resource "google_compute_address" "source_addr" {
  name         = "src-addr"
  subnetwork   = google_compute_subnetwork.default.id
  address_type = "INTERNAL"
  address      = "10.0.0.42"
  region       = "us-central1"
}

resource "google_compute_address" "dest_addr" {
  name         = "dest-addr"
  subnetwork   = google_compute_subnetwork.default.id
  address_type = "INTERNAL"
  address      = "10.0.0.43"
  region       = "us-central1"
}

resource "google_compute_instance" "source" {
  name         = "source-vm1"
  machine_type = "e2-medium"
  zone         = "us-central1-a"

  boot_disk {
    initialize_params {
      image = data.google_compute_image.default.id
    }
  }

  network_interface {
    network    = google_compute_network.default.id
    subnetwork = google_compute_subnetwork.default.id
    network_ip = "10.0.0.42"
    access_config {
    }
  }
}

resource "google_compute_instance" "destination" {
  name         = "dest-vm1"
  machine_type = "e2-medium"
  zone         = "us-central1-a"

  boot_disk {
    initialize_params {
      image = data.google_compute_image.default.id
    }
  }

  network_interface {
    network    = google_compute_network.default.id
    subnetwork = google_compute_subnetwork.default.id
    network_ip = "10.0.0.43"
    access_config {
    }
  }
}

data "google_compute_image" "default" {
  family  = "debian-11"
  project = "debian-cloud"
}

API

この例では、送信元 IP アドレスから宛先 IP アドレスに ping が届くかどうかをテストします。

projects.locations.global.connectivityTests.create メソッドを使用します。

  POST https://reachability.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
  {
    "source": {
      "ipAddress": "SOURCE_IP_ADDRESS",
      "network": "SOURCE_NETWORK"
    },
    "destination": {
      "ipAddress": "DESTINATION_IP_ADDRESS",
      "network": "DESTINATION_NETWORK",
      "port": "DESTINATION_PORT",
    },
      "protocol": "PROTOCOL".
  }'

次のように置き換えます。

  • PROJECT_ID: ソース VM のプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。
  • SOURCE_IP_ADDRESS: テストの送信元 IP アドレス。
  • SOURCE_NETWORK: 送信元 IP アドレスがある VPC ネットワークの URI(例: projects/myproject/global/networks/default)。
  • DESTINATION_IP_ADDRESS: テストする内部または外部の宛先 IP アドレス。
  • DESTINATION_NETWORK: 宛先 IP アドレスがある VPC ネットワークの URI(例: projects/myproject/global/networks/network-a)。
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

VPC ネットワークが不明の場合、またはネットワークにアクセスする権限がない場合は、ネットワーク URI を指定する代わりに、ネットワークを GCP_NETWORK として指定できます。

IP アドレスが Google Cloud 内にあるかどうかや、送信元エンドポイントと宛先エンドポイントが RFC 1918 アドレス空間に含まれないかどうかを確認する必要はありません。これらのパラメータは、送信元 IP アドレスと宛先 IP アドレスに基づいて自動的に選択されます。

  POST https://reachability.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?connectivityTestId=TEST_ID'
  {
    "source": {
      "ipAddress": "SOURCE_IP_ADDRESS",
      "networkType": "GCP_NETWORK"
    },
    "destination": {
      "instance": "DESTINATION_INSTANCE",
      "ipAddress": "DESTINATION_IP_ADDRESS"
    },
    "protocol": "PROTOCOL"
  }'

次のように置き換えます。

  • PROJECT_ID: ソース VM のプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。
  • SOURCE_IP_ADDRESS: テストの送信元 IP アドレス。
  • SOURCE_NETWORK_TYPE: ソースがあるネットワークのタイプ。この場合は、GCP_NETWORK という値を使用します。
  • DESTINATION_INSTANCE: 宛先 VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-2)。
  • DESTINATION_IP_ADDRESS: テストする内部または外部の宛先 IP アドレス。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

Google Cloud の外部 IP アドレスとして送信元 IP アドレスを指定する場合は、NON_GCP_NETWORKnetworkType を指定する必要があります。次のコマンドで、各値は Google Cloud ネットワークの値に置き換えてください。

  POST https://reachability.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
  {
    "source": {
      "ipAddress": "SOURCE_IP_ADDRESS",
      "networkType": "NON_GCP_NETWORK",

    },
    "destination": {
      "ipAddress": "DESTINATION_IP_ADDRESS",
      "network": "DESTINATION_NETWORK",
      "port": "DESTINATION_PORT",
    },
    "protocol": "PROTOCOL",
  }'

Python

次のサンプルコードは、2 つの IP アドレス間のテストを作成します。詳細については、Python 用 Google API クライアント ライブラリの create をご覧ください。

test_input = {
  "source": {
      "ipAddress": "SOURCE_IP_ADDRESS",
      "projectId": "SOURCE_IP_PROJECT_ID"
  },
  "destination": {
      "ipAddress": "DESTINATION_IP_ADDRESS",
      "port": "DESTINATION_PORT",
      "projectId": "DESTINATION_IP_PROJECT_ID"
  },
  "protocol": "PROTOCOL",
}

request = api.projects().locations().global_().connectivityTests().create(
    parent="projects/PROJECT_ID/locations/global",
    testId="TEST_ID",
    body=test_input)

print(json.dumps(request.execute(), indent=4))

次のように置き換えます。

  • SOURCE_IP_ADDRESS: テストの送信元 IP アドレス。
  • SOURCE_IP_PROJECT_ID: ソース IP アドレスのプロジェクト ID。
  • DESTINATION_IP_ADDRESS: テストする内部または外部の宛先 IP アドレス。
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。
  • DESTINATION_IP_PROJECT_ID: 宛先 IP アドレスのプロジェクト ID。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。
  • PROJECT_ID: テストを作成するプロジェクトのプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。

VPC ネットワークが不明の場合、またはネットワークにアクセスする権限がない場合は、ネットワーク URI を指定する代わりに、ネットワークを GCP_NETWORK として指定できます。

IP アドレスが Google Cloud 内にあるかどうかや、送信元エンドポイントと宛先エンドポイントが RFC 1918 アドレス空間に含まれないかどうかを確認する必要はありません。これらのパラメータは、送信元 IP アドレスと宛先 IP アドレスに基づいて自動的に選択されます。

次のサンプルは、2 つの IP アドレス間のテストを作成します。

test_input = {
    "source": {
        "ipAddress": "SOURCE_IP_ADDRESS",
        "networkType": "GCP_NETWORK"
    },
    "destination": {
        "ipAddress": "DESTINATION_IP_ADDRESS",
        "port": "DESTINATION_PORT",
        "projectId": "DESTINATION_IP_PROJECT_ID"
    },
    "protocol": "PROTOCOL",
}

request = api.projects().locations().global_().connectivityTests().create(
  parent="projects/PROJECT_ID/locations/global",
  testId="TEST_ID",
  body=test_input)

print(json.dumps(request.execute(), indent=4))

次のように置き換えます。

  • SOURCE_IP_ADDRESS: テストの送信元 IP アドレス。
  • SOURCE_NETWORK_TYPE: ソースがあるネットワークのタイプ。この場合は、GCP_NETWORK という値を使用します。
  • DESTINATION_IP_ADDRESS: 宛先 VM の IP アドレス。
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。
  • DESTINATION_IP_PROJECT_ID: 宛先 IP アドレスのプロジェクト ID。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。
  • PROJECT_ID: テストを作成するプロジェクトのプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。

Google Cloud の外部 IP アドレスとして送信元 IP アドレスを指定する場合は、NON_GCP_NETWORKnetworkType を指定する必要があります。

共有 VPC ネットワークでの IP アドレスのテスト

共有 VPC ネットワークがある場合は、ホスト プロジェクトまたはサービス プロジェクトからテストを作成して実施できます。

以下の例では、両方の場合について、サービス プロジェクトで割り振られた宛先 IP アドレスを使用して説明します。Google Cloud コンソールのフィールド値は、状況ごとに少し異なります。ただし、Google Cloud CLI と API 呼び出しのコマンド オプションは同じです。

コンソール: ホストから

  1. Google Cloud コンソールで、ホスト プロジェクトから [接続テスト] ページに移動します。

    [接続テスト] に移動

  2. [接続テストを作成] を選択します。
  3. [テスト名] フィールドにテストの名前を入力します。
  4. [プロトコル] リストでプロトコルを選択します。
  5. [ソース] で次の操作を行います。
    1. [送信元エンドポイント] メニューで、[IP アドレス] を選択します。
    2. 送信元 IP アドレスを入力します。
    3. [これは Google Cloud で使用される IP アドレスです。] チェックボックスを選択します。
    4. これが内部 IP アドレスであり、インターネットからアクセスできない場合は、アドレスが存在する VPC ネットワークを選択します。
    5. プライベート IP アドレスが RFC 1918 アドレス空間に含まれない場合は、[I confirm that the source endpoint resides in a range outside of the RFC 1918 address space] を選択して、IP アドレスを含む宛先ネットワークを選択します。
  6. [宛先] で、次の操作を行います。
    1. [宛先エンドポイント] メニューで、[IP アドレス] を選択します。
    2. 宛先 IP アドレスを入力します。
    3. [これは Google Cloud で使用される IP アドレスです。] チェックボックスを選択します。
    4. これが内部 IP アドレスであり、インターネットからアクセスできない場合は、アドレスが存在する VPC ネットワークを選択します。
    5. プライベート IP アドレスが RFC 1918 アドレス空間に含まれない場合は、[I confirm that the source endpoint resides in a range outside of the RFC 1918 address space] を選択して、IP アドレスを含む宛先ネットワークを選択します。
  7. [宛先ポート] フィールドに、指定した宛先の宛先ポートを入力します。
  8. [作成] をクリックします。
  9. テストが終了すると、[接続テスト] のメインページが読み込まれ、このテストと他のテストを含むリストが表示されます。テスト結果を表示するに進みます。

コンソール: サービスから

  1. Google Cloud コンソールで、サービス プロジェクトから [接続テスト] ページに移動します。

    [接続テスト] に移動

  2. [接続テストを作成] を選択します。
  3. [テスト名] フィールドにテストの名前を入力します。
  4. [プロトコル] リストでプロトコルを選択します。
  5. [ソース] で次の操作を行います。
    1. [送信元エンドポイント] メニューで、[IP アドレス] を選択します。
    2. 送信元 IP アドレスを入力します。
    3. [これは Google Cloud で使用される IP アドレスです。] チェックボックスを選択します。
    4. これが内部 IP アドレスであり、インターネットからアクセスできない場合は、アドレスが存在する VPC ネットワークを選択します。
  6. [宛先] で、次の操作を行います。
    1. [宛先エンドポイント] メニューで、[IP アドレス] を選択します。
    2. 宛先 IP アドレスを入力します。
    3. [これは Google Cloud で使用される IP アドレスです。] チェックボックスを選択します。
    4. IP アドレスがある宛先 IP アドレスまたはサービス プロジェクトを指定します。
    5. プライベート IP アドレスが RFC 1918 アドレス空間に含まれない場合は、[I confirm that the source endpoint resides in a range outside of the RFC 1918 address space] というラベルのチェックボックスを選択して、IP アドレスを含む宛先ネットワークを選択します。
  7. [宛先ポート] フィールドに、指定した宛先の宛先ポートを入力します。
  8. [作成] をクリックします。
  9. テストが終了すると、[接続テスト] のメインページが読み込まれ、このテストと他のテストを含むリストが表示されます。テスト結果を表示するに進みます。

gcloud

次のコマンドを入力して、宛先 IP アドレスが存在するサービス プロジェクト内のホストと、そのサービス プロジェクト内の 2 つのプライベート IP アドレス間をテストします。コマンド オプションの変数は、VPC ネットワークの値に置き換えてください。

宛先 IP アドレスはサービス プロジェクト内にあるため、サービス プロジェクトとホスト プロジェクトのネットワーク URI を指定します。この場合、defaulthost-project のデフォルト VPC ネットワークを表します。

gcloud network-management connectivity-tests create NAME \
    --source-ip-address=SOURCE_IP_ADDRESS \
    --source-project=SOURCE_PROJECT \
    --destination-ip-address=DESTINATION_IP_ADDRESS \
    --destination-network=DESTINATION_NETWORK \
    --destination-project=DESTINATION_PROJECT \
    --destination-port=DESTINATION_PORT \
    --protocol=PROTOCOL

次のように置き換えます。

  • NAME: 接続テストの名前。
  • SOURCE_IP_ADDRESS: テストの送信元 IP アドレス。
  • SOURCE_PROJECT: 送信元エンドポイントのプロジェクト ID。
  • DESTINATION_IP_ADDRESS: サービス プロジェクトでテストする内部または外部の宛先 IP アドレス。
  • DESTINATION_NETWORK: ホスト プロジェクトの VPC ネットワークの URI(例: projects/host-project/global/networks/default)。
  • DESTINATION_PROJECT: 宛先エンドポイントのプロジェクト ID(この共有 VPC ネットワークで使用されるサービス プロジェクトを表す service-project という名前のプロジェクトなど)。
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

API

projects.locations.global.connectivityTests.create メソッドを使用します。

  POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
    {
      "source": {
        "ipAddress": "SOURCE_IP_ADDRESS",
        "projectId": "SOURCE_PROJECT",
      },
      "destination": {
        "ipAddress": "DESTINATION_IP_ADDRESS",
        "projectId": "DESTINATION_PROJECT",
        "network": "DESTINATION_NETWORK",
        "port": "DESTINATION_PORT",
      },
      "protocol": "PROTOCOL",
    }'

次のように置き換えます。

  • PROJECT_ID: ソース VM のプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。
  • SOURCE_IP_ADDRESS: テストの送信元 IP アドレス。
  • SOURCE_PROJECT: 送信元エンドポイントのプロジェクト ID。
  • DESTINATION_IP_ADDRESS: サービス プロジェクトでテストする内部または外部の宛先 IP アドレス。
  • DESTINATION_PROJECT: 宛先エンドポイントのプロジェクト ID(この共有 VPC ネットワークで使用されるサービス プロジェクトを表す service-project という名前のプロジェクトなど)。
  • DESTINATION_NETWORK: ホスト プロジェクトの VPC ネットワークの URI(例: projects/host-project/global/networks/default)。
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

Python

次のサンプルコードは、2 つの IP アドレス間のテストを作成します。詳細については、Python 用 Google API クライアント ライブラリの create をご覧ください。

test_input = {
  "source": {
      "ipAddress": "SOURCE_IP_ADDRESS",
      "projectId": "SOURCE_IP_PROJECT_ID"
  },
  "destination": {
      "ipAddress": "DESTINATION_IP_ADDRESS",
      "projectId": "DESTINATION_IP_PROJECT_ID",
      "network": "DESTINATION_NETWORK",
      "port": "DESTINATION_PORT",
  },
  "protocol": "PROTOCOL",
}

request = api.projects().locations().global_().connectivityTests().create(
    parent="projects/PROJECT_ID/locations/global",
    testId="TEST_ID",
    body=test_input)

print(json.dumps(request.execute(), indent=4))

次のように置き換えます。

  • SOURCE_IP_ADDRESS: テストの送信元 IP アドレス。
  • SOURCE_IP_PROJECT_ID: 送信元エンドポイントのプロジェクト ID。
  • DESTINATION_IP_ADDRESS: サービス プロジェクトでテストする内部または外部の宛先 IP アドレス。
  • DESTINATION_IP_PROJECT_ID: 宛先エンドポイントのプロジェクト ID(この共有 VPC ネットワークで使用されるサービス プロジェクトを表す service-project という名前のプロジェクトなど)。
  • DESTINATION_NETWORK: ホスト プロジェクトの VPC ネットワークの URI(例: projects/host-project/global/networks/default)。
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。
  • PROJECT_ID: テストを作成するプロジェクトのプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。

VM から Google マネージド サービスへのテスト

このセクションでは、VPC ネットワーク内の VM から Google 所有の VPC ネットワークで実行されるサービスへの接続をテストする方法について説明します。このセクションの手順に沿って操作すると、Cloud SQL インスタンスまたは GKE コントロール プレーンへの接続をテストできます。また、ソースとして Google マネージド サービス エンドポイントを使用し、宛先として VPC ネットワーク内のエンドポイントを使用してテストを行うこともできます。

デフォルトの接続テストでは、Google マネージド サービス エンドポイントのプライベート IP アドレスを使用してテストが行われます。エンドポイントにプライベート IP アドレスが割り振られていない場合はパブリック IP アドレスが使用されます。接続テストでは、パケットがエンドポイントに到達可能かどうかが分析されますが、Google 所有の VPC ネットワーク内の構成も分析されます。プロジェクト内の構成で問題が見つかると、Google 所有のネットワーク構成を分析する前に処理が停止します。

VM から Google マネージド サービスへの接続をテストする方法は次のとおりです。

コンソール

接続テストのメインページから

  1. Google Cloud コンソールで、[接続テスト] ページに移動します。

    [接続テスト] に移動

  2. [接続テストを作成] を選択します。
  3. [テスト名] フィールドにテストの名前を入力します。
  4. [プロトコル] リストでプロトコルを選択します。
  5. [ソース] で次の操作を行います。

    1. [送信元エンドポイント] メニューで [VM インスタンス] を選択します。
    2. [送信元 VM インスタンス] メニューで、特定の送信元 VM インスタンスを選択します。
    3. [ソース ネットワーク インターフェース] メニューで、ネットワーク インターフェースを選択します。

      VM インスタンスに複数のネットワーク インターフェースがある場合はソースの場所を一意に識別する VM ネットワーク インターフェースを選択します。

    4. 省略可: リストから送信元 IP アドレスを選択します。デフォルトは、送信元 VM インスタンスの IP アドレスです。

  6. [宛先] で、次の操作を行います。

    1. [宛先エンドポイント] メニューで、GKE クラスタ コントロール プレーンなどの Google マネージド サービスのリソースの種類を選択します。
    2. [宛先 GKE クラスタ コントロール プレーン] メニューで、GKE コントロール プレーンへの接続をテストするクラスタを選択します。
    3. 省略可: リストから宛先 GKE クラスタ コントロール プレーンの IP アドレスを選択します。デフォルトは、送信元 VM インスタンスの IP アドレスです。
  7. [宛先ポート] フィールドに、指定した宛先の宛先ポートを入力します。

  8. [作成] をクリックします。

  9. テストが終了すると、[接続テスト] のメインページが読み込まれ、このテストと他のテストを含むリストが表示されます。テスト結果を表示するに進みます。

ネットワーク インターフェースの詳細ページから

  1. Google Cloud コンソールで、[VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. まだ選択していない場合は、テスト対象のインスタンスを含むプロジェクトを選択します。
  3. テストの実施に使用するインスタンスをクリックします。
  4. [ネットワーク インターフェース] で、テストの実施に使用するネットワーク インターフェースを選択します。
  5. [ネットワーク分析] で [接続テストを作成] をクリックします。
  6. [テスト名] フィールドにテストの名前を入力します。
  7. [プロトコル] リストでプロトコルを選択します。
  8. [ソース] で [現在のネットワーク インターフェース] を選択します。
  9. [宛先] で、次の操作を行います。
    1. [宛先エンドポイント] メニューで、GKE クラスタ コントロール プレーンなどの Google マネージド サービスのリソースの種類を選択します。
    2. [宛先 GKE クラスタ コントロール プレーン] メニューで、GKE コントロール プレーンへの接続をテストするクラスタを選択します。
    3. 省略可: リストから宛先 GKE クラスタ コントロール プレーンの IP アドレスを選択します。デフォルトは、送信元 VM インスタンスの IP アドレスです。
  10. [宛先ポート] フィールドに、指定した宛先の宛先ポートを入力します。
    1. [作成] をクリックします。
    2. テストが終了すると、[接続テスト] のメインページが読み込まれ、このテストと他のテストを含むリストが表示されます。テスト結果を表示するに進みます。

gcloud

次のガイダンスに従って、コマンド オプションの変数を置き換えます。

gcloud network-management connectivity-tests create NAME \
    --source-instance=SOURCE_INSTANCE \
    --source-ip-address=SOURCE_IP_ADDRESS \
      DESTINATION_RESOURCE_FLAG=DESTINATION_ENDPOINT \
    --destination-port=DESTINATION_PORT \
    --protocol=PROTOCOL

次のように置き換えます。

  • NAME: 接続テストの名前。
  • SOURCE_INSTANCE: ソース VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-1)。
  • SOURCE_IP_ADDRESS: テスト元のソース VM インスタンスの IP アドレス。IP アドレスは、ソース VM インスタンスの IP アドレスのいずれかである必要があります。
  • DESTINATION_RESOURCE_FLAG: Google マネージド サービス リソースのタイプを指定するフラグ。

    使用可能なオプションについては、以下をご覧ください。

    • --destination-gke-master-cluster
    • --destination-cloud-sql-instance

    詳細については、gcloud network-management connectivity-tests create リファレンスをご覧ください。

  • DESTINATION_ENDPOINT: 宛先エンドポイントの URI(たとえば、--destination-gke-master-cluster フラグの場合は projects/myproject/locations/us-central1/clusters/cluster-1)。

  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。

  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

API

projects.locations.global.connectivityTests.create メソッドを使用します。

 POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
   {
     "source": {
       "instance": "SOURCE_INSTANCE",
       "ipAddress": "SOURCE_IP_ADDRESS",
     },
     "destination": {
       "DESTINATION_RESOURCE_FIELD": "DESTINATION_ENDPOINT",
       "port": DESTINATION_PORT
     },
     "protocol": "PROTOCOL",
   }'

次のように置き換えます。

  • PROJECT_ID: ソース VM のプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。
  • SOURCE_INSTANCE: ソース VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-1)。
  • SOURCE_IP_ADDRESS: テスト元のソース VM インスタンスの IP アドレス。IP アドレスは、ソース VM インスタンスの IP アドレスのいずれかである必要があります。
  • DESTINATION_RESOURCE_FIELD: Google マネージド サービス リソースのタイプを指定するフィールド。

    使用可能なオプションについては、以下をご覧ください。

    • gkeMasterCluster
    • cloudSqlInstance

    詳細については、エンドポイント リファレンスをご覧ください。

  • DESTINATION_ENDPOINT: 宛先エンドポイントの URI(たとえば、gkeMasterCluster フィールドの場合は projects/myproject/locations/us-central1/clusters/cluster-1)。

  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。

  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

Python

次のサンプルコードでは、VM インスタンスと Google マネージド サービス エンドポイントの間の接続をテストします。詳細については、Python 用 Google API クライアント ライブラリの create をご覧ください。

test_input = {
  "source": {
      "instance":
          "SOURCE_INSTANCE",
      "ipAddress":
          "SOURCE_IP_ADDRESS",
      "projectId":
          "SOURCE_INSTANCE_PROJECT_ID"
  },
  "destination": {
      "DESTINATION_RESOURCE_FIELD":
          "DESTINATION_ENDPOINT",
      "port":
          "DESTINATION_PORT"
  },
  "protocol":
      "PROTOCOL",
}

request = api.projects().locations().global_().connectivityTests().create(
    parent="projects/PROJECT_ID/locations/global",
    testId="TEST_ID",
    body=test_input)

print(json.dumps(request.execute(), indent=4))

次のように置き換えます。

  • SOURCE_INSTANCE: ソース VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-1)。
  • SOURCE_IP_ADDRESS: テスト元のソース VM インスタンスの IP アドレス。IP アドレスは、ソース VM インスタンスの IP アドレスのいずれかである必要があります。
  • SOURCE_INSTANCE_PROJECT_ID: ソース VM のプロジェクト ID。
  • DESTINATION_RESOURCE_FIELD: Google マネージド サービス リソースのタイプを指定するフィールド。

    使用可能なオプションについては、以下をご覧ください。

    • gkeMasterCluster
    • cloudSqlInstance

    詳細については、エンドポイント リファレンスをご覧ください。

  • DESTINATION_ENDPOINT: 宛先エンドポイントの URI(たとえば、gkeMasterCluster フィールドの場合は projects/myproject/locations/us-central1/clusters/cluster-1)。

  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。

  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

  • PROJECT_ID: テストを作成するプロジェクトのプロジェクト ID。

  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。

VM から Private Service Connect エンドポイントへの接続テスト

このセクションでは、VM から Private Service Connect エンドポイントへの接続をテストする方法について説明します。

たとえば、このセクションの手順により、Private Service Connect を使用する公開サービスにパケットを配信できるかどうかをテストできます。接続テストでは、接続されたエンドポイント、公開サービス、プロキシ接続の分析など、パケットがエンドポイントに到達できるかどうかが分析されます。Private Service Connect を使用する公開サービスへの接続が受け入れられない場合、分析は早期に終了します。

以下に対する接続をテストできます。

コンソール

  1. Google Cloud コンソールで、[接続テスト] ページに移動します。

    [接続テスト] に移動

  2. [接続テストを作成] を選択します。
  3. [テスト名] フィールドにテストの名前を入力します。
  4. [プロトコル] リストでプロトコルを選択します。
  5. [ソース] で次の操作を行います。

    1. [送信元エンドポイント] メニューで [VM インスタンス] を選択します。
    2. [送信元 VM インスタンス] メニューで、特定の送信元 VM インスタンスを選択します。
    3. [ソース ネットワーク インターフェース] メニューで、ネットワーク インターフェースを選択します。

      VM インスタンスに複数のネットワーク インターフェースがある場合はソースの場所を一意に識別する VM ネットワーク インターフェースを選択します。

    4. 省略可: リストから送信元 IP アドレスを選択します。デフォルトは、送信元 VM インスタンスの IP アドレスです。

  6. [宛先] で、次の操作を行います。

    1. [宛先エンドポイント] メニューで、[PSC エンドポイント] を選択します。
    2. [宛先 PSC エンドポイント] メニューで、PSC エンドポイントを選択します。

      宛先エンドポイントが現在のプロジェクト以外のプロジェクトにある場合は、[エンドポイントは「PROJECT_NAME」以外のプロジェクトに存在します。] を選択します。次に、[宛先エンドポイント プロジェクト] フィールドで、エンドポイントが配置されているプロジェクトを選択します。

  7. [宛先ポート] フィールドに、指定した宛先の宛先ポートを入力します。

  8. [作成] をクリックします。

  9. テストが終了すると、[接続テスト] のメインページが読み込まれ、このテストと他のテストを含むリストが表示されます。テスト結果を表示するに進みます。

gcloud

gcloud network-management connectivity-tests create コマンドを使用します。サンプル値は、実際の VPC ネットワークの値で置き換えてください。

gcloud network-management connectivity-tests create NAME \
    --source-instance=SOURCE_INSTANCE \
    --source-ip-address=SOURCE_IP_ADDRESS \
    --destination-ip-address=DESTINATION_IP_ADDRESS \
    --destination-network=DESTINATION_NETWORK \
    --protocol=PROTOCOL

次のように置き換えます。

  • NAME: 接続テストの名前。
  • SOURCE_INSTANCE: ソース VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-1)。
  • SOURCE_IP_ADDRESS: テスト元のソース VM インスタンスの IP アドレス。IP アドレスは、ソース VM インスタンスの IP アドレスのいずれかである必要があります。
  • DESTINATION_IP_ADDRESS: テストするエンドポイントまたはバックエンドの IP アドレス。
  • DESTINATION_NETWORK: 宛先 IP アドレスがある VPC ネットワークの URI(例: projects/myproject/global/networks/default
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

エンドポイントまたはバックエンドを使用して公開サービスにアクセスする場合は、エンドポイントまたはバックエンドに内部 IP アドレスがあるため、DESTINATION_NETWORK を指定する必要があります。

API

次のサンプルテストでは、既存のネットワーク構成で VM instance1 が Private Service Connect エンドポイントの IP アドレスに ping できるかどうかを確認します。

projects.locations.global.connectivityTests.create メソッドを使用します。

 POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
   {
     "source": {
       "instance": "SOURCE_INSTANCE",
       "ipAddress": "SOURCE_IP_ADDRESS",
     },
    "destination": {
      "forwardingRule": "DESTINATION_FORWARDING_RULE",
      "port": "DESTINATION_PORT",
     },
     "protocol": "PROTOCOL",
   }'

次のように置き換えます。

  • PROJECT_ID: ソース VM のプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。
  • SOURCE_INSTANCE: ソース VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-1)。
  • SOURCE_IP_ADDRESS: テスト元のソース VM インスタンスの IP アドレス。IP アドレスは、ソース VM インスタンスの IP アドレスのいずれかである必要があります。
  • DESTINATION_IP_ADDRESS: テストするエンドポイントまたはバックエンドの IP アドレス。
  • DESTINATION_NETWORK: 宛先 IP アドレスがある VPC ネットワークの URI(例: projects/myproject/global/networks/default
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

エンドポイントまたはバックエンドを使用して公開サービスにアクセスする場合は、エンドポイントまたはバックエンドに内部 IP アドレスがあるため、DESTINATION_NETWORK を指定する必要があります。

Python

次のサンプルコードでは、VM インスタンスと Private Service Connect エンドポイント間のテストを作成します。詳細については、Python 用 Google API クライアント ライブラリの create をご覧ください。

test_input = {
  "source": {
      "instance":
          "SOURCE_INSTANCE",
      "ipAddress":
          "SOURCE_IP_ADDRESS",
      "projectId":
          "SOURCE_INSTANCE_PROJECT_ID"
  },
  "destination": {
      "forwardingRule": "DESTINATION_FORWARDING_RULE",
      "port": "DESTINATION_PORT",
  },
  "protocol":
      "PROTOCOL",
}

request = api.projects().locations().global_().connectivityTests().create(
    parent="projects/PROJECT_ID/locations/global",
    testId="TEST_ID",
    body=test_input)

print(json.dumps(request.execute(), indent=4))

次のように置き換えます。

  • SOURCE_INSTANCE: ソース VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-1)。
  • SOURCE_IP_ADDRESS: テスト元のソース VM インスタンスの IP アドレス。IP アドレスは、ソース VM インスタンスの IP アドレスのいずれかである必要があります。
  • SOURCE_INSTANCE_PROJECT_ID: ソース VM のプロジェクト ID。
  • DESTINATION_IP_ADDRESS: テストするエンドポイントまたはバックエンドの IP アドレス。
  • DESTINATION_NETWORK: 宛先 IP アドレスがある VPC ネットワークの URI(例: projects/myproject/global/networks/default
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。
  • PROJECT_ID: テストを作成するプロジェクトのプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。

エンドポイントまたはバックエンドを使用して公開サービスにアクセスする場合は、エンドポイントまたはバックエンドに内部 IP アドレスがあるため、DESTINATION_NETWORK を指定する必要があります。

App Engine スタンダード環境のバージョンから宛先へのテスト

このセクションでは、App Engine スタンダード環境のバージョンから VM インスタンス、IP アドレス、または Google マネージド サービスへの接続をテストする方法について説明します。

App Engine スタンダード環境のアプリは、1 つ以上のサービスからなる単一のアプリケーション リソースで構成されています。各サービス内で、そのサービスの複数のバージョンをデプロイします。App Engine スタンダード環境サービスのバージョンから VM インスタンス、IP アドレス、または Google マネージド サービスへのネットワーク到達性をテストできます。

詳細な構成分析を表示するには、サーバーレス VPC アクセス コネクタを使用するようにサービスを構成する必要があります。接続テストの結果は、サービスのバージョンによって異なる場合があります。ネットワーク到達性は、UDP プロトコルまたは TCP プロトコルを使用するテストパケットに対してのみテストできます。

App Engine スタンダード環境のサービスから VM インスタンスへの接続テスト

コンソール

  1. Google Cloud コンソールで、[接続テスト] ページに移動します。

    [接続テスト] に移動

  2. [接続テストを作成] を選択します。
  3. テスト名を入力します。
  4. プロトコルを選択します。
  5. [送信元エンドポイント] メニューで、[App Engine] を選択します。
    1. [App Engine サービス] メニューで、接続をテストする App Engine スタンダード環境のサービスを選択します。たとえば、helloworld-service を選択します。
      1. 送信元エンドポイントが現在のプロジェクト以外のプロジェクトにある場合は、[エンドポイントは「PROJECT_NAME」以外のプロジェクトに存在します。] チェックボックスをオンにします。
      2. エンドポイントが存在するプロジェクトを選択します。
    2. [App Engine のバージョン] メニューで、接続をテストする App Engine スタンダード環境サービスのバージョンを選択します。
  6. [宛先] で、リストから [宛先 VM インスタンス] を選択します。

    VM インスタンスに複数のネットワーク インターフェースがある場合は、VM ネットワーク インターフェースを選択して、宛先の場所を一意に識別します。

  7. 省略可: リストから宛先 IP アドレスを選択します。デフォルトは、宛先 VM インスタンスの IP アドレスです。

  8. [宛先ポート] フィールドに、指定した宛先の宛先ポートを入力します。

  9. [作成] をクリックします。

  10. テストが終了すると、[接続テスト] のメインページが読み込まれ、このテストと他のテストを含むリストが表示されます。テスト結果を表示するに進みます。

gcloud

gcloud network-management connectivity-tests create コマンドを使用します。サンプル値は、実際の VPC ネットワークの値で置き換えてください。

gcloud network-management connectivity-tests create NAME \
    --source-app-engine-version=APP_ENGINE_VERSION \
    --destination-instance=DESTINATION_INSTANCE \
    --destination-ip-address=DESTINATION_IP_ADDRESS \
    --protocol=PROTOCOL

次のように置き換えます。

  • NAME: 接続テストの名前。
  • APP_ENGINE_VERSION: 送信元 App Engine スタンダード環境バージョンの URI(例: apps/myproject/services/service-name/versions/version-name)。
  • DESTINATION_INSTANCE: 宛先 VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-2)。
  • DESTINATION_IP_ADDRESS: テストの宛先 VM インスタンスの IP アドレス。IP アドレスは、宛先 VM インスタンスの IP アドレスのいずれかにする必要があります。
  • PROTOCOL: サーバーレス VPC アクセス コネクタでサポートされているネットワーク プロトコル(TCP または UDP)。

API

projects.locations.global.connectivityTests.create メソッドを使用します。

  POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
  {
    "source": {
      "appEngineVersion": {
        "uri": "APP_ENGINE_VERSION",
        },
    },
    "destination": {
      "instance": "DESTINATION_INSTANCE",
      "ipAddress": "DESTINATION_IP_ADDRESS",
    },
    "protocol": "PROTOCOL",
  }'

次のように置き換えます。

  • PROJECT_ID: ソースとなる Cloud Functions の関数のプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。
  • APP_ENGINE_VERSION: 送信元 App Engine スタンダード環境バージョンの URI(例: apps/myproject/services/service-name/versions/version-name)。
  • DESTINATION_INSTANCE: 宛先 VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-2)。
  • DESTINATION_IP_ADDRESS: テストの宛先 VM インスタンスの IP アドレス。IP アドレスは、宛先 VM インスタンスの IP アドレスのいずれかにする必要があります。
  • PROTOCOL: サーバーレス VPC アクセス コネクタでサポートされているネットワーク プロトコル(TCP または UDP)。

App Engine スタンダード環境のサービスから IP アドレスへの接続テスト

コンソール

  1. Google Cloud コンソールで、[接続テスト] ページに移動します。

    [接続テスト] に移動

  2. [接続テストを作成] を選択します。
  3. テスト名を入力します。
  4. プロトコルを選択します。
  5. [送信元エンドポイント] メニューで、[App Engine] を選択します。
    1. [App Engine サービス] メニューで、接続をテストする App Engine スタンダード環境のサービスを選択します。たとえば、helloworld-service を選択します。
      1. 送信元エンドポイントが現在のプロジェクト以外のプロジェクトにある場合は、[エンドポイントは「PROJECT_NAME」以外のプロジェクトに存在します。] を選択します。
      2. エンドポイントが存在するプロジェクトを選択します。
    2. [App Engine のバージョン] メニューで、接続をテストする App Engine スタンダード環境サービスのバージョンを選択します。
  6. [宛先] で [IP アドレス] を選択し、IP アドレスを入力します。
  7. 宛先ポートを入力します。
  8. [作成] をクリックします。
  9. テストが終了すると、[接続テスト] のメインページが読み込まれ、このテストと他のテストを含むリストが表示されます。テスト結果を表示するに進みます。

gcloud

gcloud network-management connectivity-tests create コマンドを使用します。サンプル値は、実際の VPC ネットワークの値で置き換えてください。

gcloud network-management connectivity-tests create NAME \
    --source-app-engine-version=APP_ENGINE_VERSION \
    --destination-ip-address=DESTINATION_IP_ADDRESS \
    --protocol=PROTOCOL

次のように置き換えます。

  • NAME: 接続テストの名前。
  • APP_ENGINE_VERSION: 送信元 App Engine スタンダード環境バージョンの URI(例: apps/myproject/services/service-name/versions/version-name)。
  • DESTINATION_IP_ADDRESS: テストの宛先となる外部の宛先 IP アドレス。
  • PROTOCOL: サーバーレス VPC アクセス コネクタでサポートされているネットワーク プロトコル(TCP または UDP)。

API

projects.locations.global.connectivityTests.create メソッドを使用します。

  POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
  {
    "source": {
      "appEngineVersion": {
        "uri": "APP_ENGINE_VERSION",
        },
    },
    "destination": {
      "ipAddress": "DESTINATION_IP_ADDRESS",
    },
    "protocol": "PROTOCOL",
  }'

次のように置き換えます。

  • PROJECT_ID: ソースとなる Cloud Functions の関数のプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。
  • APP_ENGINE_VERSION: 送信元 App Engine スタンダード環境バージョンの URI(例: apps/myproject/services/service-name/versions/version-name)。
  • DESTINATION_IP_ADDRESS: テストの宛先となる外部の宛先 IP アドレス。
  • PROTOCOL: サーバーレス VPC アクセス コネクタでサポートされているネットワーク プロトコル(TCP または UDP)。

App Engine スタンダード環境のサービスから Google マネージド サービスへの接続テスト

コンソール

  1. Google Cloud コンソールで、[接続テスト] ページに移動します。

    [接続テスト] に移動

  2. [接続テストを作成] を選択します。
  3. テスト名を入力します。
  4. プロトコルを選択します。
  5. [送信元エンドポイント] メニューで、[App Engine] を選択します。
    1. [App Engine サービス] メニューで、接続をテストする App Engine スタンダード環境のサービスを選択します。たとえば、helloworld-service を選択します。
      1. 送信元エンドポイントが現在のプロジェクト以外のプロジェクトにある場合は、[エンドポイントは「PROJECT_NAME」以外のプロジェクトに存在します。] を選択します。
      2. エンドポイントが存在するプロジェクトを選択します。
    2. [App Engine のバージョン] メニューで、接続をテストする App Engine スタンダード環境サービスのバージョンを選択します。
  6. [宛先] で、次の操作を行います。
    1. [宛先エンドポイント] メニューで、GKE クラスタ コントロール プレーンなどの Google マネージド サービスのリソースの種類を選択します。
    2. [宛先 GKE クラスタ コントロール プレーン] メニューで、GKE コントロール プレーンへの接続をテストするクラスタを選択します。
    3. 省略可: リストから宛先 GKE クラスタ コントロール プレーンの IP アドレスを選択します。デフォルトは、送信元 VM インスタンスの IP アドレスです。
  7. [宛先ポート] フィールドに、指定した宛先の宛先ポートを入力します。
  8. [作成] をクリックします。
  9. テストが終了すると、[接続テスト] のメインページが読み込まれ、このテストと他のテストを含むリストが表示されます。テスト結果を表示するに進みます。

gcloud

gcloud network-management connectivity-tests create コマンドを使用します。サンプル値は、実際の VPC ネットワークの値で置き換えてください。

gcloud network-management connectivity-tests create NAME \
    --source-app-engine-version=APP_ENGINE_VERSION \
    --destination-ip-address=DESTINATION_IP_ADDRESS \
      DESTINATION_RESOURCE_FLAG=DESTINATION_ENDPOINT \
    --destination-port=DESTINATION_PORT \
    --protocol=PROTOCOL

次のように置き換えます。

  • NAME: 接続テストの名前。
  • APP_ENGINE_VERSION: 送信元 App Engine スタンダード環境バージョンの URI(例: apps/myproject/services/servicename/versions/version-number)。
  • DESTINATION_IP_ADDRESS: テストする内部または外部の宛先 IP アドレス。
  • DESTINATION_RESOURCE_FLAG: Google マネージド サービス リソースのタイプを指定するフラグ。

    使用可能なオプションについては、以下をご覧ください。

    • --destination-gke-master-cluster
    • --destination-cloud-sql-instance

    詳細については、gcloud network-management connectivity-tests create リファレンスをご覧ください。

  • DESTINATION_ENDPOINT: 宛先エンドポイントの URI(たとえば、--destination-gke-master-cluster フラグの場合は projects/myproject/locations/us-central1/clusters/cluster-1)。

  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。デフォルトはポート 80 です。

  • PROTOCOL: サーバーレス VPC アクセス コネクタでサポートされているネットワーク プロトコル(TCP または UDP)。

API

projects.locations.global.connectivityTests.create メソッドを使用します。

  POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
  {
    "source": {
      "appEngineVersion": {
        "uri": "APP_ENGINE_VERSION",
        },
    },
    "destination": {
      "DESTINATION_RESOURCE_FIELD": "DESTINATION_ENDPOINT",
      "ipAddress": "DESTINATION_IP_ADDRESS",
      "port": DESTINATION_PORT,
    },
    "protocol": "PROTOCOL",
  }'

次のように置き換えます。

  • PROJECT_ID: ソースとなる Cloud Functions の関数のプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。
  • APP_ENGINE_VERSION: 送信元 App Engine スタンダード環境バージョンの URI(例: apps/myproject/services/servicename/versions/version-number)。
  • DESTINATION_RESOURCE_FIELD: Google マネージド サービス リソースのタイプを指定するフィールド。

    使用可能なオプションについては、以下をご覧ください。

    • gkeMasterCluster
    • cloudSqlInstance

    詳細については、エンドポイント リファレンスをご覧ください。

  • DESTINATION_ENDPOINT: 宛先エンドポイントの URI(たとえば、gkeMasterCluster フィールドの場合は projects/myproject/locations/us-central1/clusters/cluster-1)。

  • DESTINATION_IP_ADDRESS: テストする内部または外部の宛先 IP アドレス。

  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。デフォルトはポート 80 です。

  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

Cloud Functions の関数から宛先へのテスト

このセクションでは、特定の Google Cloud リージョンにデプロイされた Cloud Functions から、VM インスタンス、IP アドレス、Google マネージド サービスへの接続をテストする方法について説明します。たとえば、このセクションの手順により、送信元を us-central1、VPC ネットワーク内のエンドポイントを宛先として、デプロイされた Cloud Functions からの接続をテストできます。

詳細な構成分析を確認するには、Cloud Functions が有効で、Cloud Functions のサーバーレス VPC アクセス コネクタが構成されている必要があります。

Cloud Functions の下り(外向き)設定は、Cloud Functions からのアウトバウンド HTTP リクエストのルーティングを制御します。また、コネクタ経由で VPC ネットワークにルーティングされるトラフィック タイプも制御します。詳細については、Cloud Functions の下り(外向き)設定をご覧ください。

Cloud Functions から VM インスタンスへの接続テスト

コンソール

  1. Google Cloud コンソールで、[接続テスト] ページに移動します。

    [接続テスト] に移動

  2. [接続テストを作成] を選択します。
  3. [テスト名] フィールドにテストの名前を入力します。
  4. [プロトコル] リストでプロトコルを選択します。
  5. [ソース] で次の操作を行います。
    1. [送信元エンドポイント] メニューから、[Cloud Functions 第 1 世代] を選択します。
    2. [Cloud Functions] メニューから、接続をテストする Cloud Functions を選択します。たとえば、function-1 を選択します。
    3. [Cloud Functions] のロケーション メニューから、Cloud Functions をデプロイした Google Cloud リージョンを選択します。Cloud Functions は、名前が同じであれば、異なる構成のリージョンにもデプロイできます。
  6. [宛先] で、次の操作を行います。

    1. [宛先エンドポイント] メニューで [VM インスタンス] を選択します。
    2. [宛先 VM インスタンス] メニューで VM インスタンスを選択します。
    3. [宛先ネットワーク インターフェース] メニューで、ネットワーク インターフェースを選択します。

      VM インスタンスに複数のネットワーク インターフェースがある場合は宛先の場所を一意に識別する VM ネットワーク インターフェースを選択します。

    4. 省略可: リストから宛先 IP アドレスを選択します。デフォルトは、宛先 VM インスタンスの IP アドレスです。

  7. [宛先ポート] フィールドに、指定した宛先の宛先ポートを入力します。

  8. [作成] をクリックします。

  9. テストが終了すると、[接続テスト] のメインページが読み込まれ、このテストと他のテストを含むリストが表示されます。テスト結果を表示するに進みます。

gcloud

gcloud network-management connectivity-tests create コマンドを使用します。サンプル値は、実際の VPC ネットワークの値で置き換えてください。

gcloud network-management connectivity-tests create NAME \
    --source-cloud-function=SOURCE_CLOUD_FUNCTION \
    --destination-instance=DESTINATION_INSTANCE \
    --destination-ip-address=DESTINATION_IP_ADDRESS \
    --destination-port=DESTINATION_PORT \
    --protocol=PROTOCOL

次のように置き換えます。

  • NAME: 接続テストの名前。
  • SOURCE_CLOUD_FUNCTION: Cloud Functions の関数の URI(例: projects/myproject/locations/us-central1/functions/function-1)。
  • DESTINATION_INSTANCE: 宛先 VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-2)。
  • DESTINATION_IP_ADDRESS: テストの宛先 VM インスタンスの IP アドレス。IP アドレスは、宛先 VM インスタンスの IP アドレスのいずれかにする必要があります。
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

API

projects.locations.global.connectivityTests.create メソッドを使用します。

POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
{
  "source": {
    "cloudFunction": {
      "uri": "SOURCE_CLOUD_FUNCTION",
      },
  },
  "destination": {
    "instance": "DESTINATION_INSTANCE",
    "ipAddress": "DESTINATION_IP_ADDRESS",
  },
  "protocol": "PROTOCOL",
}'

次のように置き換えます。

  • PROJECT_ID: ソースとなる Cloud Functions の関数のプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。
  • SOURCE_CLOUD_FUNCTION: Cloud Functions の関数の URI(例: projects/myproject/locations/us-central1/functions/function-1)。
  • DESTINATION_INSTANCE: 宛先 VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-2)。
  • DESTINATION_IP_ADDRESS: テストの宛先 VM インスタンスの IP アドレス。IP アドレスは、宛先 VM インスタンスの IP アドレスのいずれかにする必要があります。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

Cloud Functions の関数から IP アドレスへの接続テスト

コンソール

  1. Google Cloud コンソールで、[接続テスト] ページに移動します。

    [接続テスト] に移動

  2. [接続テストを作成] を選択します。
  3. [テスト名] フィールドにテストの名前を入力します。
  4. [プロトコル] リストでプロトコルを選択します。
  5. [ソース] で次の操作を行います。
    1. [送信元エンドポイント] メニューから、[Cloud Functions 第 1 世代] を選択します。
    2. [Cloud Functions] メニューから、接続をテストする Cloud Functions を選択します。たとえば、function-1 を選択します。
    3. [Cloud Functions] のロケーション メニューから、Cloud Functions をデプロイした Google Cloud リージョンを選択します。Cloud Functions は、名前が同じであれば、異なる構成のリージョンにもデプロイできます。
  6. [宛先] で [IP アドレス] を選択し、IP アドレスを入力します。
  7. [宛先ポート] フィールドに、指定した宛先の宛先ポートを入力します。
  8. [作成] をクリックします。
  9. テストが終了すると、[接続テスト] のメインページが読み込まれ、このテストと他のテストを含むリストが表示されます。このページの後半のテスト結果を表示するに進みます。

gcloud

gcloud network-management connectivity-tests create コマンドを使用します。サンプル値は、実際の VPC ネットワークの値で置き換えてください。

gcloud network-management connectivity-tests create NAME \
    --source-cloud-function=SOURCE_CLOUD_FUNCTION \
    --destination-ip-address==DESTINATION_IP_ADDRESS \
    --protocol=PROTOCOL

次のように置き換えます。

  • NAME: 接続テストの名前。
  • SOURCE_CLOUD_FUNCTION: Cloud Functions の関数の URI(例: projects/myproject/locations/us-central1/functions/function-1)。
  • DESTINATION_IP_ADDRESS: テストの宛先 IP アドレス。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

API

projects.locations.global.connectivityTests.create メソッドを使用します。

POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
{
  "source": {
    "cloudFunction": {
      "uri": "SOURCE_CLOUD_FUNCTION",
    },
  },
  "destination": {
    "ipAddress": "DESTINATION_IP_ADDRESS",
  },
  "protocol": "PROTOCOL",
}'

次のように置き換えます。

  • PROJECT_ID: ソースとなる Cloud Functions の関数のプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。
  • SOURCE_CLOUD_FUNCTION: Cloud Functions の関数の URI(例: projects/myproject/locations/us-central1/functions/function-1)。
  • DESTINATION_IP_ADDRESS: テストの宛先 IP アドレス。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

Cloud Functions の関数から Google マネージド サービスへの接続テスト

コンソール

  1. Google Cloud コンソールで、[接続テスト] ページに移動します。

    [接続テスト] に移動

  2. [接続テストを作成] を選択します。
  3. [テスト名] フィールドにテストの名前を入力します。
  4. [プロトコル] リストでプロトコルを選択します。
  5. [ソース] で次の操作を行います。
    1. [送信元エンドポイント] メニューから、[Cloud Functions 第 1 世代] を選択します。
    2. [Cloud Functions] メニューから、接続をテストする Cloud Functions を選択します。たとえば、function-1 を選択します。
    3. [Cloud Functions の関数] のロケーション メニューから、Cloud Functions の関数をデプロイした Google Cloud リージョンを選択します。Cloud Functions の関数は、名前が同じであれば、異なる構成のリージョンにもデプロイできます。
  6. [宛先] で、次の操作を行います。
    1. [宛先エンドポイント] メニューで、Cloud SQL インスタンスなどの Google マネージド サービス リソースの種類を選択します。
    2. [宛先 Cloud SQL インスタンス] メニューで、接続をテストする Cloud SQL インスタンスを選択します。
    3. 省略可: リストから [宛先 Cloud SQL インスタンスの IP アドレス] を選択します。デフォルトは送信元 Cloud Functions の IP アドレスです。
  7. [宛先ポート] フィールドに、指定した宛先の宛先ポートを入力します。
  8. [作成] をクリックします。
  9. テストが終了すると、[接続テスト] のメインページが読み込まれ、このテストと他のテストを含むリストが表示されます。このページの後半のテスト結果を表示するに進みます。

gcloud

gcloud network-management connectivity-tests create コマンドを使用します。サンプル値は、実際の VPC ネットワークの値で置き換えてください。

gcloud network-management connectivity-tests create NAME \
    --source-cloud-function=SOURCE_CLOUD_FUNCTION \
      DESTINATION_RESOURCE_FLAG=DESTINATION_ENDPOINT \
    --destination-ip-address=DESTINATION_IP_ADDRESS \
    --destination-port=DESTINATION_PORT \
    --protocol=PROTOCOL

次のように置き換えます。

  • NAME: 接続テストの名前。
  • SOURCE_CLOUD_FUNCTION: Cloud Functions の関数の URI(例: projects/myproject/locations/us-central1/functions/function-1)。
  • DESTINATION_RESOURCE_FLAG: Google マネージド サービス リソースのタイプを指定するフラグ。

    使用可能なオプションについては、以下をご覧ください。

    • --destination-gke-master-cluster
    • --destination-cloud-sql-instance

    詳細については、gcloud network-management connectivity-tests create リファレンスをご覧ください。

  • DESTINATION_ENDPOINT: 宛先エンドポイントの URI(たとえば、--destination-gke-master-cluster フラグの場合は projects/myproject/locations/us-central1/clusters/cluster-1)。

  • DESTINATION_IP_ADDRESS: テストする内部または外部の宛先 IP アドレス。

  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。デフォルトはポート 80 です。

  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

Cloud Run リビジョンから宛先へのテスト

このセクションでは、Cloud Run リビジョンから VM インスタンス、IP アドレス、または Google マネージド サービスへの接続をテストする方法について説明します。

1 つのプロジェクトに複数の Cloud Run サービスをデプロイできます。すべての Cloud Run サービスには、*.run.app ドメインの一意のサブドメインに HTTPS エンドポイントが用意されています。Cloud Run サービスのデプロイごとに、新しい不変のリビジョンが作成されます。リビジョンから VM インスタンス、IP アドレス、または Google マネージド サービスへのネットワーク到達性をテストできます。詳細な構成分析を確認するには、リビジョンのサーバーレス VPC アクセス コネクタを構成する必要があります。接続テストの結果は、リビジョンによって異なる場合があります。

たとえば、cloud_run_test という名前の Cloud Run サービスには、サーバーレス VPC アクセス コネクタを使用するように構成されたリビジョン first-revision と、サーバーレス VPC アクセス コネクタを使用するように構成されていない別のリビジョン second-revision があります。全体的なネットワーク到達性の結果には、first-revision では到達できますが、second-revision では到達できない可能性があります。

接続テストを作成するときに、Cloud Run サービスのリビジョンのリストから選択できます。

Cloud Run サービスのリビジョンから VM インスタンスへの接続テスト

コンソール

  1. Google Cloud コンソールで、[接続テスト] ページに移動します。

    [接続テスト] に移動

  2. [接続テストを作成] を選択します。
  3. テスト名を入力します。
  4. プロトコルを選択します。
  5. [ソース] で次の操作を行います。
    1. [送信元エンドポイント] メニューから、[Cloud Run] を選択します。
    2. [Cloud Run サービス] メニューで、接続をテストする特定の Cloud Run サービスを選択します。たとえば、helloworld-run を選択します。
      1. 送信元エンドポイントが現在のプロジェクト以外のプロジェクトにある場合は、[エンドポイントは「PROJECT_NAME」以外のプロジェクトに存在します。] を選択します。
      2. エンドポイントが存在するプロジェクトを選択します。
    3. [Cloud Run のリビジョン] メニューで、テスト元の Cloud Run リビジョンを選択します。
  6. [宛先] で、次の操作を行います。

    1. [宛先エンドポイント] メニューで [VM インスタンス] を選択します。
    2. [宛先 VM インスタンス] メニューで、特定の宛先 VM インスタンスを選択します。
    3. [宛先ネットワーク インターフェース] メニューで、ネットワーク インターフェースを選択します。

      VM インスタンスに複数のネットワーク インターフェースがある場合は、VM ネットワーク インターフェースを選択して、宛先の場所を一意に識別します。

    4. 省略可: リストから宛先 IP アドレスを選択します。デフォルトは、宛先 VM インスタンスの IP アドレスです。

  7. [宛先ポート] フィールドに、指定した宛先の宛先ポートを入力します。

  8. [作成] をクリックします。

  9. テストが終了すると、[接続テスト] のメインページが読み込まれ、このテストと他のテストを含むリストが表示されます。テスト結果を表示するに進みます。

gcloud

gcloud network-management connectivity-tests create コマンドを使用します。サンプル値は、実際の VPC ネットワークの値で置き換えてください。

gcloud network-management connectivity-tests create NAME \
    --source-cloud-run-revision=CLOUD_RUN_REVISION \
    --destination-instance=DESTINATION_INSTANCE \
    --destination-ip-address=DESTINATION_IP_ADDRESS \
    --protocol=PROTOCOL

次のように置き換えます。

  • NAME: 接続テストの名前。
  • CLOUD_RUN_REVISION: ソースの Cloud Run リビジョンの URI(例: projects/myproject/locations/us-central1/revisions/cloudrun-revision)。
  • DESTINATION_INSTANCE: 宛先 VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-2)。
  • DESTINATION_IP_ADDRESS: テストの宛先 VM インスタンスの IP アドレス。IP アドレスは、宛先 VM インスタンスの IP アドレスのいずれかにする必要があります。
  • PROTOCOL: サーバーレス VPC アクセス コネクタでサポートされているネットワーク プロトコル(TCP または UDP)。

API

projects.locations.global.connectivityTests.create メソッドを使用します。

POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
{
  "source": {
    "cloudRunRevision": {
      "uri": "CLOUD_RUN_REVISION",
      },
  },
    "destination": {
      "instance": "DESTINATION_INSTANCE",
      "ipAddress": "DESTINATION_IP_ADDRESS"
      },
    "protocol": "PROTOCOL",
  }'

次のように置き換えます。

  • PROJECT_ID: ソースとなる Cloud Functions の関数のプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。
  • CLOUD_RUN_REVISION: ソースの Cloud Run リビジョンの URI(例: projects/myproject/locations/us-central1/revisions/cloudrun-revision)。
  • DESTINATION_INSTANCE: 宛先 VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-2)。
  • DESTINATION_IP_ADDRESS: テストの宛先 VM インスタンスの IP アドレス。IP アドレスは、宛先 VM インスタンスの IP アドレスのいずれかにする必要があります。
  • PROTOCOL: サーバーレス VPC アクセス コネクタでサポートされているネットワーク プロトコル(TCP または UDP)。

Cloud Run サービスのリビジョンから IP アドレスへの接続テスト

コンソール

  1. Google Cloud コンソールで、[接続テスト] ページに移動します。

    [接続テスト] に移動

  2. [接続テストを作成] を選択します。
  3. テスト名を入力します。
  4. プロトコルを選択します。
  5. [ソース] で次の操作を行います。
    1. [送信元エンドポイント] メニューから、[Cloud Run] を選択します。
    2. [Cloud Run サービス] メニューで、接続をテストする特定の Cloud Run サービスを選択します。たとえば、helloworld-run を選択します。
      1. 送信元エンドポイントが現在のプロジェクト以外のプロジェクトにある場合は、[エンドポイントは「PROJECT_NAME」以外のプロジェクトに存在します。] を選択します。
      2. エンドポイントが存在するプロジェクトを選択します。
    3. [Cloud Run のリビジョン] メニューで、テスト元の Cloud Run リビジョンを選択します。
  6. [宛先] で [IP アドレス] を選択し、IP アドレスを入力します。
  7. [宛先ポート] フィールドに、指定した宛先の宛先ポートを入力します。
  8. [作成] をクリックします。
  9. テストが終了すると、[接続テスト] のメインページが読み込まれ、このテストと他のテストを含むリストが表示されます。テスト結果を表示するに進みます。

gcloud

gcloud network-management connectivity-tests create コマンドを使用します。サンプル値は、実際の VPC ネットワークの値で置き換えてください。

gcloud network-management connectivity-tests create NAME \
    --source-cloud-run-revision=CLOUD_RUN_REVISION \
    --destination-ip-address=DESTINATION_IP_ADDRESS \
    --protocol=PROTOCOL

次のように置き換えます。

  • NAME: 接続テストの名前。
  • CLOUD_RUN_REVISION: ソースの Cloud Run リビジョンの URI(例: projects/myproject/locations/us-central1/revisions/cloudrun-revision)。
  • DESTINATION_IP_ADDRESS: テストの宛先となる外部の宛先 IP アドレス。
  • PROTOCOL: サーバーレス VPC アクセス コネクタでサポートされているネットワーク プロトコル(TCP または UDP)。

API

projects.locations.global.connectivityTests.create メソッドを使用します。

POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
{
  "source": {
    "cloudRunRevision": {
      "uri": "CLOUD_RUN_REVISION",
      },
  },
    "destination": {
      "ipAddress": "DESTINATION_IP_ADDRESS",
      },
    "protocol": "PROTOCOL",
  }'

次のように置き換えます。

  • PROJECT_ID: ソースとなる Cloud Functions の関数のプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。
  • CLOUD_RUN_REVISION: ソースの Cloud Run リビジョンの URI(例: projects/myproject/locations/us-central1/revisions/cloudrun-revision)。
  • DESTINATION_IP_ADDRESS: テストの宛先となる外部の宛先 IP アドレス。
  • PROTOCOL: サーバーレス VPC アクセス コネクタでサポートされているネットワーク プロトコル(TCP または UDP)。

Cloud Run サービスのリビジョンから Google マネージド サービスへの接続テスト

コンソール

  1. Google Cloud コンソールで、[接続テスト] ページに移動します。

    [接続テスト] に移動

  2. [接続テストを作成] を選択します。
  3. テスト名を入力します。
  4. プロトコルを選択します。
  5. [ソース] で次の操作を行います。
    1. [送信元エンドポイント] メニューから、[Cloud Run] を選択します。
    2. [Cloud Run サービス] メニューで、接続をテストする特定の Cloud Run サービスを選択します。たとえば、helloworld-run を選択します。
      1. 送信元エンドポイントが現在のプロジェクト以外のプロジェクトにある場合は、[エンドポイントは「PROJECT_NAME」以外のプロジェクトに存在します。] を選択します。
      2. エンドポイントが存在するプロジェクトを選択します。
    3. [Cloud Run のリビジョン] メニューで、テスト元の Cloud Run リビジョンを選択します。
  6. [宛先] で、次の操作を行います。
    1. [宛先エンドポイント] メニューで、GKE クラスタ コントロール プレーンなどの Google マネージド サービスのリソースの種類を選択します。
    2. [宛先 GKE クラスタ コントロール プレーン] メニューで、GKE コントロール プレーンへの接続をテストするクラスタを選択します。
    3. 省略可: リストから宛先 GKE クラスタ コントロール プレーンの IP アドレスを選択します。デフォルトは、送信元 VM インスタンスの IP アドレスです。
  7. [宛先ポート] フィールドに、指定した宛先の宛先ポートを入力します。
  8. [作成] をクリックします。
  9. テストが終了すると、[接続テスト] のメインページが読み込まれ、このテストと他のテストを含むリストが表示されます。テスト結果を表示するに進みます。

gcloud

gcloud network-management connectivity-tests create コマンドを使用します。サンプル値は、実際の VPC ネットワークの値で置き換えてください。

gcloud network-management connectivity-tests create NAME \
    --source-cloud-run-revision=CLOUD_RUN_REVISION \
      DESTINATION_RESOURCE_FLAG=DESTINATION_ENDPOINT \
    --destination-port=DESTINATION_PORT \
    --protocol=PROTOCOL

次のように置き換えます。

  • NAME: 接続テストの名前。
  • CLOUD_RUN_REVISION: ソースの Cloud Run リビジョンの URI(例: projects/myproject/locations/us-central1/revisions/cloudrun-revision)。
  • PROJECT_NAME: エンドポイントが配置されているプロジェクト名(例: myproject)。
  • DESTINATION_RESOURCE_FLAG: Google マネージド サービス リソースのタイプを指定するフラグ。

    使用可能なオプションについては、以下をご覧ください。

    • --destination-gke-master-cluster
    • --destination-cloud-sql-instance

    詳細については、gcloud network-management connectivity-tests create リファレンスをご覧ください。

  • DESTINATION_ENDPOINT: 宛先エンドポイントの URI(たとえば、--destination-gke-master-cluster フラグの場合は projects/myproject/locations/us-central1/clusters/cluster-1)。

  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。デフォルトはポート 80 です。

  • PROTOCOL: サーバーレス VPC アクセス コネクタでサポートされているネットワーク プロトコル(TCP または UDP)。

API

projects.locations.global.connectivityTests.create メソッドを使用します。

POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
{
  "source": {
    "cloudRunRevision": {
      "uri": "CLOUD_RUN_REVISION",
      },
  },
    "destination": {
      "DESTINATION_RESOURCE_FIELD": "DESTINATION_ENDPOINT",
      "port": DESTINATION_PORT,
    },
    "protocol": "PROTOCOL",
  }'

次のように置き換えます。

  • PROJECT_ID: ソースとなる Cloud Functions の関数のプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。
  • CLOUD_RUN_REVISION: ソースの Cloud Run リビジョンの URI(例: projects/myproject/locations/us-central1/revisions/cloudrun-revision)。
  • DESTINATION_RESOURCE_FIELD: Google マネージド サービス リソースのタイプを指定するフィールド。

    使用可能なオプションについては、以下をご覧ください。

    • gkeMasterCluster
    • cloudSqlInstance

    詳細については、エンドポイント リファレンスをご覧ください。

  • DESTINATION_ENDPOINT: 宛先エンドポイントの URI(たとえば、gkeMasterCluster フィールドの場合は projects/myproject/locations/us-central1/clusters/cluster-1)。

  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。デフォルトはポート 80 です。

  • PROTOCOL: サーバーレス VPC アクセス コネクタでサポートされているネットワーク プロトコル(TCP または UDP)。

VPC ネットワークから Google Cloud 以外のネットワークへのテスト

VPC ネットワークから Google Cloud 以外のネットワークへのテストは、次の手順で行います。

コンソール

  1. Google Cloud コンソールで、[接続テスト] ページに移動します。

    [接続テスト] に移動

  2. [接続テストを作成] を選択します。
  3. [テスト名] フィールドにテストの名前を入力します。
  4. [プロトコル] リストでプロトコルを選択します。
  5. [ソース] で [IP アドレス] を選択し、IP アドレスを入力します。
    1. VPC ネットワークが別のプロジェクトにある場合、[これは Google Cloud で使用される IP アドレスです] を選択します。次に、[送信元 IP アドレスまたはサービス プロジェクト] フィールドで、ネットワークが配置されているプロジェクトを選択します。
    2. プライベート IP アドレスが RFC 1918 アドレス空間に含まれない場合は、[I confirm that the source endpoint resides in a range outside of the RFC 1918 address space] というラベルの付いたチェックボックスをオンにして、IP アドレスを含むソース ネットワークを選択します。
  6. [宛先] で [IP アドレス] を選択し、外部 IP アドレスを入力します。
  7. [これは Google Cloud で使用される IP アドレスです] をオフにします。
  8. [宛先ポート] フィールドに、指定した宛先の宛先ポートを入力します。
  9. [作成] をクリックします。
  10. テストが終了すると、[接続テスト] のメインページが読み込まれ、このテストと他のテストを含むリストが表示されます。テスト結果を表示するに進みます。

gcloud

次のコマンドを入力して、内部 IP アドレスと外部 IP アドレスの間をテストします。コマンド オプションの変数は、VPC ネットワークの値に置き換えてください。

gcloud network-management connectivity-tests create NAME \
    --source-ip-address=SOURCE_IP_ADDRESS \
    --source-network=SOURCE_NETWORK \
    --destination-ip-address=DESTINATION_IP_ADDRESS \
    --protocol=PROTOCOL

次のように置き換えます。

  • NAME: 接続テストの名前。
  • SOURCE_IP_ADDRESS: テストの送信元 IP アドレス。
  • SOURCE_NETWORK: 送信元 IP アドレスがある VPC ネットワークの URI(例: projects/myproject/global/networks/default)。
  • DESTINATION_IP_ADDRESS: テストの宛先となる外部の宛先 IP アドレス。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

IP アドレスが Google Cloud 内にあるかどうかや、送信元エンドポイントと宛先エンドポイントが RFC 1918 アドレス空間に含まれないかどうかを確認する必要はありません。これらのパラメータは、送信元 IP アドレスと宛先 IP アドレスに基づいて自動的に選択されます。

API

この例では、送信元 IP アドレスから宛先 IP アドレスに ping が届くかどうかをテストします。

projects.locations.global.connectivityTests.create メソッドを使用します。

  POST https://reachability.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
  {
    "source": {
      "ipAddress": "SOURCE_IP_ADDRESS",
      "network": "SOURCE_NETWORK"
    },
    "destination": {
      "ipAddress": "DESTINATION_IP_ADDRESS",
      "port": "DESTINATION_PORT",
    },
      "protocol": "PROTOCOL".
  }'

次のように置き換えます。

  • PROJECT_ID: ソース VM のプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。
  • SOURCE_IP_ADDRESS: テストの送信元 IP アドレス。
  • SOURCE_NETWORK: 送信元 IP アドレスがある VPC ネットワークの URI(例: projects/myproject/global/networks/default)。
  • DESTINATION_IP_ADDRESS: テストの宛先となる外部の宛先 IP アドレス。
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

Python

次のサンプルコードは、2 つの IP アドレス間のテストを作成します。詳細については、Python 用 Google API クライアント ライブラリの create をご覧ください。

test_input = {
  "source": {
      "ipAddress": "SOURCE_IP_ADDRESS",
      "projectId": "SOURCE_IP_PROJECT_ID"
  },
  "destination": {
      "ipAddress": "DESTINATION_IP_ADDRESS",
      "port": "DESTINATION_PORT",
  },
  "protocol": "PROTOCOL",
}

request = api.projects().locations().global_().connectivityTests().create(
    parent="projects/PROJECT_ID/locations/global",
    testId="TEST_ID",
    body=test_input)

print(json.dumps(request.execute(), indent=4))

次のように置き換えます。

  • SOURCE_IP_ADDRESS: テストの送信元 IP アドレス。
  • SOURCE_IP_PROJECT_ID: ソース IP アドレスのプロジェクト ID。
  • DESTINATION_IP_ADDRESS: テストの宛先となる外部の宛先 IP アドレス。
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。
  • PROJECT_ID: テストを作成するプロジェクトのプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。

IP アドレスが Google Cloud 内にあるかどうかや、送信元エンドポイントと宛先エンドポイントが RFC 1918 アドレス空間に含まれないかどうかを確認する必要はありません。これらのパラメータは、送信元 IP アドレスと宛先 IP アドレスに基づいて自動的に選択されます。

次のサンプルは、2 つの IP アドレス間のテストを作成します。

test_input = {
    "source": {
        "ipAddress": "SOURCE_IP_ADDRESS",
        "networkType": "GCP_NETWORK"
    },
    "destination": {
        "ipAddress": "DESTINATION_IP_ADDRESS",
        "port": "DESTINATION_PORT",
    },
    "protocol": "PROTOCOL",
}

request = api.projects().locations().global_().connectivityTests().create(
  parent="projects/PROJECT_ID/locations/global",
  testId="TEST_ID",
  body=test_input)

print(json.dumps(request.execute(), indent=4))

次のように置き換えます。

  • SOURCE_IP_ADDRESS: テストの送信元 IP アドレス。
  • SOURCE_NETWORK_TYPE: ソースがあるネットワークのタイプ。この場合は、GCP_NETWORK という値を使用します。
  • DESTINATION_IP_ADDRESS: 宛先の IP アドレス
  • DESTINATION_PORT: 宛先の TCP または UDP ポート番号。このオプションは、TCP または UDP プロトコルに対してのみ有効です。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。
  • PROJECT_ID: テストを作成するプロジェクトのプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。

VPC スポークから同じ Network Connectivity Center ハブに接続された別の VPC スポークへの接続をテストする

Network Connectivity Center ハブの VPC スポークから同じハブに接続された別の VPC スポークをテストする手順は次のとおりです。

コンソール

  1. Google Cloud コンソールで、[接続テスト] ページに移動します。

    [接続テスト] に移動

  2. [接続テストを作成] を選択します。
  3. [テスト名] フィールドにテストの名前を入力します。
  4. [プロトコル] リストでプロトコルを選択します。
  5. [ソース] で、[IP アドレス] を選択し、ソース スポーク VPC ネットワークからの IP アドレスを入力します。
  6. [送信先] で、[IP アドレス] を選択し、テストする別のスポーク VPC ネットワークの IP アドレスを入力します。
  7. [宛先ポート] フィールドに、指定した宛先の宛先ポートを入力します。
  8. [作成] をクリックします。
  9. テストが終了すると、[接続テスト] のメインページが読み込まれ、このテストと他のテストを含むリストが表示されます。テスト結果を表示するに進みます。

gcloud

次のコマンドを入力して、2 つのスポーク間でテストします。コマンド オプションの変数は、VPC ネットワークの値に置き換えてください。

gcloud network-management connectivity-tests create NAME \
    --source-ip-address=SOURCE_IP_ADDRESS \
    --source-network=SOURCE_NETWORK \
    --destination-ip-address=DESTINATION_IP_ADDRESS \
    --protocol=PROTOCOL

次のように置き換えます。

  • NAME: 接続テストの名前
  • SOURCE_IP_ADDRESS: テストの送信元 IP アドレス。
  • SOURCE_NETWORK: 送信元 IP アドレスがある VPC ネットワークの URI(例: projects/myproject/global/networks/default)。
  • DESTINATION_IP_ADDRESS: テストする別のスポーク VPC ネットワーク内の宛先 IP アドレス。
  • PROTOCOL: 接続テストでサポートされているプロトコルデフォルトのプロトコルは TCP です。

IP アドレスが Google Cloud 内にあるかどうかや、送信元エンドポイントと宛先エンドポイントが RFC 1918 アドレス空間に含まれないかどうかを確認する必要はありません。これらのパラメータは、送信元 IP アドレスと宛先 IP アドレスに基づいて自動的に選択されます。

API

この例では、送信元 IP アドレスから宛先 IP アドレスに ping が届くかどうかをテストします。

projects.locations.global.connectivityTests.create メソッドを使用します。

  POST https://reachability.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
  {
    "source": {
      "ipAddress": "SOURCE_IP_ADDRESS",
      "network": "SOURCE_NETWORK"
    },
    "destination": {
      "ipAddress": "DESTINATION_IP_ADDRESS",
      "port": "DESTINATION_PORT",
    },
      "protocol": "PROTOCOL".
  }'

次のように置き換えます。

  • PROJECT_ID: ソース VM のプロジェクト ID
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。
  • SOURCE_IP_ADDRESS: テストの送信元 IP アドレス。
  • SOURCE_NETWORK: 送信元 IP アドレスがある VPC ネットワークの URI(例: projects/myproject/global/networks/default)。
  • DESTINATION_IP_ADDRESS: テストする別のスポーク VPC ネットワーク内の宛先 IP アドレス。
  • DESTINATION_PORT: 宛先の TCP または UDP ポート番号。このオプションは、TCP または UDP プロトコルに対してのみ有効です。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

Python

次のサンプルコードは、2 つの IP アドレス間のテストを作成します。詳細については、Python 用 Google API クライアント ライブラリのcreate メソッドをご覧ください。

test_input = {
  "source": {
      "ipAddress": "SOURCE_IP_ADDRESS",
      "projectId": "SOURCE_IP_PROJECT_ID"
  },
  "destination": {
      "ipAddress": "DESTINATION_IP_ADDRESS",
      "port": "DESTINATION_PORT",
  },
  "protocol": "PROTOCOL",
}

request = api.projects().locations().global_().connectivityTests().create(
    parent="projects/PROJECT_ID/locations/global",
    testId="TEST_ID",
    body=test_input)

print(json.dumps(request.execute(), indent=4))

次のように置き換えます。

  • SOURCE_IP_ADDRESS: テストの送信元 IP アドレス。
  • SOURCE_IP_PROJECT_ID: ソース IP アドレスのプロジェクト ID
  • DESTINATION_IP_ADDRESS: テストする別のスポーク VPC ネットワーク内の宛先 IP アドレス。
  • DESTINATION_PORT: 宛先の TCP または UDP ポート番号。このオプションは、TCP または UDP プロトコルに対してのみ有効です。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。
  • PROJECT_ID: テストを作成するプロジェクトのプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。

IP アドレスが Google Cloud 内にあるかどうかや、送信元エンドポイントと宛先エンドポイントが RFC 1918 アドレス空間に含まれないかどうかを確認する必要はありません。これらのパラメータは、送信元 IP アドレスと宛先 IP アドレスに基づいて自動的に選択されます。

次のサンプルは、2 つの IP アドレス間のテストを作成します。

test_input = {
    "source": {
        "ipAddress": "SOURCE_IP_ADDRESS",
        "networkType": "GCP_NETWORK"
    },
    "destination": {
        "ipAddress": "DESTINATION_IP_ADDRESS",
        "port": "DESTINATION_PORT",
    },
    "protocol": "PROTOCOL",
}

request = api.projects().locations().global_().connectivityTests().create(
  parent="projects/PROJECT_ID/locations/global",
  testId="TEST_ID",
  body=test_input)

print(json.dumps(request.execute(), indent=4))

次のように置き換えます。

  • SOURCE_IP_ADDRESS: テストの送信元 IP アドレス。
  • SOURCE_NETWORK_TYPE: ソースがあるネットワークのタイプ。この場合は、GCP_NETWORK という値を使用します。
  • DESTINATION_IP_ADDRESS: 宛先 VM の IP アドレス。
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。
  • PROJECT_ID: テストを作成するプロジェクトのプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。

VM から Google Cloud 以外のネットワークへのテスト

このテストでは、ソース VM から Google ネットワーク エッジ ロケーションへの接続を分析します。

コンソール

  1. Google Cloud コンソールで、[接続テスト] ページに移動します。

    [接続テスト] に移動

  2. [接続テストを作成] を選択します。
  3. [テスト名] フィールドにテストの名前を入力します。
  4. [プロトコル] リストでプロトコルを選択します。
  5. [ソース] で次の操作を行います。

    1. [送信元エンドポイント] メニューで [VM インスタンス] を選択します。
    2. [送信元 VM インスタンス] メニューで、特定の送信元 VM インスタンスを選択します。
    3. [ソース ネットワーク インターフェース] メニューで、ネットワーク インターフェースを選択します。

      VM インスタンスに複数のネットワーク インターフェースがある場合はソースの場所を一意に識別する VM ネットワーク インターフェースを選択します。

    4. 省略可: リストから送信元 IP アドレスを選択します。デフォルトは、送信元 VM インスタンスの IP アドレスです。

  6. [宛先] で、次の操作を行います。

    1. [宛先エンドポイント] メニューで、[IP アドレス] を選択します。
    2. 外部の宛先 IP アドレスを入力します。
    3. [これは Google Cloud で使用される IP アドレスです] をオフにします。
  7. [宛先ポート] フィールドに、指定した宛先の宛先ポートを入力します。

  8. [作成] をクリックします。

  9. テストが終了すると、[接続テスト] のメインページが読み込まれ、このテストと他のテストを含むリストが表示されます。テスト結果を表示するに進みます。

gcloud

VM と外部 IP アドレスの間でテストするには、次のコマンドを入力します。サンプル値は、実際の VPC ネットワークの値で置き換えてください。

gcloud network-management connectivity-tests create NAME \
    --source-instance=SOURCE_INSTANCE \
    --source-ip-address=SOURCE_IP_ADDRESS \
    --destination-ip-address=DESTINATION_IP_ADDRESS \
    --destination-port=DESTINATION_PORT \
    --protocol=PROTOCOL

次のように置き換えます。

  • NAME: 接続テストの名前。
  • SOURCE_INSTANCE: ソース VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-1)。
  • SOURCE_IP_ADDRESS: テスト元のソース VM インスタンスの IP アドレス。IP アドレスは、ソース VM インスタンスの IP アドレスのいずれかである必要があります。
  • DESTINATION_IP_ADDRESS: テストの宛先となる外部の宛先 IP アドレス。
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

API

次のテストの例では、既存のネットワーク構成で VM instance1 が宛先 IP アドレスに ping できるかどうかを確認します。

projects.locations.global.connectivityTests.create メソッドを使用します。

 POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
   {
     "source": {
       "instance": "SOURCE_INSTANCE",
       "ipAddress": "SOURCE_IP_ADDRESS",
     },
    "destination": {
      "ipAddress": "DESTINATION_IP_ADDRESS",
      "port": "DESTINATION_PORT",
     },
     "protocol": "PROTOCOL",
   }'

次のように置き換えます。

  • PROJECT_ID: ソース VM のプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。
  • SOURCE_INSTANCE: ソース VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-1)。
  • SOURCE_IP_ADDRESS: テスト元のソース VM インスタンスの IP アドレス。IP アドレスは、ソース VM インスタンスの IP アドレスのいずれかである必要があります。
  • DESTINATION_IP_ADDRESS: テストの宛先となる外部の宛先 IP アドレス。
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

Python

次のサンプルコードは、VM インスタンスと外部 IP アドレスの間のテストを作成します。詳細については、Python 用 Google API クライアント ライブラリの create をご覧ください。

test_input = {
  "source": {
      "instance":
          "SOURCE_INSTANCE",
      "ipAddress":
          "SOURCE_IP_ADDRESS",
      "projectId":
          "SOURCE_INSTANCE_PROJECT_ID"
  },
  "destination": {
      "ipAddress": "DESTINATION_IP_ADDRESS",
      "port": "DESTINATION_PORT",
  },
  "protocol":
      "PROTOCOL",
}

request = api.projects().locations().global_().connectivityTests().create(
    parent="projects/PROJECT_ID/locations/global",
    testId="TEST_ID",
    body=test_input)

print(json.dumps(request.execute(), indent=4))

次のように置き換えます。

  • SOURCE_INSTANCE: ソース VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-1)。
  • SOURCE_IP_ADDRESS: テスト元のソース VM インスタンスの IP アドレス。IP アドレスは、ソース VM インスタンスの IP アドレスのいずれかである必要があります。
  • SOURCE_INSTANCE_PROJECT_ID: ソース VM のプロジェクト ID。
  • DESTINATION_IP_ADDRESS: テストの宛先となる外部の宛先 IP アドレス。
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。
  • PROJECT_ID: テストを作成するプロジェクトのプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。

VM または IP アドレスからロードバランサへのテスト

このセクションでは、VM または IP アドレスから Google Cloud ロードバランサへの接続をテストする方法について説明します。

接続テストの構成分析は、全タイプの Google Cloud ロードバランサへのシミュレーション パケットによるトレースをサポートしています。外部アプリケーション ロードバランサのトレースパスは、外部プロキシ ネットワーク ロードバランサにも適用されます。詳細については、Cloud Load Balancing の概要をご覧ください。

以下に対する接続をテストできます。

VM からロードバランサへのテスト

このセクションでは、ソース VM からロードバランサへの接続を分析します。

コンソール

  1. Google Cloud コンソールで、[接続テスト] ページに移動します。

    [接続テスト] に移動

  2. [接続テストを作成] を選択します。
  3. [テスト名] フィールドにテストの名前を入力します。
  4. [プロトコル] リストでプロトコルを選択します。
  5. [ソース] で次の操作を行います。

    1. [送信元エンドポイント] メニューで [VM インスタンス] を選択します。
    2. [送信元 VM インスタンス] メニューで、特定の送信元 VM インスタンスを選択します。
    3. [ソース ネットワーク インターフェース] メニューで、ネットワーク インターフェースを選択します。

      VM インスタンスに複数のネットワーク インターフェースがある場合はソースの場所を一意に識別する VM ネットワーク インターフェースを選択します。

    4. 省略可: リストから送信元 IP アドレスを選択します。デフォルトは、送信元 VM インスタンスの IP アドレスです。

  6. [宛先] で、次の操作を行います。

    1. [宛先エンドポイント] メニューで、[ロードバランサ] を選択します。
    2. [宛先ロードバランサ] メニューで、ロードバランサを選択します。

      宛先エンドポイントが現在のプロジェクト以外のプロジェクトにある場合は、[エンドポイントは「PROJECT_NAME」以外のプロジェクトに存在します。] を選択します。次に、[宛先エンドポイント プロジェクト] フィールドで、エンドポイントが配置されているプロジェクトを選択します。

    3. 宛先転送ルールを選択します。

  7. [宛先ポート] フィールドに、指定した宛先の宛先ポートを入力します。

  8. [作成] をクリックします。

  9. テストが終了すると、[接続テスト] のメインページが読み込まれ、このテストと他のテストを含むリストが表示されます。テスト結果を表示するに進みます。

gcloud

VM とロードバランサの間でテストするには、次のコマンドを入力します。

gcloud network-management connectivity-tests create NAME \
    --source-instance=SOURCE_INSTANCE \
    --source-ip-address=SOURCE_IP_ADDRESS \
    --protocol=PROTOCOL \
    --destination-ip-address=DESTINATION_IP_ADDRESS \
    --destination-port=DESTINATION_PORT \

次のように置き換えます。

  • NAME: 接続テストの名前。
  • SOURCE_INSTANCE: ソース VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-1)。
  • SOURCE_IP_ADDRESS: テスト元のソース VM インスタンスの IP アドレス。IP アドレスは、ソース VM インスタンスの IP アドレスのいずれかである必要があります。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。
  • DESTINATION_IP_ADDRESS: テストする外部の宛先 IP アドレス。
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。

API

projects.locations.global.connectivityTests.create メソッドを使用します。

 POST https: //networkmanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
   {
     "source": {
       "instance": "SOURCE_INSTANCE",
       "ipAddress": "SOURCE_IP_ADDRESS",
     },
    "destination": {
      "forwardingRule": "DESTINATION_FORWARDING_RULE",
      "port": "DESTINATION_PORT",
     },
     "protocol": "PROTOCOL",
   }'

次のように置き換えます。

  • PROJECT_ID: ソース VM のプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。
  • SOURCE_INSTANCE: ソース VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-1)。
  • SOURCE_IP_ADDRESS: テスト元のソース VM インスタンスの IP アドレス。IP アドレスは、ソース VM インスタンスの IP アドレスのいずれかである必要があります。
  • DESTINATION_FORWARDING_RULE: エンドポイントを表す宛先転送ルール。
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

Python

次のサンプルコードは、VM インスタンスとロードバランサのエンドポイント間でのテストを作成します。詳細については、Python 用 Google API クライアント ライブラリの create をご覧ください。

test_input = {
  "source": {
      "instance":
          "SOURCE_INSTANCE",
      "ipAddress":
          "SOURCE_IP_ADDRESS",
      "projectId":
          "SOURCE_INSTANCE_PROJECT_ID"
  },
  "destination": {
      "forwardingRule": "DESTINATION_FORWARDING_RULE",
      "port": "DESTINATION_PORT",
  },
  "protocol":
      "PROTOCOL",
}

request = api.projects().locations().global_().connectivityTests().create(
    parent="projects/PROJECT_ID/locations/global",
    testId="TEST_ID",
    body=test_input)

print(json.dumps(request.execute(), indent=4))

次のように置き換えます。

  • SOURCE_INSTANCE: ソース VM の URI(例: projects/myproject/zones/us-east1-b/instances/instance-1)。
  • SOURCE_IP_ADDRESS: テスト元のソース VM インスタンスの IP アドレス。IP アドレスは、ソース VM インスタンスの IP アドレスのいずれかである必要があります。
  • SOURCE_INSTANCE_PROJECT_ID: ソース VM のプロジェクト ID。
  • DESTINATION_FORWARDING_RULE: エンドポイントを表す宛先転送ルール。
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。
  • PROJECT_ID: テストを作成するプロジェクトのプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。

IP アドレスからロードバランサへのテスト

コンソール

  1. Google Cloud コンソールで、[接続テスト] ページに移動します。

    [接続テスト] に移動

  2. [接続テストを作成] を選択します。
  3. [テスト名] フィールドにテストの名前を入力します。
  4. [プロトコル] リストでプロトコルを選択します。
  5. [ソース] で次の操作を行います。
    1. [送信元エンドポイント] メニューで、[IP アドレス] を選択します。
    2. [送信元 IP アドレス] フィールドに、送信元 IP アドレスを入力します。
      1. VPC ネットワークが別のプロジェクトにある場合、[これは Google Cloud で使用される IP アドレスです] を選択します。次に、[送信元 IP アドレスまたはサービス プロジェクト] フィールドで、ネットワークが配置されているプロジェクトを選択します。
      2. IP アドレスが RFC 1918 アドレス空間に含まれない場合は、[I confirm that the source endpoint resides in a range outside of the RFC 1918 address space] をオンにします。次に、[ソース ネットワーク] リストで、送信元 IP アドレスを含むネットワークを選択します。
  6. [宛先] で、次の操作を行います。

    1. [宛先エンドポイント] メニューで、[ロードバランサ] を選択します。
    2. [宛先ロードバランサ] メニューで、ロードバランサ エンドポイントを選択します。

      宛先エンドポイントが現在のプロジェクト以外のプロジェクトにある場合は、[エンドポイントは「PROJECT_NAME」以外のプロジェクトに存在します。] を選択します。次に、[宛先エンドポイント プロジェクト] フィールドで、エンドポイントが配置されているプロジェクトを選択します。

    3. 宛先転送ルールを選択します。

  7. [宛先ポート] フィールドに、指定した宛先の宛先ポートを入力します。

  8. [作成] をクリックします。

  9. テストが終了すると、[接続テスト] のメインページが読み込まれ、このテストと他のテストを含むリストが表示されます。テスト結果を表示するに進みます。

gcloud

gcloud network-management connectivity-tests create コマンドを使用します。サンプル値は、実際の VPC ネットワークの値で置き換えてください。

gcloud network-management connectivity-tests create NAME \
    --source-project=SOURCE_PROJECT \
    --source-ip-address=SOURCE_IP_ADDRESS \
    --protocol=PROTOCOL \
    --destination-ip-address=DESTINATION_IP_ADDRESS \
    --destination-port=DESTINATION_PORT \

次のように置き換えます。

  • NAME: 接続テストの名前。
  • SOURCE_PROJECT: 送信元エンドポイントのプロジェクト ID。
  • SOURCE_IP_ADDRESS: テスト元のソース VM インスタンスの IP アドレス。IP アドレスは、ソース VM インスタンスの IP アドレスのいずれかである必要があります。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。
  • DESTINATION_IP_ADDRESS: テストの宛先となる外部の宛先 IP アドレス。
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。

エンドポイントを使用してマネージド サービスまたは別の VPC ネットワーク内のサービスにアクセスする場合、エンドポイントは内部 IP アドレスであるため、DESTINATION_NETWORK を指定する必要があります。

API

次の例では、送信元 IP アドレスからロードバランサのエンドポイントに ping できるかどうかテストします。

projects.locations.global.connectivityTests.create メソッドを使用します。

Google Cloud の外部 IP アドレスとして送信元 IP アドレスを指定する場合は、NON_GCP_NETWORKnetworkType を指定する必要があります。次のコマンドで、各値は Google Cloud ネットワークの値に置き換えてください。

  POST https://reachability.googleapis.com/v1/projects/PROJECT_ID/locations/global/connectivityTests?testId=TEST_ID'
  {
    "source": {
      "ipAddress": "SOURCE_IP_ADDRESS",
      "networkType": "NON_GCP_NETWORK",
    },
    "destination": {
      "forwardingRule": "DESTINATION_FORWARDING_RULE",
      "port": "DESTINATION_PORT",
    },
    "protocol": "PROTOCOL",
  }'

次のように置き換えます。

  • SOURCE_IP_ADDRESS: テストの送信元 IP アドレス。
  • DESTINATION_FORWARDING_RULE: エンドポイントを表す宛先転送ルール。
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。

エンドポイントを使用して公開サービスにアクセスする場合は、エンドポイントに内部 IP アドレスがあるため、DESTINATION_NETWORK を指定する必要があります。

Python

次のサンプルコードは、IP アドレスとロードバランサのエンドポイント間のテストを作成します。詳細については、Python 用 Google API クライアント ライブラリの create をご覧ください。

Google Cloud の外部 IP アドレスとして送信元 IP アドレスを指定する場合は、NON_GCP_NETWORKnetworkType を指定する必要があります。

test_input = {
    "source": {
        "ipAddress": "SOURCE_IP_ADDRESS",
        "networkType": "NON_GCP_NETWORK"
    },
    "destination": {
        "forwardingRule": "DESTINATION_FORWARDING_RULE",
        "port": "DESTINATION_PORT",
        "projectId": "DESTINATION_IP_PROJECT_ID"
    },
    "protocol": "PROTOCOL",
}

  request = api.projects().locations().global_().connectivityTests().create(
  parent="projects/PROJECT_ID/locations/global",
  testId="TEST_ID",
  body=test_input)

print(json.dumps(request.execute(), indent=4))

次のように置き換えます。

  • SOURCE_IP_ADDRESS: テストの送信元 IP アドレス。
  • SOURCE_NETWORK_TYPE: ソースがあるネットワークのタイプ。この場合は、NON_GCP_NETWORK という値を使用します。
  • DESTINATION_FORWARDING_RULE: エンドポイントを表す宛先転送ルール。
  • DESTINATION_PORT: 宛先の IP プロトコル ポート。このオプションは、TCP プロトコルまたは UDP プロトコルに対してのみ有効です。
  • DESTINATION_IP_PROJECT_ID: 宛先 IP アドレスのプロジェクト ID。
  • PROTOCOL: 接続テストでサポートされているプロトコル。デフォルトのプロトコルは TCP です。
  • PROJECT_ID: テストを作成するプロジェクトのプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。

エンドポイントを使用して公開サービスにアクセスする場合は、エンドポイントに内部 IP アドレスがあるため、DESTINATION_NETWORK を指定する必要があります。

IP アドレスが Google Cloud 内にあるかどうかや、送信元と宛先のエンドポイントまたはバックエンドが RFC 1918 アドレス空間に含まれないかどうかを確認する必要はありません。これらのパラメータは、送信元 IP アドレスと宛先 IP アドレスに基づいて自動的に選択されます。

Google Cloud 以外のネットワークから VPC ネットワークへのテスト

この手順は、次の手順を除き、VPC ネットワーク内のプライベート IP アドレス間のテストと同じです。この手順は、Google Cloud コンソール、Google Cloud CLI、API の例、Python の例で使用します。

  1. 送信元アドレスが Google Cloud になく、ピア(オンプレミス)ネットワークからのものでもない場合は、外部 IP アドレスを指定します。
  2. 送信元アドレスがピア(オンプレミス)ネットワークからのものである場合は、[Other non-Google Cloud network] を選択する必要があります。

Google Cloud 以外のネットワークから Google Cloud 以外のネットワークへのテスト

この手順は、次の手順を除き、VPC ネットワーク内のプライベート IP アドレス間のテストと同じです。この手順は、Google Cloud コンソール、Google Cloud CLI、API の例、Python の例で使用します。

  1. 送信元 IP アドレスと宛先 IP アドレスの外部 IP アドレスを指定します。
  2. Google Cloud コンソールで、[これは Google Cloud で使用される IP アドレスです] をオフにします。

テスト結果を表示する

このセクションでは、接続テストの結果の確認方法について説明します。

Console

複数のページからテストを確認できます。

接続テストのメインページから

  1. Google Cloud コンソールで、[接続テスト] ページに移動します。

    [接続テスト] に移動

  2. [結果の詳細] 列で、テストを選択して [表示] をクリックします。
  3. テストの情報パネルが表示されます。テストパスで、各 Google Cloud リソースの全体的な結果と結果カードを確認できます。VM インスタンスやルートなど、一部の Google Cloud リソースの詳細ページへのリンクをクリックできます。テストに複数のトレースが含まれている場合は、[トレースの結果] リストからトレースを選択できます。

    データプレーンのライブ分析がテスト可能な場合、パケットロスとレイテンシの指標を表示できます。

  4. 結果カードを開くか閉じるには、カードの右側にある矢印をクリックします。

  5. テスト結果を解釈するには、構成分析の状態をご覧ください。

  6. 情報パネルを閉じるには、ページの右上にある [情報パネルを非表示] をクリックします。

接続テストの詳細ページから

または、Google Cloud コンソールのメインページでテストの名前をクリックし、[接続テストの詳細] ページで結果を確認します。

ネットワーク インターフェースの詳細ページから

また、Compute Engine VM インスタンスのネットワーク インターフェースの [ネットワーク インターフェースの詳細] ページで、結果を確認することもできます。このページには、現在のネットワーク インターフェースをソースまたは宛先として使用するテストのみが表示されます。

結果を表示するには、[結果の詳細] 列で、[表示] を選択するか、テストの名前をクリックします。

gcloud

テスト結果を表示するには、次のコマンドを入力します。表示するテスト ID を使用します。

gcloud network-management connectivity-tests describe NAME

NAME を接続テストの名前に置き換えます。

API

projects.locations.global.connectivityTests.get メソッドを使用して、テストの結果を表示します。

  GET https://networkmanagement.googleapis.com/v1/{name=projects/PROJECT_ID/locations/global/connectivityTests/TEST_ID}

次のように置き換えます。

  • PROJECT_ID: ソース VM のプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。

Python

次のサンプルコードは、テスト結果を出力します。詳細については、Python 用 Google API クライアント ライブラリの get をご覧ください。

project_id = "PROJECT_ID"
test_id= "TEST_ID"
request = api.projects().locations().global_().connectivityTests().get(
      name='projects/%s/locations/global/connectivityTests/%s' %
      (project_id, test_id))
print(json.dumps(request.execute(), indent=4))

次のように置き換えます。

  • PROJECT_ID: テストが作成されたプロジェクトのプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。

1 つ以上のテストを再実施する

テストパスで Google Cloud リソースの構成を変更し、最新のネットワーク構成の結果を確認したい場合は、接続テストを再実施することをおすすめします。1 つ以上のテストを同時に実施できます。

接続テストは、実施時のネットワーク構成のスナップショットに基づきます。テストを再実施すると、以前のテスト結果が上書きされます。古い結果を保持する場合は、代わりに新しいテストを作成します。

rerun テスト オペレーションの実行中にステータスを確認するには、実行中のテスト オペレーションのチェックをご覧ください。

Console

接続テストのメインページから

  1. Google Cloud コンソールで、[接続テスト] ページに移動します。

    [接続テスト] に移動

  2. 利用可能な接続テストのリストから 1 つ以上のテストを選択します。
  3. [再実行] をクリックします。

接続テストの詳細ページから

  1. 前の [接続テスト] のメインページで、テストの名前をクリックします。
  2. [接続テストの詳細] ページの上部にある [ 再実行 ] をクリックします。

ネットワーク インターフェースの詳細ページから

  1. Google Cloud コンソールで、[VM インスタンス] ページに移動します。

    [VM インスタンス] に移動

  2. まだ選択していない場合は、テストを再実施するインスタンスを含むプロジェクトを選択します。
  3. テストの再実施に使用するインスタンスをクリックします。
  4. [ネットワーク インターフェース] で、テストの再実施に使用するネットワーク インターフェースを選択します。
  5. [ネットワーク分析] で、[接続テスト] をクリックします。
  6. 利用可能な接続テストのリストから 1 つ以上のテストを選択します。
  7. [再実行] をクリックします。

gcloud

接続テストを再実施するには、次のコマンドを入力します。再実施するテスト ID を使用します。

gcloud network-management connectivity-tests rerun NAME

NAME を接続テストの名前に置き換えます。

API

Network Management API が connectivityTests リソースを作成すると、削除するまでそのテストリソースが保持されます。このため、テストを再実施できます。

永続的なテストを作成したくない場合は、API を使用してテストを作成すると、テスト結果の表示後に削除できます。

projects.locations.global.connectivityTests.rerun メソッドを使用して、再度テストを行います。

  POST https://networkmanagement.googleapis.com/v1/{name=projects/*/locations/global/connectivityTests/*}:rerun
    {
      "name": {projects/PROJECT_ID/connectivityTests/{TEST_ID}}
    }

次のように置き換えます。

  • PROJECT_ID: ソース VM のプロジェクト ID。
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID。

Python

次のサンプルコードではテストを再実行します。詳細については、Python 用 Google API クライアント ライブラリの rerun をご覧ください。

project_id = "PROJECT_ID"
test_id = "TEST_ID"
request = api.projects().locations().global_().connectivityTests().rerun(name='projects/%s/locations/global/connectivityTests/%s' % (project_id, test_id))
print(json.dumps(request.execute(), indent=4))

次の値を置き換えます。

  • PROJECT_ID: テストが作成されたプロジェクトのプロジェクト ID
  • TEST_ID: 実行中の接続テスト オブジェクト(テスト)の ID

次のステップ