建立及執行 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 控制台中,您可以使用下列任一方法執行連線能力測試:

  • 「連線測試」頁面,可透過「網路」>「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. 「連線能力測試」頁面會重新整理,並顯示該專案的測試。

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. 選取「建立連線能力測試」
  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「Protocol」(通訊協定) 清單中,選取通訊協定。
  5. 在「來源」部分執行下列步驟:
    1. 在「來源端點」選單中,選取「VM 執行個體」
    2. 在「Source VM instance」(來源 VM 執行個體) 選單中,選取特定來源 VM 執行個體。
    3. 在「來源網路介面」選單中,選取網路介面。

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

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

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

    4. 選用:從清單中選取「目的地 IP 位址」。 預設值為目的地 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. 在「通訊協定」清單中,選取通訊協定。
    3. 在「來源」部分,您可以選取「目前的網路介面」或「其他」

      如果選取「目前的網路介面」,請執行下列步驟:

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

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

      1. 在「來源端點」選單中,選取「VM 執行個體」
      2. 在「來源 VM 執行個體」選單中,選取執行個體。
      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:連線測試的支援通訊協定。預設通訊協定為 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:您執行的連線測試物件 (測試) 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

下列範例程式碼會在兩個 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。

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

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

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

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」(連線測試) 頁面。

    前往「Connectivity Tests」頁面

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

  2. 選取「建立連線能力測試」

  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「Protocol」(通訊協定) 清單中,選取通訊協定。
  5. 在「來源」部分執行下列步驟:

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

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

      如果 IP 位址不在 RFC 1918 位址空間內,請選取「本人確認來源端點不在 RFC 1918 位址空間的範圍內」核取方塊。然後在「來源網路」清單中,選取包含來源 IP 位址的網路。

  6. 在「目的地」部分,執行下列操作:

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

      如果虛擬私有雲網路位於其他專案,請在「目的地 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 位址所在的虛擬私有雲網路 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

如果網路不明,或您沒有存取網路的權限,可以將網路指定為 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:連線測試的支援通訊協定。預設通訊協定為 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 位址所在的虛擬私有雲網路 URI,例如 projects/myproject/global/networks/default
  • DESTINATION_PORT:目的地的 IP 通訊協定連接埠。 這個選項僅適用於 TCP 或 UDP 通訊協定。
  • PROTOCOL:連線測試的支援通訊協定。預設通訊協定為 TCP

Terraform

您可以使用 Terraform 資源,在虛擬私有雲網路的兩個 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:您執行的連線測試物件 (測試) ID。
  • SOURCE_IP_ADDRESS:您用來測試的來源 IP 位址。
  • SOURCE_NETWORK:來源 IP 位址所在的虛擬私有雲網路 URI,例如 projects/myproject/global/networks/default
  • DESTINATION_IP_ADDRESS:您要測試的內部或外部目的地 IP 位址。
  • DESTINATION_NETWORK:目的地 IP 位址所在的虛擬私有雲網路 URI,例如 projects/myproject/global/networks/network-a
  • DESTINATION_PORT:目的地的 IP 通訊協定連接埠。 這個選項僅適用於 TCP 或 UDP 通訊協定。
  • PROTOCOL:連線測試的支援通訊協定。預設通訊協定為 TCP

如果不知道虛擬私有雲網路,或沒有存取網路的權限,可以指定網路為 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:您執行的連線測試物件 (測試) 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

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

如果不知道虛擬私有雲網路,或沒有存取網路的權限,可以指定網路為 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:連線測試的支援通訊協定。預設通訊協定為 TCP
  • PROJECT_ID:您要建立測試的專案 ID。
  • TEST_ID:您執行的連線測試物件 (測試) ID。

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

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

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

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

主控台:從主機

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

    前往「Connectivity Tests」頁面

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

主控台:從服務

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

    前往「Connectivity Tests」頁面

  2. 選取「建立連線能力測試」
  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「通訊協定」清單中,選取通訊協定。
  5. 在「來源」部分執行下列步驟:
    1. 在「來源端點」選單中,選取「IP 位址」
    2. 輸入「來源 IP 位址」
    3. 選取「這是用於 Google Cloud的 IP 位址」核取方塊。
    4. 如果這是無法從網際網路存取的內部 IP 位址,請選取該位址所在的虛擬私有雲網路。
  6. 在「目的地」部分執行下列步驟:
    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:主專案的虛擬私有雲網路 URI,例如 projects/host-project/global/networks/default
  • DESTINATION_PROJECT:目的地端點的專案 ID,例如名為 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,例如名為 service-project 的專案,代表用於這個共用虛擬私有雲網路的服務專案。
  • DESTINATION_NETWORK:主專案的虛擬私有雲網路 URI,例如 projects/host-project/global/networks/default
  • DESTINATION_PORT:目的地的 IP 通訊協定連接埠。 這個選項僅適用於 TCP 或 UDP 通訊協定。
  • PROTOCOL:連線測試的支援通訊協定。預設通訊協定為 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:主專案的虛擬私有雲網路 URI,例如 projects/host-project/global/networks/default
  • DESTINATION_PORT:目的地的 IP 通訊協定連接埠。 這個選項僅適用於 TCP 或 UDP 通訊協定。
  • PROTOCOL:連線測試的支援通訊協定。預設通訊協定為 TCP
  • PROJECT_ID:您要建立測試的專案 ID。
  • TEST_ID:您執行的連線測試物件 (測試) 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. 選取「建立連線能力測試」
  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「通訊協定」清單中,選取通訊協定。
  5. 在「來源」部分執行下列步驟:

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

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

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

  6. 在「目的地」部分,執行下列操作:

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

  8. 點選「建立」

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

從「網路介面詳細資料」頁面

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

    前往 VM 執行個體

  2. 如果尚未選取,請選取包含要執行測試的執行個體專案。
  3. 按一下要用來執行測試的執行個體。
  4. 在「網路介面」部分,選取要用於執行測試的網路介面。
  5. 如要進行網路分析,請按一下「建立連線測試」
  6. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  7. 在「通訊協定」清單中,選取通訊協定。
  8. 在「來源」部分,選取「目前的網路介面」
  9. 在「目的地」部分執行下列步驟:
    1. 在「目的地端點」選單中,選取 Google 代管服務資源類型,例如「GKE 叢集控制層」
    2. 在「Destination GKE cluster control plane」(目的地 GKE 叢集控制層) 選單中,選取要測試與 GKE 控制層連線的叢集。
    3. 選用:從清單中選取「Destination GKE cluster control plane endpoint」(目的地 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,例如 projects/myproject/locations/us-central1/clusters/cluster-1,適用於 --destination-gke-master-cluster 標記。

  • 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
    • redisInstance
    • redisCluster

    詳情請參閱端點參考資料

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

  • 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
    • redisInstance
    • redisCluster

    詳情請參閱端點參考資料

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

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

  • PROTOCOL:連線測試的支援通訊協定。預設通訊協定為 TCP

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

  • TEST_ID:您執行的連線測試物件 (測試) ID。

從 VM 測試 Private Service Connect 端點

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

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

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

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」(連線測試) 頁面。

    前往「Connectivity Tests」頁面

  2. 選取「建立連線能力測試」
  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「通訊協定」清單中,選取通訊協定。
  5. 在「來源」部分執行下列步驟:

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

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

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

  6. 在「目的地」部分,執行下列操作:

    1. 在「目的地端點」選單中,選取「PSC 端點」
    2. 在「Destination PSC endpoint」(目的地 PSC 端點) 選單中,選取 PSC 端點。

      如果目標端點位於目前專案以外的專案,請選取「Endpoint is in a project other than "PROJECT_NAME"」(端點位於「PROJECT_NAME」以外的專案)。然後在「Destination endpoint project」(目標端點專案) 欄位中,選取端點所在的專案。

  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:連線測試的支援通訊協定。預設通訊協定為 TCP

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

API

下列範例測試會判斷現有網路設定是否允許 VM instance1 Ping Private Service Connect 端點的 IP 位址。

請使用 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

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

Python

下列程式碼範例會在 VM 執行個體和 Private Service Connect 端點之間建立測試。詳情請參閱 Google API Python 專用用戶端程式庫中的 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。

如果端點或後端用於存取已發布的服務,您必須指定 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. 選取「建立連線能力測試」
  3. 輸入測試名稱。
  4. 選取通訊協定。
  5. 在「來源端點」選單中,選取「App Engine」
    1. 在「App Engine service」(App Engine 服務) 選單中,選取要測試連線的特定 App Engine 標準環境服務。例如選取 helloworld-service
      1. 如果來源端點位於目前的專案以外的專案,請選取「端點位於『PROJECT_NAME』以外的專案」核取方塊。
      2. 選取端點所在的專案。
    2. 在「App Engine version」(App Engine 版本) 選單中,選取要測試連線的 App Engine 標準環境服務版本。
  6. 針對「Destination」(目的地),從清單中選取「Destination VM instance」(目的地 VM 執行個體)

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

  7. 選用:從清單中選取「目的地 IP 位址」。預設值是目的地 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:您執行的連線測試物件 (測試) 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. 選取「建立連線能力測試」
  3. 輸入測試名稱。
  4. 選取通訊協定。
  5. 在「來源端點」選單中,選取「App Engine」
    1. 在「App Engine service」(App Engine 服務) 選單中,選取要測試連線的特定 App Engine 標準環境服務。例如選取 helloworld-service
      1. 如果來源端點位於目前的專案以外,請選取「端點位於『PROJECT_NAME』以外的專案」
      2. 選取端點所在的專案。
    2. 在「App Engine version」(App Engine 版本) 選單中,選取要測試連線的 App Engine 標準環境服務版本。
  6. 在「目的地」中選取「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:您執行的連線測試物件 (測試) 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. 選取「建立連線能力測試」
  3. 輸入測試名稱。
  4. 選取通訊協定。
  5. 在「來源端點」選單中,選取「App Engine」
    1. 在「App Engine service」(App Engine 服務) 選單中,選取要測試連線的特定 App Engine 標準環境服務。例如選取 helloworld-service
      1. 如果來源端點位於目前的專案以外,請選取「端點位於『PROJECT_NAME』以外的專案」
      2. 選取端點所在的專案。
    2. 在「App Engine version」(App Engine 版本) 選單中,選取要測試連線的 App Engine 標準環境服務版本。
  6. 在「目的地」部分執行下列步驟:
    1. 在「目的地端點」選單中,選取 Google 代管服務資源類型,例如「GKE 叢集控制層」
    2. 在「Destination GKE cluster control plane」(目的地 GKE 叢集控制層) 選單中,選取要測試與 GKE 控制層連線的叢集。
    3. 選用:從清單中選取「Destination GKE cluster control plane endpoint」(目的地 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,例如 projects/myproject/locations/us-central1/clusters/cluster-1 (適用於 --destination-gke-master-cluster 旗標)。

  • 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:您執行的連線測試物件 (測試) 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,例如 projects/myproject/locations/us-central1/clusters/cluster-1 欄位的 gkeMasterCluster

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

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

  • PROTOCOL:連線測試的支援通訊協定。預設通訊協定為 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 functions 輸出設定」。

測試從 Cloud Run 函式到 VM 執行個體的連線

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」(連線測試) 頁面。

    前往「Connectivity Tests」頁面

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

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

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

    4. 選用:從清單中選取「目的地 IP 位址」。 預設值為目的地 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:連線測試的支援通訊協定。預設通訊協定為 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:您執行的連線測試物件 (測試) 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:連線測試的支援通訊協定。預設通訊協定為 TCP

測試從 Cloud Run 函式連線至 IP 位址

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」(連線測試) 頁面。

    前往「Connectivity Tests」頁面

  2. 選取「建立連線能力測試」
  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「通訊協定」清單中,選取通訊協定。
  5. 在「來源」部分執行下列步驟:
    1. 在「來源端點」選單中,選取「Cloud Functions 第 1 代」
    2. 在「Cloud Function」選單中,選取要測試連線的特定 Cloud Run 函式。例如選取 function-1
    3. 在「Cloud Function」(Cloud Function) 位置選單中,選取已部署 Cloud Run 函式的 Google Cloud 區域。您可以將 Cloud Run 函式部署至多個區域,這些區域的設定可能不同,但名稱相同。
  6. 在「目的地」中選取「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:連線測試的支援通訊協定。預設通訊協定為 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:您執行的連線測試物件 (測試) ID。
  • SOURCE_CLOUD_FUNCTION:Cloud Run 函式的 URI,例如 projects/myproject/locations/us-central1/functions/function-1
  • DESTINATION_IP_ADDRESS:您要測試的目的地 IP 位址。
  • PROTOCOL:連線測試的支援通訊協定。預設通訊協定為 TCP

測試從 Cloud Run 函式到 Google 代管服務的連線

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」(連線測試) 頁面。

    前往「Connectivity Tests」頁面

  2. 選取「建立連線能力測試」
  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「通訊協定」清單中,選取通訊協定。
  5. 在「來源」部分執行下列步驟:
    1. 在「來源端點」選單中,選取「Cloud Functions 第 1 代」
    2. 在「Cloud Function」選單中,選取要測試連線的特定 Cloud Run 函式。例如選取 function-1
    3. 在「Cloud Function location」(Cloud Function 位置) 選單中,選取已部署 Cloud Run 函式的 Google Cloud 區域。您可以將 Cloud Run 函式部署至多個區域,這些區域的設定可能不同,但名稱相同。
  6. 在「目的地」部分執行下列步驟:
    1. 在「目的地端點」選單中,選取 Google 管理的服務資源類型,例如 Cloud SQL 執行個體
    2. 在「Destination Cloud SQL instance」(目的地 Cloud SQL 執行個體) 選單中,選取要測試連線的 Cloud SQL 執行個體。
    3. 選用:從清單中選取「Destination Cloud SQL instance IP address」(目的地 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,例如 projects/myproject/locations/us-central1/clusters/cluster-1,適用於 --destination-gke-master-cluster 旗標。

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

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

  • PROTOCOL:連線測試的支援通訊協定。預設通訊協定為 TCP

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

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

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

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

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

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

    4. 選用:從清單中選取「目的地 IP 位址」。 預設值為目的地 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:您執行的連線測試物件 (測試) 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. 選取「建立連線能力測試」
  3. 輸入測試名稱。
  4. 選取通訊協定。
  5. 在「來源」部分執行下列步驟:
    1. 在「來源端點」選單中,選取「Cloud Run」
    2. 在「Cloud Run service」(Cloud Run 服務) 選單中,選取要測試連線的特定 Cloud Run 服務。例如選取 helloworld-run
      1. 如果來源端點位於目前的專案以外,請選取「端點位於『PROJECT_NAME』以外的專案」
      2. 選取端點所在的專案。
    3. 在「Cloud Run 修訂版本」選單中,選取要測試的 Cloud Run 修訂版本。
  6. 在「目的地」中選取「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:您執行的連線測試物件 (測試) 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. 選取「建立連線能力測試」
  3. 輸入測試名稱。
  4. 選取通訊協定。
  5. 在「來源」部分執行下列步驟:
    1. 在「來源端點」選單中,選取「Cloud Run」
    2. 在「Cloud Run service」(Cloud Run 服務) 選單中,選取要測試連線的特定 Cloud Run 服務。例如選取 helloworld-run
      1. 如果來源端點位於目前的專案以外,請選取「端點位於『PROJECT_NAME』以外的專案」
      2. 選取端點所在的專案。
    3. 在「Cloud Run 修訂版本」選單中,選取要測試的 Cloud Run 修訂版本。
  6. 在「目的地」部分執行下列步驟:
    1. 在「目的地端點」選單中,選取 Google 代管服務資源類型,例如「GKE 叢集控制層」
    2. 在「Destination GKE cluster control plane」(目的地 GKE 叢集控制層) 選單中,選取要測試與 GKE 控制層連線的叢集。
    3. 選用:從清單中選取「Destination GKE cluster control plane endpoint」(目的地 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,例如 projects/myproject/locations/us-central1/clusters/cluster-1,適用於 --destination-gke-master-cluster 旗標。

  • 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:您執行的連線測試物件 (測試) 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,例如 projects/myproject/locations/us-central1/clusters/cluster-1 欄位的 gkeMasterCluster

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

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

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

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

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」(連線測試) 頁面。

    前往「Connectivity Tests」頁面

  2. 選取「建立連線能力測試」
  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「通訊協定」清單中,選取通訊協定。
  5. 在「來源」中選取「IP 位址」,然後輸入 IP 位址。
    1. 如果虛擬私有雲網路位於其他專案,請選取「這是 Google Cloud 中使用的 IP 位址」。 然後在「來源 IP 位址或服務專案」欄位中,選取網路所在的專案。
    2. 如果私人 IP 位址不在 RFC 1918 位址空間內,請勾選「本人確認來源端點不在 RFC 1918 位址空間的範圍內」方塊,然後選取包含該 IP 位址的來源網路。
  6. 在「目的地」中選取「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 位址所在的虛擬私有雲網路 URI,例如 projects/myproject/global/networks/default
  • DESTINATION_IP_ADDRESS:您要測試的外部目的地 IP 位址。
  • PROTOCOL:連線測試的支援通訊協定。預設通訊協定為 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:您執行的連線測試物件 (測試) ID。
  • SOURCE_IP_ADDRESS:您用來測試的來源 IP 位址。
  • SOURCE_NETWORK:來源 IP 位址所在的虛擬私有雲網路 URI,例如 projects/myproject/global/networks/default
  • DESTINATION_IP_ADDRESS:您要測試的外部目的地 IP 位址。
  • DESTINATION_PORT:目的地的 IP 通訊協定連接埠。 這個選項僅適用於 TCP 或 UDP 通訊協定。
  • PROTOCOL:連線測試的支援通訊協定。預設通訊協定為 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:連線測試的支援通訊協定。預設通訊協定為 TCP
  • PROJECT_ID:您要建立測試的專案 ID。
  • TEST_ID:您執行的連線測試物件 (測試) 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:連線測試的支援通訊協定。預設通訊協定為 TCP
  • PROJECT_ID:您要在其中建立測試的專案 ID。
  • TEST_ID:您執行的連線測試物件 (測試) ID。

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

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

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」(連線測試) 頁面。

    前往「Connectivity Tests」頁面

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

gcloud

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

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

從 VM 測試連線至非Google Cloud 網路

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

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」(連線測試) 頁面。

    前往「Connectivity Tests」頁面

  2. 選取「建立連線能力測試」
  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「通訊協定」清單中,選取通訊協定。
  5. 在「來源」部分執行下列步驟:

    1. 在「來源端點」選單中,選取「VM 執行個體」
    2. 在「Source VM instance」(來源 VM 執行個體) 選單中,選取特定來源 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:連線測試的支援通訊協定。預設通訊協定為 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 負載平衡器。外部應用程式負載平衡器的追蹤路徑也適用於外部 Proxy 網路負載平衡器。詳情請參閱 Cloud Load Balancing 總覽

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

從 VM 測試連線至負載平衡器

本節會分析來源 VM 與負載平衡器之間的連線。

主控台

  1. 前往 Google Cloud 控制台的「Connectivity Tests」(連線測試) 頁面。

    前往「Connectivity Tests」頁面

  2. 選取「建立連線能力測試」
  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「通訊協定」清單中,選取通訊協定。
  5. 在「來源」部分執行下列步驟:

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

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

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

  6. 在「目的地」部分,執行下列操作:

    1. 在「目的地端點」選單中,選取「負載平衡器」
    2. 在「Destination Load Balancer」(目的地負載平衡器) 選單中,選取負載平衡器。

      如果目標端點位於目前專案以外的專案,請選取「Endpoint is in a project other than "PROJECT_NAME"」(端點位於「PROJECT_NAME」以外的專案)。然後在「Destination endpoint project」(目標端點專案) 欄位中,選取端點所在的專案。

    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:連線測試的支援通訊協定。預設通訊協定為 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 控制台的「Connectivity Tests」(連線測試) 頁面。

    前往「Connectivity Tests」頁面

  2. 選取「建立連線能力測試」
  3. 在「Test name」(測試名稱) 欄位中,輸入測試名稱。
  4. 在「通訊協定」清單中,選取通訊協定。
  5. 在「來源」部分執行下列步驟:
    1. 在「來源端點」選單中,選取「IP 位址」
    2. 在「來源 IP 位址」欄位中,輸入來源 IP 位址。
      1. 如果 VPC 網路位於其他專案,請選取「這是 Google Cloud中使用的 IP 位址」。然後在「來源 IP 位址或服務專案」欄位中,選取網路所在的專案。
      2. 如果 IP 位址不在 RFC 1918 位址空間內,請選取「我確認來源端點不在 RFC 1918 位址空間的範圍內」。然後在「來源網路」清單中,選取包含來源 IP 位址的網路。
  6. 在「目的地」部分,執行下列操作:

    1. 在「目的地端點」選單中,選取「負載平衡器」
    2. 在「Destination Load Balancer」(目的地負載平衡器) 選單中,選取負載平衡器端點。

      如果目標端點位於目前專案以外的專案,請選取「Endpoint is in a project other than "PROJECT_NAME"」(端點位於「PROJECT_NAME」以外的專案)。然後在「Destination endpoint project」(目標端點專案) 欄位中,選取端點所在的專案。

    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:連線測試的支援通訊協定。預設通訊協定為 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:連線測試的支援通訊協定。預設通訊協定為 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:連線測試的支援通訊協定。預設通訊協定為 TCP
  • PROJECT_ID:您要建立測試的專案 ID。
  • TEST_ID:您執行的連線測試物件 (測試) 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. 如果來源位址來自對等 (內部部署) 網路,請務必選取「Other non-Google Cloud network」(其他非 Google Cloud 網路)

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

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

  1. 為來源 IP 位址和目的地 IP 位址指定外部 IP 位址。
  2. 在 Google Cloud 控制台中,清除「This is an IP address used in Google Cloud」(這是用於 Google Cloud 的 IP 位址)

查看測試結果

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

控制台

您可以從多個不同頁面查看測試。

從主要的連線能力測試頁面

  1. 前往 Google Cloud 控制台的「Connectivity Tests」(連線測試) 頁面。

    前往「Connectivity Tests」頁面

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

    如果測試符合資格,可進行即時資料層分析,您就能查看封包遺失情況和延遲指標。

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

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

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

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

或者,您也可以在主控台 Google Cloud 頁面中點選測試名稱,然後在「連線測試詳細資料」頁面中查看測試結果。

從「網路介面詳細資料」頁面

您也可以在 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:您執行的連線測試物件 (測試) 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。

重新執行一或多項測試

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

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

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

控制台

從主要的連線能力測試頁面

  1. 前往 Google Cloud 控制台的「Connectivity Tests」(連線測試) 頁面。

    前往「Connectivity Tests」頁面

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

從「Connectivity Tests」詳細資料頁面

  1. 在上述「Connectivity Tests」(連線能力測試) 主頁面中,按一下測試名稱。
  2. 在「連線能力測試詳細資料」頁面頂端,按一下 「重新執行」

從「網路介面詳細資料」頁面

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

    前往 VM 執行個體

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

後續步驟