建立及執行 Connectivity Tests

請按照本頁中的步驟瞭解如何執行連線能力測試。

如要編輯或刪除一或多項測試,請參閱更新或刪除測試

如要瞭解連線能力測試,請參閱總覽

事前準備

如要使用 Connectivity Tests,請先在 Google Cloud中設定下列項目:

  1. 在 Google Cloud 控制台,前往專案選取器頁面。

    前往專案選取器

    選取或建立 Google Cloud 專案。

  2. 確認您已為 Google Cloud 專案啟用計費功能
  3. 安裝 Google Cloud CLI,這是 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 用戶端的程式碼範例

      範例程式碼假設您已建構名為 api 的資源,用於與 Network Management API 互動。如要建構資源,請使用 build 函式。請參閱以下範例:

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

      如要進一步瞭解 API Python 用戶端,請參閱以下內容:

  5. 取得執行及查看測試所需的權限。詳情請參閱「指派存取權」。

執行連線能力測試

執行連線測試時,您可以提供測試輸入內容,做為不含來源連接埠的 5 元組

以下各節說明如何針對「常見用途」一節所述的來源和目的地端點執行測試。

您可以透過下列任一方式,在 Google Cloud 控制台執行 Connectivity Tests:

  • 「Connectivity Tests」頁面,可透過「Networking > Network Intelligence Center」選單存取。

  • Compute Engine 虛擬機器 (VM) 執行個體網路介面的「網路介面詳細資料」頁面。如果您使用這個頁面,必須將目前的網路介面做為測試的「來源」或「目的地」。這個頁面只會列出與目前網路介面相關的測試。

您建立的每項測試會在建立後立即執行,並儲存在「連線測試」資源中。測試會一直存在,直到您刪除為止。

如要在作業執行期間檢查測試作業的狀態,請參閱「檢查正在執行的測試作業」。一些測試作業的例子包括 creatererun

如果您使用 IP 位址做為來源或目的地端點,可能需要指定其他欄位。

最佳做法

  • 測試位於共用虛擬私有雲服務專案中的端點 (VM 或 IP 位址) 時,建議從服務專案執行測試。這是因為您可以從 Google Cloud 主控台的下拉式方塊中選取 VM 或 IP 位址。

    不過,您仍必須先指定主專案,再指定虛擬私有雲 (VPC) 網路,因為網路位於主專案中。詳情請參閱「測試共用虛擬私有雲網路中的 IP 位址」。

  • 在虛擬私有雲網路和對等網路或內部部署網路之間執行測試時,如果使用內部部署 IP 位址做為來源,以及虛擬私有雲網路中的 VM 執行個體或 IP 位址做為目的地,就能執行另一項連線測試。

    這類測試會驗證 Google Cloud 是否會按照預期向您的內部部署網路宣傳路徑。不過,連線測試不會驗證內部部署網路是否已接收並實作這些路徑。

  • Connectivity Tests 接收設定更新並納入分析的時間約為 20 到 120 秒。如果您在變更設定後立即執行測試,可能不會看到預期的結果。請務必在變更設定與執行測試之間等待一段時間。

    這項延遲不適用於即時資料層分析。因此,即時資料層分析和設定分析顯示的結果可能會暫時不一致。舉例來說,如果您新增防火牆規則,即時資料層分析可能會可用。不過,您可能需要等待一段時間,防火牆規則才能開始進行設定分析。

測試具有多個網路介面的 VM

本節說明如何測試 VM 的非主要網路介面。

主控台

如果您指定具備多個網路介面的 VM 執行個體做為測試的來源或目的地,連線測試會提示您從清單中選取網路介面。

或者,您也可以在「網路介面詳細資料」頁面,針對 Compute Engine VM 執行個體的網路介面執行測試。如果您使用這個頁面,必須將目前的網路介面設為測試的來源目的地

gcloud 和 API

您必須使用下列其中一種方式,指定要用於測試的網路介面:

  • IP 位址和網路 URI
  • IP 位址和 VM URI
  • 網路 URI 和 VM URI

如果 VM 有多個介面,只提供 URI 就只會選取 VM 的主要介面。

列出專案的所有測試

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」頁面。

    前往「Connectivity Tests」頁面

  2. 在頁面頂端的下拉式專案選單中,選取所需專案。
  3. 「Connectivity Tests」頁面會重新整理,並顯示該專案的測試。

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。

在虛擬私有雲網路中的 VM 執行個體之間進行測試

這些步驟假設兩個 VM 執行個體都位於同一個 Google Cloud 專案中。

主控台

透過主要的「連線能力測試」頁面

  1. 前往 Google Cloud 控制台的「Connectivity Tests」頁面。

    前往「Connectivity Tests」頁面

    其餘步驟會自動顯示在 Google Cloud 控制台。

  2. 選取「Create Connectivity Test」
  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「Protocol」(通訊協定) 清單中,選取通訊協定。
  5. 針對「Source」,請執行下列步驟:
    1. 在「Source Endpoints」(來源端點) 選單中,選取「VM instance」(VM 執行個體)
    2. 在「Source VM instance」選單中,選取特定來源 VM 執行個體。
    3. 在「來源網路介面」選單中,選取網路介面。

      如果 VM 執行個體有多個網路介面,請選取可唯一識別來源位置的 VM 網路介面。

    4. 選用:從清單中選取「來源 IP 位址」。 預設為來源 VM 執行個體的 IP 位址。
  6. 針對「Destination」(目的地),請執行下列步驟:
    1. 在「Destination Endpoints」(目的地端點) 選單中,選取「VM instance」(VM 執行個體)
    2. 在「Destination VM instance」(目的地 VM 執行個體) 選單中,選取特定的目的地 VM 執行個體。
    3. 在「目的地網路介面」選單中,選取網路介面。

      如果 VM 執行個體有多個網路介面,請選取可唯一識別目的地位置的 VM 網路介面。

    4. 選用:從清單中選取「Destination IP address」。 預設值是目的地 VM 執行個體的 IP 位址。
  7. 注意:雙重堆疊執行個體的來源和目的地 IP 位址必須是相同類型。舉例來說,您不能從具備 IPv4 位址的 VM 測試到使用 IPv6 位址的 VM。

  8. 在「Destination port」(目的地通訊埠) 欄位中,輸入目的地通訊埠。
  9. 按一下「建立」
  10. 測試完成後,系統會載入主要的「連線能力測試」頁面,並顯示包含這項測試和其他測試的清單。 接著點選「查看測試結果」

透過「網路介面詳細資料」頁面

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 如果尚未選取,請選取包含要執行測試的執行個體的專案。
  3. 按一下要用來執行測試的執行個體。
  4. 在「網路介面」中,選取要用來執行測試的網路介面。

    如果 VM 執行個體有多個網路介面,請選取可唯一識別目的地位置的 VM 網路介面。

  5. 如要進行網路分析,請按一下「建立連線測試」,然後執行下列操作:

    1. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
    2. 在「Protocol」清單中,選取通訊協定。
    3. 在「來源」中,您可以選取「目前的網路介面」或「其他」

      如果您選取「Current network interface」(目前的網路介面),請執行以下操作:

      1. 在「Destination Endpoints」(目的地端點) 選單中,選取「VM instance」(VM 執行個體)
      2. 在「Destination VM instance」(目標 VM 執行個體) 選單中選取執行個體。
      3. 在「目的地網路介面」選單中,選取網路介面。
      4. 選用:選取目的地 IP 位址。預設值是目的地 VM 執行個體的 IP 位址。

      如果您選取「其他」,請按照下列步驟操作:

      1. 在「Source Endpoints」(來源端點) 選單中,選取「VM instance」(VM 執行個體)
      2. 在「Source VM instance」選單中,選取所需執行個體。
      3. 在「來源網路介面」選單中,選取網路介面。
      4. 選用:選取來源 IP 位址。預設為來源 VM 執行個體的 IP 位址。
    4. 在「Destination port」(目的地通訊埠) 欄位中,輸入指定目的地的目的地通訊埠。

    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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP

Terraform

您可以使用 Terraform 資源,在虛擬私有雲網路的兩個 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

請使用 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:您執行的 Connectivity Tests 物件 (測試) 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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP

Python

下列程式碼範例會在兩個 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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP
  • PROJECT_ID:您要建立測試的專案 ID。
  • TEST_ID:您執行的 Connectivity Tests 物件 (測試) ID。

測試虛擬私有雲網路中私人 IP 位址之間的連線

這個範例假設兩個 IP 位址都是位於同一項 Google Cloud 專案和同一個虛擬私有雲網路中的私人 IP 位址。

如果您要對等互連虛擬私有雲網路進行測試,請為每個對等互連網路選取來源和目標網路。

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」頁面。

    前往「Connectivity Tests」頁面

    其餘步驟會顯示在 Google Cloud 控制台。

  2. 選取「Create Connectivity Test」(建立連線能力測試)

  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「Protocol」(通訊協定) 清單中,選取通訊協定。
  5. 針對「Source」,請執行下列操作:

    1. 在「Source endpoint」(來源端點) 清單中,選取「IP address」(IP 位址)
    2. 在「Source IP address」(來源 IP 位址) 欄位中輸入來源 IP 位址。
    3. 如果來源 IP 位址的虛擬私有雲網路位於目前專案中,請取消勾選「這是用於 Google Cloud的 IP 位址」核取方塊。

      如果虛擬私有雲網路位於其他專案,請在「來源 IP 位址或服務專案」欄位中,選取網路所在的專案。

      如果 IP 位址不在 RFC 1918 位址空間內,請勾選「我確認來源端點不在 RFC 1918 位址空間的範圍內」核取方塊。接著,在「Source network」(來源網路) 清單中,選取含有來源 IP 位址的網路。

  6. 針對「目的地」,請執行下列操作:

    1. 在「Destination endpoint」(目的地端點) 清單中,選取「IP address」(IP 位址)
    2. 在「Destination IP address」(目的地 IP 位址) 欄位中輸入目的地 IP 位址。
    3. 如果目的地 IP 位址的 VPC 網路位於目前專案中,請取消勾選「這是在 Google Cloud中使用的 IP 位址」核取方塊。

      如果虛擬私有雲網路位於另一個專案,請在「目的地 IP 位址或服務專案」欄位中,選取網路所在的專案。

      如果 IP 位址不在 RFC 1918 位址空間內,請選取「我確認目的地端點不在 RFC 1918 位址空間的範圍內」核取方塊。然後在「Destination network」(目的地網路) 清單中,選取包含目的地 IP 位址的網路。

  7. 在「Destination port」(目的地通訊埠) 欄位中,輸入有效的目的地通訊埠號碼。數字必須介於 0 至 65535 之間 (含首尾)。
  8. 按一下「Create」(建立)。

測試完成後,系統會載入主要的「連線能力測試」頁面,並顯示包含這項測試和其他測試的清單。 接著點選「查看測試結果」

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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP

如果網路不明,或您沒有存取網路的權限,可以將網路指定為 GCP_NETWORK,而非提供網路 URI。

您不必確認 IP 位址是否在 Google Cloud中,或來源和目的地端點是否不在 RFC 1918 位址空間內。系統會根據來源和目的地 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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP

如果您指定的來源 IP 位址是Google Cloud以外的外部 IP 位址,則必須指定 networkTypeNON_GCP_NETWORK。將下列指令中的值替換為 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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP

Terraform

您可以使用 Terraform 資源,在 VPC 網路的兩個 IP 位址之間建立測試。

您不必確認 IP 位址是否在 Google Cloud中,或來源和目的地端點是否不在 RFC 1918 位址空間內。系統會根據來源和目的地 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 位址連線偵測 (ping) 到目的地 IP 位址的功能。

請使用 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:您執行的 Connectivity Tests 物件 (測試) 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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP

如果您不知道 VPC 網路,或是沒有存取網路的權限,可以將網路指定為 GCP_NETWORK,而非提供網路 URI。

您不必確認 IP 位址是否在 Google Cloud中,或來源和目的地端點是否不在 RFC 1918 位址空間內。系統會根據來源和目的地 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:您執行的 Connectivity Tests 物件 (測試) 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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP

如果您指定的來源 IP 位址是Google Cloud以外的外部 IP 位址,則必須指定 networkTypeNON_GCP_NETWORK。將下列指令中的值替換為 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

以下程式碼範例會在兩個 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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP
  • PROJECT_ID:您建立測試所在專案的專案 ID。
  • TEST_ID:您執行的 Connectivity Tests 物件 (測試) ID。

如果您不知道 VPC 網路,或是沒有存取網路的權限,可以將網路指定為 GCP_NETWORK,而非提供網路 URI。

您不必確認 IP 位址是否在 Google Cloud中,或來源和目的地端點是否不在 RFC 1918 位址空間內。系統會根據來源和目的地 IP 位址自動選取這些參數。

以下範例會在兩個 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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP
  • PROJECT_ID:您要建立測試的專案 ID。
  • TEST_ID:您執行的 Connectivity Tests 物件 (測試) ID。

如果您指定的來源 IP 位址是Google Cloud以外的外部 IP 位址,則必須指定 networkTypeNON_GCP_NETWORK

測試共用虛擬私有雲網路中的 IP 位址

有了共用虛擬私有雲網路後,您就可以從主專案或服務專案建立及執行測試。

以下範例同時顯示這兩種情況,並使用服務專案中分配的目的地 IP 位址。 Google Cloud 控制台中的欄位值會因情況而略有不同。不過,Google Cloud CLI 和 API 呼叫的指令選項相同。

主控台:從主機

  1. 在 Google Cloud 控制台中,從代管專案前往「Connectivity Tests」頁面。

    前往「Connectivity Tests」頁面

  2. 選取「Create Connectivity Test」(建立連線能力測試)
  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「Protocol」清單中,選取通訊協定。
  5. 針對「Source」,請執行下列步驟:
    1. 在「Source endpoint」(來源端點) 選單中,選取「IP address」(IP 位址)
    2. 輸入來源 IP 位址。
    3. 選取「這是在 Google Cloud中使用的 IP 位址」核取方塊。
    4. 如果這是無法透過網際網路存取的內部 IP 位址,請選取位址所在的 VPC 網路。
    5. 如果私人 IP 位址不在 RFC 1918 位址空間內,請選取「我確認來源端點位於 RFC 1918 位址空間以外的範圍」,然後選取含有 IP 位址的目的網路。
  6. 針對「Destination」,請執行下列步驟:
    1. 在「Destination endpoint」(目的地端點) 選單中,選取「IP address」(IP 位址)
    2. 輸入目的地 IP 位址。
    3. 選取「這是在 Google Cloud中使用的 IP 位址」核取方塊。
    4. 如果這是無法透過網際網路存取的內部 IP 位址,請選取位址所在的 VPC 網路。
    5. 如果私人 IP 位址不在 RFC 1918 位址空間內,請選取「我確認來源端點位於 RFC 1918 位址空間以外的範圍」,然後選取含有 IP 位址的目的網路。
  7. 在「Destination port」(目的地通訊埠) 欄位中,輸入指定目的地的目的地通訊埠。
  8. 按一下 [建立]。
  9. 測試完成後,系統會載入主要的「連線能力測試」頁面,並顯示包含這項測試和其他測試的清單。接著點選「查看測試結果」

主控台:來自服務

  1. 在 Google Cloud 控制台中,從服務專案前往「Connectivity Tests」頁面。

    前往「Connectivity Tests」頁面

  2. 選取「Create Connectivity Test」(建立連線能力測試)
  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「Protocol」清單中,選取通訊協定。
  5. 針對「Source」,請執行下列步驟:
    1. 在「Source endpoint」(來源端點) 選單中,選取「IP address」(IP 位址)
    2. 輸入「來源 IP 位址」
    3. 選取「這是在 Google Cloud中使用的 IP 位址」核取方塊。
    4. 如果這是無法透過網際網路存取的內部 IP 位址,請選取位址所在的 VPC 網路。
  6. 針對「Destination」,請執行下列步驟:
    1. 在「Destination endpoint」(目的地端點) 選單中,選取「IP address」(IP 位址)
    2. 輸入目的地 IP 位址
    3. 選取「這是在 Google Cloud中使用的 IP 位址」核取方塊。
    4. 指定 IP 位址所在的目標 IP 位址或服務專案
    5. 如果私人 IP 位址不在 RFC 1918 位址空間內,請選取「我確認來源端點不在 RFC 1918 位址空間的範圍內」核取方塊,然後選取含有 IP 位址的目的地網路。
  7. 在「Destination port」(目的地通訊埠) 欄位中,輸入指定目的地的目的地通訊埠。
  8. 按一下 [建立]。
  9. 測試完成後,系統會載入主要的「連線能力測試」頁面,並顯示包含這項測試和其他測試的清單。接著點選「查看測試結果」

gcloud

輸入下列指令,即可測試主機和服務專案中的兩個私人 IP 位址,其中目的地 IP 位址位於服務專案中。將指令選項的變數替換為虛擬私有雲端網路的值。

由於目的地 IP 位址位於服務專案中,請指定服務專案和主機專案的網路 URI。在本例中,default 代表 host-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,例如名為 service-project 的專案,代表用於這個共用虛擬私有雲網路的服務專案。
  • DESTINATION_PORT:目的地的 IP 通訊協定通訊埠。這個選項僅適用於 TCP 或 UDP 通訊協定。
  • PROTOCOL:Connectivity Tests 支援的通訊協定。預設通訊協定為 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:您執行的 Connectivity Tests 物件 (測試) ID。
  • SOURCE_IP_ADDRESS:您要測試的來源 IP 位址。
  • SOURCE_PROJECT:來源端點的專案 ID。
  • DESTINATION_IP_ADDRESS:您在服務專案中要測試的內部或外部目的地 IP 位址。
  • DESTINATION_PROJECT:目的地端點的專案 ID,例如名為 service-project 的專案,代表用於這個共用虛擬私有雲網路的服務專案。
  • DESTINATION_NETWORK:主專案的 VPC 網路 URI,例如 projects/host-project/global/networks/default
  • DESTINATION_PORT:目的地的 IP 通訊協定通訊埠。這個選項僅適用於 TCP 或 UDP 通訊協定。
  • PROTOCOL:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP

Python

以下程式碼範例會在兩個 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,例如代表用於此共用虛擬私有雲網路的服務專案的 service-project 專案。
  • DESTINATION_NETWORK:主專案的 VPC 網路 URI,例如 projects/host-project/global/networks/default
  • DESTINATION_PORT:目的地的 IP 通訊協定通訊埠。這個選項僅適用於 TCP 或 UDP 通訊協定。
  • PROTOCOL:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP
  • PROJECT_ID:您建立測試所在專案的專案 ID。
  • TEST_ID:您執行的 Connectivity Tests 物件 (測試) ID。

測試從 VM 連線至 Google 代管服務

本節說明如何從私人雲端網路中的 VM 測試至在 Google 自有私人雲端網路中執行的服務。舉例來說,您可以按照本節中的步驟,測試與 Cloud SQL 執行個體或 GKE 叢集控制層的連線能力。您也可以使用 Google 代管的服務端點做為來源,並使用虛擬私人雲端網路中的端點做為目的地,執行測試。

根據預設,連線測試會嘗試使用 Google 管理服務端點的私人 IP 位址執行測試。如果端點沒有私人 IP 位址,連線測試會使用公開 IP 位址。Connectivity Tests 會分析封包是否能到達端點,其中包括分析 Google 自有 VPC 網路中的設定。如果在專案中偵測到設定問題,分析作業會在分析 Google 自有聯播網設定之前停止。

如要測試從 VM 連線至 Google 管理的服務,請參閱以下操作說明。

主控台

透過主要的「連線能力測試」頁面

  1. 前往 Google Cloud 控制台的「Connectivity Tests」頁面。

    前往「Connectivity Tests」頁面

  2. 選取「Create Connectivity Test」(建立連線能力測試)
  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「Protocol」清單中,選取通訊協定。
  5. 針對「Source」,請執行下列操作:

    1. 在「Source Endpoints」(來源端點) 選單中,選取「VM instance」(VM 執行個體)
    2. 在「Source VM instance」選單中,選取特定來源 VM 執行個體。
    3. 在「來源網路介面」選單中,選取網路介面。

      如果 VM 執行個體有多個網路介面,請選取可唯一識別來源位置的 VM 網路介面。

    4. 選用:從清單中選取「來源 IP 位址」。預設為來源 VM 執行個體的 IP 位址。

  6. 針對「目的地」,請執行下列操作:

    1. 在「Destination endpoint」選單中,選取 Google 管理的服務資源類型,例如 GKE 叢集控制層
    2. 在「Destination GKE cluster control plane」選單中,選取要測試與 GKE 控制層連線的叢集。
    3. 選用:從清單中選取目的地 GKE 叢集控制層端點。預設值為 GKE 叢集的 IP 端點。
  7. 在「Destination port」(目的地通訊埠) 欄位中,輸入指定目的地的目的地通訊埠。

  8. 按一下 [建立]。

  9. 測試完成後,系統會載入主要的「連線能力測試」頁面,並顯示包含這項測試和其他測試的清單。接著點選「查看測試結果」

透過「網路介面詳細資料」頁面

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 如果尚未選取,請選取包含要執行測試的執行個體的專案。
  3. 按一下要用來執行測試的執行個體。
  4. 在「網路介面」中,選取要用來執行測試的網路介面。
  5. 如要進行網路分析,請按一下「建立連線測試」
  6. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  7. 在「Protocol」清單中,選取通訊協定。
  8. 在「Source」(來源) 中,選取「Current network interface」(目前網路介面)
  9. 針對「Destination」,請執行下列步驟:
    1. 在「Destination endpoint」選單中,選取 Google 管理的服務資源類型,例如 GKE 叢集控制層
    2. 在「Destination GKE cluster control plane」選單中,選取要測試與 GKE 控制層連線的叢集。
    3. 選用:從清單中選取目的地 GKE 叢集控制層端點。預設值為 GKE 叢集的 IP 端點。
  10. 在「Destination port」(目的地通訊埠) 欄位中,輸入指定目的地的目的地通訊埠。
    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-clusterprojects/myproject/locations/us-central1/clusters/cluster-1

  • DESTINATION_PORT:目的地的 IP 通訊協定通訊埠。這個選項僅適用於 TCP 或 UDP 通訊協定。

  • PROTOCOL:Connectivity Tests 支援的通訊協定。預設通訊協定為 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:您執行的 Connectivity Tests 物件 (測試) 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
    • redisInstance
    • redisCluster

    詳情請參閱端點參考資料

  • DESTINATION_ENDPOINT:目的地端點的 URI,例如 gkeMasterCluster 欄位的 projects/myproject/locations/us-central1/clusters/cluster-1

  • DESTINATION_PORT:目的地的 IP 通訊協定通訊埠。這個選項僅適用於 TCP 或 UDP 通訊協定。

  • PROTOCOL:Connectivity Tests 支援的通訊協定。預設通訊協定為 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
    • redisInstance
    • redisCluster

    詳情請參閱端點參考資料

  • DESTINATION_ENDPOINT:目的地端點的 URI,例如 gkeMasterCluster 欄位的 projects/myproject/locations/us-central1/clusters/cluster-1

  • DESTINATION_PORT:目的地的 IP 通訊協定通訊埠。這個選項僅適用於 TCP 或 UDP 通訊協定。

  • PROTOCOL:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP

  • PROJECT_ID:您建立測試所在專案的專案 ID。

  • TEST_ID:您執行的 Connectivity Tests 物件 (測試) ID。

測試從 VM 連線至 Private Service Connect 端點

本節說明如何從 VM 測試 Private Service Connect 端點。

舉例來說,您可以按照本節的步驟測試封包是否可傳送至使用 Private Service Connect 的已發布服務。連線測試會分析封包是否能到達端點,包括分析已連線的端點、已發布的服務和 Proxy 連線。如果系統不接受使用 Private Service Connect 連線至已發布的服務,分析就會提早結束。

您可以測試下列連線能力:

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」頁面。

    前往「Connectivity Tests」頁面

  2. 選取「Create Connectivity Test」(建立連線能力測試)
  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「Protocol」清單中,選取通訊協定。
  5. 針對「Source」,請執行下列操作:

    1. 在「Source Endpoints」(來源端點) 選單中,選取「VM instance」(VM 執行個體)
    2. 在「Source VM instance」選單中,選取特定來源 VM 執行個體。
    3. 在「來源網路介面」選單中,選取網路介面。

      如果 VM 執行個體有多個網路介面,請選取可唯一識別來源位置的 VM 網路介面。

    4. 選用:從清單中選取「來源 IP 位址」。預設為來源 VM 執行個體的 IP 位址。

  6. 針對「目的地」,請執行下列操作:

    1. 在「Destination endpoint」選單中,選取「PSC endpoint」
    2. 在「Destination PSC endpoint」選單中,選取 PSC 端點。

      如果目標端點位於目前專案以外的專案,請選取「端點位於『PROJECT_NAME』以外的專案」。接著,在「目標端點專案」欄位中,選取端點所在的專案。

  7. 在「Destination port」(目的地通訊埠) 欄位中,輸入指定目的地的目的地通訊埠。

  8. 按一下 [建立]。

  9. 測試完成後,系統會載入主要的「連線能力測試」頁面,並顯示包含這項測試和其他測試的清單。接著點選「查看測試結果」

gcloud

使用 gcloud network-management connectivity-tests create 指令。請以虛擬私人雲端網路中的值取代樣本值。

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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP

如果端點或後端用於存取已發布的服務,您必須指定 DESTINATION_NETWORK,因為端點或後端具有內部 IP 位址。

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:您執行的 Connectivity Tests 物件 (測試) 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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP

如果端點或後端用於存取已發布的服務,您必須指定 DESTINATION_NETWORK,因為端點或後端具有內部 IP 位址。

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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP
  • PROJECT_ID:您建立測試所在專案的專案 ID。
  • TEST_ID:您執行的 Connectivity Tests 物件 (測試) ID。

如果端點或後端用於存取已發布的服務,您必須指定 DESTINATION_NETWORK,因為端點或後端具有內部 IP 位址。

從 App Engine 標準環境版本測試至目的地

本節說明如何測試 App Engine 標準環境版本與 VM 執行個體、IP 位址或 Google 管理服務的連線情形。

App Engine 標準環境應用程式是由包含一或多項服務的單一應用程式資源組成。在每項服務中,您可以部署該服務的版本。您可以測試從某個版本的 App Engine 標準環境服務到 VM 執行個體、IP 位址或 Google 管理服務的可及性。

如要查看詳細的設定分析,您必須將服務設為使用 無伺服器虛擬私有雲存取連接器。每個服務版本的連線測試結果可能不同。您只能測試使用 UDP 或 TCP 通訊協定的測試封包可及性。

測試從某個版本的 App Engine 標準環境服務連線至 VM 執行個體

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」頁面。

    前往「Connectivity Tests」頁面

  2. 選取「Create Connectivity Test」(建立連線能力測試)
  3. 輸入測試名稱。
  4. 選取通訊協定。
  5. 在「Source endpoint」(來源端點) 選單中,選取「App Engine」
    1. 在「App Engine 服務」選單中,選取要測試連線的特定 App Engine 標準環境服務。例如選取 helloworld-service
      1. 如果來源端點位於目前專案以外的專案,請勾選「端點位於『PROJECT_NAME』以外的專案」核取方塊。
      2. 選取端點所在的專案。
    2. 在「App Engine 版本」選單中,選取要測試連線的 App Engine 標準環境服務版本。
  6. 針對「Destination」(目的地),請從清單中選取「Destination VM instance」(目的地 VM 執行個體)

    如果 VM 執行個體有多個網路介面,請選取可唯一識別目的地位置的 VM 網路介面。

  7. 選用:從清單中選取「Destination IP address」。預設值是目的地 VM 執行個體的 IP 位址。

  8. 在「Destination port」(目的地通訊埠) 欄位中,輸入指定目的地的目的地通訊埠。

  9. 按一下 [建立]。

  10. 測試完成後,系統會載入主要的「連線能力測試」頁面,並顯示包含這項測試和其他測試的清單。接著點選「查看測試結果」

gcloud

使用 gcloud network-management connectivity-tests create 指令。請以虛擬私人雲端網路中的值取代樣本值。

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:無伺服器虛擬私有雲存取連接器支援的網路通訊協定:TCPUDP

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 Run 函式的專案 ID。
  • TEST_ID:您執行的 Connectivity Tests 物件 (測試) 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:無伺服器虛擬私有雲存取連接器支援的網路通訊協定:TCPUDP

測試從某個 App Engine 標準環境服務版本連線至 IP 位址的連線能力

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」頁面。

    前往「Connectivity Tests」頁面

  2. 選取「Create Connectivity Test」(建立連線能力測試)
  3. 輸入測試名稱。
  4. 選取通訊協定。
  5. 在「Source endpoint」(來源端點) 選單中,選取「App Engine」
    1. 在「App Engine 服務」選單中,選取要測試連線的特定 App Engine 標準環境服務。例如選取 helloworld-service
      1. 如果來源端點位於目前專案以外的專案中,請選取「端點位於『PROJECT_NAME』以外的專案」
      2. 選取端點所在的專案。
    2. 在「App Engine 版本」選單中,選取要測試連線的 App Engine 標準環境服務版本。
  6. 在「Destination」(目的地) 中,選取「IP address」(IP 位址),然後輸入 IP 位址。
  7. 輸入目的地通訊埠。
  8. 按一下 [建立]。
  9. 測試完成後,系統會載入主要的「連線能力測試」頁面,並顯示包含這項測試和其他測試的清單。接著點選「查看測試結果」

gcloud

使用 gcloud network-management connectivity-tests create 指令。請以虛擬私人雲端網路中的值取代樣本值。

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:無伺服器虛擬私有雲存取連接器支援的網路通訊協定:TCPUDP

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 Run 函式的專案 ID。
  • TEST_ID:您執行的 Connectivity Tests 物件 (測試) ID。
  • APP_ENGINE_VERSION:來源 App Engine 標準環境版本的 URI,例如 apps/myproject/services/service-name/versions/version-name
  • DESTINATION_IP_ADDRESS:您要測試的外部目的地 IP 位址。
  • PROTOCOL:無伺服器虛擬私有雲存取連接器支援的網路通訊協定:TCPUDP

測試從某個 App Engine 標準環境服務版本連線至 Google 代管服務

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」頁面。

    前往「Connectivity Tests」頁面

  2. 選取「Create Connectivity Test」(建立連線能力測試)
  3. 輸入測試名稱。
  4. 選取通訊協定。
  5. 在「Source endpoint」(來源端點) 選單中,選取「App Engine」
    1. 在「App Engine 服務」選單中,選取要測試連線的特定 App Engine 標準環境服務。例如選取 helloworld-service
      1. 如果來源端點位於目前專案以外的專案中,請選取「端點位於『PROJECT_NAME』以外的專案」
      2. 選取端點所在的專案。
    2. 在「App Engine 版本」選單中,選取要測試連線的 App Engine 標準環境服務版本。
  6. 針對「Destination」,請執行下列步驟:
    1. 在「Destination endpoint」選單中,選取 Google 管理的服務資源類型,例如 GKE 叢集控制層
    2. 在「Destination GKE cluster control plane」選單中,選取要測試與 GKE 控制層連線的叢集。
    3. 選用:從清單中選取目的地 GKE 叢集控制層端點。預設值為 GKE 叢集的 IP 端點。
  7. 在「Destination port」(目的地通訊埠) 欄位中,輸入指定目的地的目的地通訊埠。
  8. 按一下 [建立]。
  9. 測試完成後,系統會載入主要的「連線能力測試」頁面,並顯示包含這項測試和其他測試的清單。接著點選「查看測試結果」

gcloud

使用 gcloud network-management connectivity-tests create 指令。請以虛擬私人雲端網路中的值取代樣本值。

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-clusterprojects/myproject/locations/us-central1/clusters/cluster-1

  • DESTINATION_PORT:目的地的 IP 通訊協定通訊埠。這個選項僅適用於 TCP 或 UDP 通訊協定。預設為通訊埠 80

  • PROTOCOL:無伺服器虛擬私有雲存取連接器支援的網路通訊協定:TCPUDP

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 Run 函式的專案 ID。
  • TEST_ID:您執行的 Connectivity Tests 物件 (測試) ID。
  • APP_ENGINE_VERSION:來源 App Engine 標準環境版本的 URI,例如 apps/myproject/services/servicename/versions/version-number
  • DESTINATION_RESOURCE_FIELD:指定 Google 管理服務資源類型的欄位。

    如要瞭解可用的選項,請參閱以下內容:

    • gkeMasterCluster
    • cloudSqlInstance
    • redisInstance
    • redisCluster

    詳情請參閱端點參考資料

  • DESTINATION_ENDPOINT:目的地端點的 URI,例如 gkeMasterCluster 欄位的 projects/myproject/locations/us-central1/clusters/cluster-1

  • DESTINATION_IP_ADDRESS:您要測試的內部或外部目的地 IP 位址。

  • DESTINATION_PORT:目的地的 IP 通訊協定通訊埠。這個選項僅適用於 TCP 或 UDP 通訊協定。預設為通訊埠 80

  • PROTOCOL:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP

測試從 Cloud Run 函式到目的地的連線

本節說明如何測試從特定 Google Cloud 區域部署的 Cloud Run 函式連線至 VM 執行個體、IP 位址或 Google 代管服務。舉例來說,您可以按照本節中的步驟,測試從在 us-central1 中部署的 Cloud Run 函式 (做為來源) 到虛擬私有雲網路中端點 (做為目的地) 的連線能力。

如要查看詳細的設定分析,請確認 Cloud Run 函式處於啟用狀態,且您已為 Cloud Run 函式設定 無伺服器虛擬私有雲端存取連接器

Cloud Run 函式的輸出設定可控管 Cloud Run 函式傳出的 HTTP 要求路由,並控管透過連接器傳送至虛擬私有雲端網路的流量類型。詳情請參閱「Cloud Run 函式傳出設定」。

測試 Cloud Run 函式與 VM 執行個體之間的連線能力

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」頁面。

    前往「Connectivity Tests」頁面

  2. 選取「Create Connectivity Test」(建立連線能力測試)
  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「Protocol」清單中,選取通訊協定。
  5. 針對「Source」,請執行下列步驟:
    1. 在「來源端點」選單中,選取「Cloud Function 1st gen」
    2. 在「Cloud Function」選單中,選取要測試連線功能的特定 Cloud Run 函式。例如選取 function-1
    3. 在「Cloud Function」位置選單中,選取您已部署 Cloud Run 函式的 Google Cloud 區域。您可以將 Cloud Run 函式部署至多個具有不同設定但名稱相同的區域。
  6. 針對「目的地」,請執行下列操作:

    1. 在「Destination Endpoints」(目的地端點) 選單中,選取「VM instance」(VM 執行個體)
    2. 在「Destination VM instance」(目標 VM 執行個體) 選單中,選取 VM 執行個體。
    3. 在「Destination network interface」選單中,選取網路介面。

      如果 VM 執行個體有多個網路介面,請選取可唯一識別目的地位置的 VM 網路介面。

    4. 選用:從清單中選取「Destination IP address」。預設值是目的地 VM 執行個體的 IP 位址。

  7. 在「Destination port」(目的地通訊埠) 欄位中,輸入指定目的地的目的地通訊埠。

  8. 按一下 [建立]。

  9. 測試完成後,系統會載入主要的「連線能力測試」頁面,並顯示包含這項測試和其他測試的清單。接著點選「查看測試結果」

gcloud

使用 gcloud network-management connectivity-tests create 指令。請以虛擬私人雲端網路中的值取代樣本值。

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 Run 函式的 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:Connectivity Tests 支援的通訊協定。預設通訊協定為 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 Run 函式的專案 ID。
  • TEST_ID:您執行的 Connectivity Tests 物件 (測試) ID。
  • SOURCE_CLOUD_FUNCTION:Cloud Run 函式的 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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP

測試 Cloud Run 函式與 IP 位址的連線能力

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」頁面。

    前往「Connectivity Tests」頁面

  2. 選取「Create Connectivity Test」(建立連線能力測試)
  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「Protocol」清單中,選取通訊協定。
  5. 針對「Source」,請執行下列步驟:
    1. 在「來源端點」選單中,選取「Cloud Function 1st gen」
    2. 在「Cloud Function」選單中,選取要測試連線功能的特定 Cloud Run 函式。例如選取 function-1
    3. 在「Cloud Function」位置選單中,選取您已部署 Cloud Run 函式的 Google Cloud 區域。您可以將 Cloud Run 函式部署至多個具有不同設定但名稱相同的區域。
  6. 在「Destination」(目的地) 中,選取「IP address」(IP 位址),然後輸入 IP 位址。
  7. 在「Destination port」(目的地通訊埠) 欄位中,輸入指定目的地的目的地通訊埠。
  8. 按一下 [建立]。
  9. 測試完成後,系統會載入主要的「連線能力測試」頁面,並顯示包含這項測試和其他測試的清單。請繼續閱讀本頁下方的「查看測試結果」部分。

gcloud

使用 gcloud network-management connectivity-tests create 指令。請以虛擬私人雲端網路中的值取代樣本值。

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 Run 函式的 URI,例如 projects/myproject/locations/us-central1/functions/function-1
  • DESTINATION_IP_ADDRESS:您要測試的目標 IP 位址。
  • PROTOCOL:Connectivity Tests 支援的通訊協定。預設通訊協定為 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 Run 函式的專案 ID。
  • TEST_ID:您執行的 Connectivity Tests 物件 (測試) ID。
  • SOURCE_CLOUD_FUNCTION:Cloud Run 函式的 URI,例如 projects/myproject/locations/us-central1/functions/function-1
  • DESTINATION_IP_ADDRESS:您要測試的目標 IP 位址。
  • PROTOCOL:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP

測試 Cloud Run 函式與 Google 代管服務之間的連線

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」頁面。

    前往「Connectivity Tests」頁面

  2. 選取「Create Connectivity Test」(建立連線能力測試)
  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「Protocol」清單中,選取通訊協定。
  5. 針對「Source」,請執行下列步驟:
    1. 在「來源端點」選單中,選取「Cloud Function 1st gen」
    2. 在「Cloud Function」選單中,選取要測試連線功能的特定 Cloud Run 函式。例如選取 function-1
    3. 在「Cloud Function location」(Cloud Function 位置) 選單中,選取已部署 Cloud Run 函式的 Google Cloud 區域。您可以將 Cloud Run 函式部署至多個具有不同設定但名稱相同的區域。
  6. 針對「Destination」,請執行下列步驟:
    1. 在「Destination endpoint」選單中,選取 Google 代管服務資源的類型,例如 Cloud SQL 執行個體
    2. 在「Destination Cloud SQL instance」選單中,選取要測試連線的 Cloud SQL 執行個體。
    3. 選用:從清單中選取目的地 Cloud SQL 執行個體 IP 位址。預設值為來源 Cloud Run 函式的 IP 位址。
  7. 在「Destination port」(目的地通訊埠) 欄位中,輸入指定目的地的目的地通訊埠。
  8. 按一下 [建立]。
  9. 測試完成後,系統會載入主要的「連線能力測試」頁面,並顯示包含這項測試和其他測試的清單。請繼續閱讀本頁下方的「查看測試結果」部分。

gcloud

使用 gcloud network-management connectivity-tests create 指令。請以虛擬私人雲端網路中的值取代樣本值。

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 Run 函式的 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-clusterprojects/myproject/locations/us-central1/clusters/cluster-1

  • DESTINATION_IP_ADDRESS:您要測試的內部或外部目的地 IP 位址。

  • DESTINATION_PORT:目的地的 IP 通訊協定通訊埠。這個選項僅適用於 TCP 或 UDP 通訊協定。預設為通訊埠 80

  • PROTOCOL:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP

從 Cloud Run 修訂版本測試至目的地

本節說明如何測試 Cloud Run 修訂版本與 VM 執行個體、IP 位址或 Google 代管服務的連線情形。

您可以在單一專案中部署多個 Cloud Run 服務。每項 Cloud Run 服務都會在 *.run.app 網域的專屬子網域上提供 HTTPS 端點。每次部署 Cloud Run 服務都會建立新的不可變更修訂版本。您可以測試從修訂版本到 VM 執行個體、IP 位址或 Google 管理服務的可及性。如要查看詳細的設定分析,您必須為修訂版本設定無伺服器虛擬私有雲存取連接器。每個修訂版本的連線測試結果可能不同。

舉例來說,名為 cloud_run_test 的 Cloud Run 服務有一個已設定為使用無伺服器虛擬私有雲存取連接器的修訂版本 first-revision,以及另一個未設定為使用無伺服器虛擬私有雲存取連接器的修訂版本 second-revision。整體可及性結果可能可供 first-revision 使用,但無法供 second-revision 使用。

建立連線測試時,您可以從 Cloud Run 服務的修訂版本清單中選取。

測試 Cloud Run 服務修訂版本與 VM 執行個體之間的連線能力

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」頁面。

    前往「Connectivity Tests」頁面

  2. 選取「Create Connectivity Test」(建立連線能力測試)
  3. 輸入測試名稱。
  4. 選取通訊協定。
  5. 針對「Source」,請執行下列步驟:
    1. 在「Source endpoint」選單中,選取「Cloud Run」
    2. 在「Cloud Run service」選單中,選取要測試連線的特定 Cloud Run 服務。例如選取 helloworld-run
      1. 如果來源端點位於目前專案以外的專案中,請選取「端點位於『PROJECT_NAME』以外的專案」
      2. 選取端點所在的專案。
    3. 在「Cloud Run 修訂版本」選單中,選取要測試的 Cloud Run 修訂版本。
  6. 針對「目的地」,請執行下列操作:

    1. 在「Destination Endpoints」(目的地端點) 選單中,選取「VM instance」(VM 執行個體)
    2. 在「Destination VM instance」(目的地 VM 執行個體) 選單中,選取特定的目的地 VM 執行個體。
    3. 在「目的地網路介面」選單中,選取網路介面。

      如果 VM 執行個體有多個網路介面,請選取可唯一識別目的地位置的 VM 網路介面。

    4. 選用:從清單中選取「Destination IP address」。預設值是目的地 VM 執行個體的 IP 位址。

  7. 在「Destination port」(目的地通訊埠) 欄位中,輸入指定目的地的目的地通訊埠。

  8. 按一下 [建立]。

  9. 測試完成後,系統會載入主要的「連線能力測試」頁面,並顯示包含這項測試和其他測試的清單。接著點選「查看測試結果」

gcloud

使用 gcloud network-management connectivity-tests create 指令。請以虛擬私人雲端網路中的值取代樣本值。

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:無伺服器虛擬私有雲存取連接器支援的網路通訊協定:TCPUDP

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 Run 函式的專案 ID。
  • TEST_ID:您執行的 Connectivity Tests 物件 (測試) 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:無伺服器虛擬私有雲存取連接器支援的網路通訊協定:TCPUDP

測試 Cloud Run 服務修訂版本與 IP 位址的連線能力

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」頁面。

    前往「Connectivity Tests」頁面

  2. 選取「Create Connectivity Test」(建立連線能力測試)
  3. 輸入測試名稱。
  4. 選取通訊協定。
  5. 針對「Source」,請執行下列步驟:
    1. 在「Source endpoint」選單中,選取「Cloud Run」
    2. 在「Cloud Run service」選單中,選取要測試連線的特定 Cloud Run 服務。例如選取 helloworld-run
      1. 如果來源端點位於目前專案以外的專案中,請選取「端點位於『PROJECT_NAME』以外的專案」
      2. 選取端點所在的專案。
    3. 在「Cloud Run 修訂版本」選單中,選取要測試的 Cloud Run 修訂版本。
  6. 在「Destination」(目的地) 中,選取「IP address」(IP 位址),然後輸入 IP 位址。
  7. 在「Destination port」(目的地通訊埠) 欄位中,輸入指定目的地的目的地通訊埠。
  8. 按一下 [建立]。
  9. 測試完成後,系統會載入主要的「連線能力測試」頁面,並顯示包含這項測試和其他測試的清單。接著點選「查看測試結果」

gcloud

使用 gcloud network-management connectivity-tests create 指令。請以虛擬私人雲端網路中的值取代樣本值。

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:無伺服器虛擬私有雲存取連接器支援的網路通訊協定:TCPUDP

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 Run 函式的專案 ID。
  • TEST_ID:您執行的 Connectivity Tests 物件 (測試) ID。
  • CLOUD_RUN_REVISION:來源 Cloud Run 修訂版本的 URI,例如 projects/myproject/locations/us-central1/revisions/cloudrun-revision
  • DESTINATION_IP_ADDRESS:您要測試的外部目的地 IP 位址。
  • PROTOCOL:無伺服器虛擬私有雲存取連接器支援的網路通訊協定:TCPUDP

測試 Cloud Run 服務修訂版本與 Google 代管服務之間的連線能力

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」頁面。

    前往「Connectivity Tests」頁面

  2. 選取「Create Connectivity Test」(建立連線能力測試)
  3. 輸入測試名稱。
  4. 選取通訊協定。
  5. 針對「Source」,請執行下列步驟:
    1. 在「Source endpoint」選單中,選取「Cloud Run」
    2. 在「Cloud Run service」選單中,選取要測試連線的特定 Cloud Run 服務。例如選取 helloworld-run
      1. 如果來源端點位於目前專案以外的專案中,請選取「端點位於『PROJECT_NAME』以外的專案」
      2. 選取端點所在的專案。
    3. 在「Cloud Run 修訂版本」選單中,選取要測試的 Cloud Run 修訂版本。
  6. 針對「Destination」,請執行下列步驟:
    1. 在「Destination endpoint」選單中,選取 Google 管理的服務資源類型,例如 GKE 叢集控制層
    2. 在「Destination GKE cluster control plane」選單中,選取要測試與 GKE 控制層連線的叢集。
    3. 選用:從清單中選取目的地 GKE 叢集控制層端點。預設值為 GKE 叢集的 IP 端點。
  7. 在「Destination port」(目的地通訊埠) 欄位中,輸入指定目的地的目的地通訊埠。
  8. 按一下 [建立]。
  9. 測試完成後,系統會載入主要的「連線能力測試」頁面,並顯示包含這項測試和其他測試的清單。接著點選「查看測試結果」

gcloud

使用 gcloud network-management connectivity-tests create 指令。請以虛擬私人雲端網路中的值取代樣本值。

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-clusterprojects/myproject/locations/us-central1/clusters/cluster-1

  • DESTINATION_PORT:目的地的 IP 通訊協定通訊埠。這個選項僅適用於 TCP 或 UDP 通訊協定。預設為通訊埠 80

  • PROTOCOL:無伺服器虛擬私有雲存取連接器支援的網路通訊協定:TCPUDP

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 Run 函式的專案 ID。
  • TEST_ID:您執行的 Connectivity Tests 物件 (測試) ID。
  • CLOUD_RUN_REVISION:來源 Cloud Run 修訂版本的 URI,例如 projects/myproject/locations/us-central1/revisions/cloudrun-revision
  • DESTINATION_RESOURCE_FIELD:指定 Google 管理服務資源類型的欄位。

    如要瞭解可用的選項,請參閱以下內容:

    • gkeMasterCluster
    • cloudSqlInstance
    • redisInstance
    • redisCluster

    詳情請參閱端點參考資料

  • DESTINATION_ENDPOINT:目的地端點的 URI,例如 gkeMasterCluster 欄位的 projects/myproject/locations/us-central1/clusters/cluster-1

  • DESTINATION_PORT:目的地的 IP 通訊協定通訊埠。這個選項僅適用於 TCP 或 UDP 通訊協定。預設為通訊埠 80

  • PROTOCOL:無伺服器虛擬私有雲存取連接器支援的網路通訊協定:TCPUDP

從虛擬私有雲網路測試至非Google Cloud 網路

如要測試從 VPC 網路連線至非Google Cloud 網路,請按照下列步驟操作。

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」頁面。

    前往「Connectivity Tests」頁面

  2. 選取「Create Connectivity Test」(建立連線能力測試)
  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「Protocol」清單中,選取通訊協定。
  5. 在「Source」中選取「IP address」,然後輸入 IP 位址。
    1. 如果虛擬私有雲網路位於其他專案中,請選取「這是 Google Cloud 中使用的 IP 位址」。接著,在「Source IP address or service project」欄位中,選取網路所在的專案。
    2. 如果私人 IP 位址不在 RFC 1918 位址空間內,請勾選「我確認來源端點不在 RFC 1918 位址空間的範圍內」,然後選取含有 IP 位址的來源網路。
  6. 在「Destination」(目的地) 中,選取「IP address」(IP 位址),然後輸入外部 IP 位址。
  7. 清除「這是用於 Google Cloud 的 IP 位址」
  8. 在「Destination port」(目的地通訊埠) 欄位中,輸入指定目的地的目的地通訊埠。
  9. 按一下 [建立]。
  10. 測試完成後,系統會載入主要的「連線能力測試」頁面,並顯示包含這項測試和其他測試的清單。接著點選「查看測試結果」

gcloud

輸入下列指令,即可測試內部和外部 IP 位址。將指令選項的變數替換為虛擬私有雲端網路的值。

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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP

您不必確認 IP 位址是否在 Google Cloud中,或來源和目的地端點是否不在 RFC 1918 位址空間內。系統會根據來源和目的地 IP 位址自動選取這些參數。

API

這個範例會測試從來源 IP 位址連線偵測 (ping) 到目的地 IP 位址的功能。

請使用 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:您執行的 Connectivity Tests 物件 (測試) 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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP

Python

以下程式碼範例會在兩個 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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP
  • PROJECT_ID:您建立測試所在專案的專案 ID。
  • TEST_ID:您執行的 Connectivity Tests 物件 (測試) ID。

您不必確認 IP 位址是否在 Google Cloud中,或來源和目的地端點是否不在 RFC 1918 位址空間內。系統會根據來源和目的地 IP 位址自動選取這些參數。

以下範例會在兩個 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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP
  • PROJECT_ID:您要建立測試的專案 ID。
  • TEST_ID:您執行的 Connectivity Tests 物件 (測試) ID。

測試從一個虛擬私有雲輪輻連線至另一個已連線至同一個 Network Connectivity Center 中樞的虛擬私有雲輪輻

如要測試 Network Connectivity Center 中樞中的虛擬私有雲輪輻,以及連結至同一中樞的其他虛擬私有雲輪輻,請按照下列步驟操作。

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」頁面。

    前往「Connectivity Tests」頁面

  2. 選取「Create Connectivity Test」(建立連線能力測試)
  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「Protocol」清單中,選取通訊協定。
  5. 在「Source」中,選取「IP address」,然後輸入來源輻射狀態 VPC 網路的 IP 位址。
  6. 在「Destination」中,選取「IP address」,然後輸入您要測試的另一個輪輻 VPC 網路中的 IP 位址。
  7. 在「Destination port」(目的地通訊埠) 欄位中,輸入指定目的地的目的地通訊埠。
  8. 按一下 [建立]。
  9. 測試完成後,系統會載入主要的「連線能力測試」頁面,並顯示包含這項測試和其他測試的清單。接著點選「查看測試結果」

gcloud

輸入下列指令,測試兩個輻條之間的連線。將指令選項的變數替換為虛擬私人雲端網路中的值。

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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP

您不必確認 IP 位址是否在 Google Cloud中,或來源和目的地端點是否不在 RFC 1918 位址空間內。系統會根據來源和目的地 IP 位址自動選取這些參數。

API

這個範例會測試從來源 IP 位址連線偵測 (ping) 到目的地 IP 位址的功能。

請使用 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:您執行的 Connectivity Tests 物件 (測試) ID。
  • SOURCE_IP_ADDRESS:您要測試的來源 IP 位址。
  • SOURCE_NETWORK:來源 IP 位址所在的 VPC 網路的 URI,例如 projects/myproject/global/networks/default
  • DESTINATION_IP_ADDRESS:您要測試的另一個輻射狀虛擬私有雲網路中的目的地 IP 位址。
  • DESTINATION_PORT:目標 TCP 或 UDP 通訊埠編號。這個選項僅適用於 TCP 或 UDP 通訊協定。
  • PROTOCOL:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP

Python

以下程式碼範例會在兩個 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:目標 TCP 或 UDP 通訊埠編號。這個選項僅適用於 TCP 或 UDP 通訊協定。
  • PROTOCOL:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP
  • PROJECT_ID:您建立測試所在專案的專案 ID。
  • TEST_ID:您執行的 Connectivity Tests 物件 (測試) ID。

您不必確認 IP 位址是否在 Google Cloud中,或來源和目的地端點是否不在 RFC 1918 位址空間內。系統會根據來源和目的地 IP 位址自動選取這些參數。

以下範例會在兩個 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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP
  • PROJECT_ID:您要建立測試的專案 ID。
  • TEST_ID:您執行的 Connectivity Tests 物件 (測試) ID。

從 VM 測試至非Google Cloud 網路

這項測試會分析從來源 VM 到 Google 網路邊緣位置的連線。

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」頁面。

    前往「Connectivity Tests」頁面

  2. 選取「Create Connectivity Test」(建立連線能力測試)
  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「Protocol」清單中,選取通訊協定。
  5. 針對「Source」,請執行下列操作:

    1. 在「Source Endpoints」(來源端點) 選單中,選取「VM instance」(VM 執行個體)
    2. 在「Source VM instance」選單中,選取特定來源 VM 執行個體。
    3. 在「來源網路介面」選單中,選取網路介面。

      如果 VM 執行個體有多個網路介面,請選取可唯一識別來源位置的 VM 網路介面。

    4. 選用:從清單中選取「來源 IP 位址」。預設為來源 VM 執行個體的 IP 位址。

  6. 針對「目的地」,請執行下列操作:

    1. 在「Destination endpoint」(目的地端點) 選單中,選取「IP address」(IP 位址)
    2. 輸入外部目的地 IP 位址
    3. 清除「這是用於 Google Cloud 的 IP 位址」
  7. 在「Destination port」(目的地通訊埠) 欄位中,輸入指定目的地的目的地通訊埠。

  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:Connectivity Tests 支援的通訊協定。預設通訊協定為 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:您執行的 Connectivity Tests 物件 (測試) 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:Connectivity Tests 支援的通訊協定。預設通訊協定為 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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP
  • PROJECT_ID:您建立測試所在專案的專案 ID。
  • TEST_ID:您執行的 Connectivity Tests 物件 (測試) ID。

從 VM 或 IP 位址測試至負載平衡器

本節將說明如何測試從 VM 或 IP 位址連線至Google Cloud 負載平衡器。

Connectivity Tests 設定分析功能可追蹤模擬的封包,並將其傳送至所有類型的 Google Cloud 負載平衡器。外部應用程式負載平衡器的追蹤路徑也適用於外部 Proxy 網路負載平衡器。詳情請參閱 Cloud Load Balancing 總覽

您可以測試下列連線能力:

從 VM 測試至負載平衡器

本節會分析從來源 VM 到負載平衡器的連線。

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」頁面。

    前往「Connectivity Tests」頁面

  2. 選取「Create Connectivity Test」(建立連線能力測試)
  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「Protocol」清單中,選取通訊協定。
  5. 針對「Source」,請執行下列操作:

    1. 在「Source Endpoints」(來源端點) 選單中,選取「VM instance」(VM 執行個體)
    2. 在「Source VM instance」選單中,選取特定來源 VM 執行個體。
    3. 在「來源網路介面」選單中,選取網路介面。

      如果 VM 執行個體有多個網路介面,請選取可唯一識別來源位置的 VM 網路介面。

    4. 選用:從清單中選取「來源 IP 位址」。預設為來源 VM 執行個體的 IP 位址。

  6. 針對「目的地」,請執行下列操作:

    1. 在「Destination endpoint」選單中,選取「Load Balancer」
    2. 在「Destination Load Balancer」選單中,選取負載平衡器。

      如果目標端點位於目前專案以外的專案,請選取「端點位於『PROJECT_NAME』以外的專案」。接著,在「目標端點專案」欄位中,選取端點所在的專案。

    3. 選取「目的地轉接規則」

  7. 在「Destination port」(目的地通訊埠) 欄位中,輸入指定目的地的目的地通訊埠。

  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:Connectivity Tests 支援的通訊協定。預設通訊協定為 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:您執行的 Connectivity Tests 物件 (測試) 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:Connectivity Tests 支援的通訊協定。預設通訊協定為 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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP
  • PROJECT_ID:您建立測試所在專案的專案 ID。
  • TEST_ID:您執行的 Connectivity Tests 物件 (測試) ID。

從 IP 位址測試至負載平衡器

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」頁面。

    前往「Connectivity Tests」頁面

  2. 選取「Create Connectivity Test」(建立連線能力測試)
  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「Protocol」清單中,選取通訊協定。
  5. 針對「Source」,請執行下列步驟:
    1. 在「Source endpoint」(來源端點) 選單中,選取「IP address」(IP 位址)
    2. 在「Source IP address」(來源 IP 位址) 欄位中輸入來源 IP 位址。
      1. 如果虛擬私有雲網路位於其他專案,請選取「這是在 Google Cloud中使用的 IP 位址」接著,在「Source IP address or service project」欄位中,選取網路所在的專案。
      2. 如果 IP 位址不在 RFC 1918 位址空間內,請選取「我確認來源端點不在 RFC 1918 位址空間的範圍內」。接著,在「Source network」(來源網路) 清單中,選取含有來源 IP 位址的網路。
  6. 針對「目的地」,請執行下列操作:

    1. 在「Destination endpoint」選單中,選取「Load Balancer」
    2. 在「Destination Load Balancer」選單中,選取負載平衡器端點。

      如果目標端點位於目前專案以外的專案,請選取「端點位於『PROJECT_NAME』以外的專案」。接著,在「目標端點專案」欄位中,選取端點所在的專案。

    3. 選取「目的地轉接規則」

  7. 在「Destination port」(目的地通訊埠) 欄位中,輸入指定目的地的目的地通訊埠。

  8. 按一下 [建立]。

  9. 測試完成後,系統會載入主要的「連線能力測試」頁面,並顯示包含這項測試和其他測試的清單。接著點選「查看測試結果」

gcloud

使用 gcloud network-management connectivity-tests create 指令。請以虛擬私人雲端網路中的值取代樣本值。

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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP
  • DESTINATION_IP_ADDRESS:您要測試的外部目的地 IP 位址。
  • DESTINATION_PORT:目的地的 IP 通訊協定通訊埠。這個選項僅適用於 TCP 或 UDP 通訊協定。

如果端點用於存取其他虛擬私有雲網路中的代管服務或服務,您必須指定 DESTINATION_NETWORK,因為端點具有內部 IP 位址。

API

這個範例會測試從來源 IP 位址連線偵測 (ping) 到負載平衡器端點的功能。

請使用 projects.locations.global.connectivityTests.create 方法

如果您指定的來源 IP 位址是Google Cloud以外的外部 IP 位址,則必須指定 networkTypeNON_GCP_NETWORK。將下列指令中的值替換為 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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP

如果端點用於存取已發布的服務,您必須指定 DESTINATION_NETWORK,因為端點具有內部 IP 位址。

Python

以下程式碼範例會在 IP 位址與負載平衡器端點之間建立測試。詳情請參閱適用於 Python 的 Google API 用戶端程式庫中的 create

如果您指定的來源 IP 位址是Google Cloud以外的外部 IP 位址,則必須指定 networkTypeNON_GCP_NETWORK

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:Connectivity Tests 支援的通訊協定。預設通訊協定為 TCP
  • PROJECT_ID:您要建立測試的專案 ID。
  • TEST_ID:您執行的 Connectivity Tests 物件 (測試) ID。

如果端點用於存取已發布的服務,您必須指定 DESTINATION_NETWORK,因為端點具有內部 IP 位址。

您不必確認 IP 位址是否在 Google Cloud中,或來源和目的地端點是否不在 RFC 1918 位址空間內。系統會根據來源和目的地 IP 位址自動選取這些參數。

測試從非Google Cloud 網路連線至虛擬私有雲網路

除了下列步驟外,這個程序與「測試虛擬私有雲網路中私人 IP 位址之間的連線」程序相同。請使用這個程序,針對Google Cloud 控制台、Google Cloud CLI、API 範例和 Python 範例。

  1. 如果來源位址不在 Google Cloud 中,但也不是來自對等 (內部) 網路,請指定外部 IP 位址。
  2. 如果來源位址來自對等 (內部部署) 網路,您必須選取「其他非 Google Cloud 網路」

從非Google Cloud 網路測試至非Google Cloud 網路

除了下列步驟外,這個程序與「測試虛擬私有雲網路中私人 IP 位址之間的連線」程序相同。請使用這個程序,針對Google Cloud 控制台、Google Cloud CLI、API 範例和 Python 範例。

  1. 請為來源 IP 位址和目的地 IP 位址指定外部 IP 位址。
  2. 在 Google Cloud 控制台中,清除「這是用於 Google Cloud 的 IP 位址」

查看測試結果

本節說明如何查看連線測試結果。

控制台

您可以透過多個頁面查看測驗。

透過主要的「連線能力測試」頁面

  1. 前往 Google Cloud 控制台的「Connectivity Tests」頁面。

    前往「Connectivity Tests」頁面

  2. 在「結果詳細資料」欄中選擇測試,然後按一下「查看」
  3. 測試資訊面板隨即顯示。您可以在測試路徑中查看整體結果和每個 Google Cloud 資源的結果資訊卡。您可以點選連結,前往某些資源 (例如 VM 執行個體或路由) 的詳細資料頁面。 Google Cloud如果測試包含多個追蹤記錄,您可以從「Trace result」清單中選取追蹤記錄。

    如果測試符合即時資料層分析的資格條件,您就能查看封包遺失和延遲指標。

  4. 如要展開或關閉結果資訊卡,請按一下資訊卡右側的箭頭。

  5. 如要解讀測試結果,請參閱「設定分析狀態」。

  6. 如要關閉資訊面板,請按一下頁面右上方的「隱藏資訊面板」

透過「連線能力測試」詳細資料頁面

或者,您也可以在主控台 Google Cloud 頁面中按一下測試名稱,然後在「Connectivity Test details」頁面查看結果。

透過「網路介面詳細資料」頁面

您也可以在 網路介面詳細資料頁面查看 Compute Engine VM 執行個體的網路介面結果。本頁面只會列出使用目前網路介面做為來源或目的地的測試。

如要查看結果,您可以選取「Result details」欄中的「View」,或按一下測試名稱。

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:您執行的 Connectivity Tests 物件 (測試) 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:您執行的 Connectivity Tests 物件 (測試) ID。

重新執行一或多項測試

如果您對測試路徑中的 Google Cloud 資源進行設定變更,並想查看最新網路設定的結果,建議您重新執行連線測試。您可以同時重新執行一或多項測試。

連線能力測試會根據執行時的網路設定快照進行。重新執行測試會覆寫先前的測試結果。如要保留舊版結果,請改為建立新測試。

如要在 rerun 測試作業執行期間查看其狀態,請參閱「檢查正在執行的測試作業」。

控制台

透過主要的「連線能力測試」頁面

  1. 前往 Google Cloud 控制台的「Connectivity Tests」頁面。

    前往「Connectivity Tests」頁面

  2. 從可用的「連線能力測試」清單中選取一或多項測試。
  3. 按一下 「重播」

透過「連線能力測試」詳細資料頁面

  1. 在前述的主要「連線能力測試」頁面中,按一下測試名稱。
  2. 在「連線能力測試詳細資料」頁面頂端,按一下 「重跑」

透過「網路介面詳細資料」頁面

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 如果尚未選取,請選取含有您要重新執行測試的執行個體的專案。
  3. 按一下要用來重新執行測試的執行個體。
  4. 在「網路介面」部分,選取要用來重新執行測試的網路介面。
  5. 如要進行網路分析,請按一下「連線能力測試」
  6. 從可用的「連線能力測試」清單中選取一或多項測試。
  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:您執行的 Connectivity Tests 物件 (測試) 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:您執行的 Connectivity Tests 物件 (測試) ID

後續步驟