Connectivity Tests 總覽

Connectivity Tests 是一項診斷工具,可檢查網路端點之間的連線。它會分析設定,有時還會在端點間執行即時資料層分析。端點是網路流量的來源或目的地,例如 VM、Google Kubernetes Engine (GKE) 叢集、負載平衡器轉送規則,或網際網路上的 IP 位址。

為分析網路設定,Connectivity Tests 會模擬封包在虛擬私有雲 (VPC) 網路、Cloud VPN 通道或 VLAN 連結中的預期轉送路徑。Connectivity Tests 也可以在虛擬私有雲網路中模擬預期的資源傳入轉送路徑。

在某些連線情境中,Connectivity Tests 也會執行即時資料層分析。這項功能會透過資料層傳送封包來驗證連線,並提供延遲和封包遺失的基準診斷。如果該功能支援該路由,您執行的每項測試都會包含即時資料層分析結果。

如要瞭解如何為各種情境建立及執行測試,請參閱「建立及執行 Connectivity Tests」。

Connectivity Tests 的 API 是 Network Management API。詳情請參閱「API 說明文件」。

為何要使用 Connectivity Tests?

Connectivity Tests 可協助您疑難排解下列網路連線問題:

  • 非預期的不一致設定
  • 因網路設定變更或遷移而過時的設定
  • 各種網路服務和功能的設定錯誤

測試 Google 代管服務時,Connectivity Tests 也能協助您判斷虛擬私有雲網路或 Google 自有虛擬私有雲網路 (用於服務資源) 是否有問題。

Connectivity Tests 如何分析設定

分析網路設定時,Connectivity Tests 會使用抽象狀態機器,模擬虛擬私有雲網路處理封包的方式。Google Cloud 會透過幾個邏輯步驟處理封包。

分析可能有多種路徑

由於設定分析支援多種虛擬私有雲網路服務和功能,因此測試封包在虛擬私有雲網路設定中傳輸時,可能會經過多種路徑。

下圖顯示設定分析的模型,模擬兩個 Compute Engine 執行個體之間的追蹤記錄流量,左側和右側各有一個執行個體。

分析取決於網路基礎架構

視 Google Cloud 網路和資源設定而定,這類流量可能會先經過 Cloud VPN 通道、虛擬私有雲網路、 Google Cloud 負載平衡器或對接虛擬私有雲網路,再抵達目的地 Compute Engine 執行個體。

網路抽象狀態機器。
網路抽象狀態機器 (按一下可放大)。

分析會遵循其中一種有限狀態

封包傳送或捨棄前,離散狀態間的步驟數有限,因此可模擬為有限狀態機器。這個有限狀態機器在任何時間點都只能處於多個有限狀態中的一個,且可能有多個後續狀態。

例如,當 Connectivity Tests 根據路由路由優先順序比對多條路由時, Google Cloud 可以根據資料層中未指定的雜湊函式,從多條路由中選擇一條路由。如果已設定策略路由,Connectivity Tests 會將封包傳送至下一個躍點 (內部負載平衡器)。

在上述情況中,Connectivity Tests 追蹤記錄會傳回所有可能的路由,但無法判斷用於傳回路由的方法 Google Cloud 。這是因為該方法屬於 Google Cloud的內部方法,並隨時可能變更。

Google 代管服務

Google 代管服務 (例如 Cloud SQL 和 Google Kubernetes Engine (GKE)),會為專案和虛擬私有雲網路中的客戶分配資源,而這些資源由 Google 擁有及管理。客戶無權限存取這些資源。

Connectivity Tests 設定分析仍可執行測試,並提供 Google 代管服務的整體可連性結果,但不會提供 Google 所擁有專案中受測資源的詳細資料。

下圖顯示的模式說明設定分析如何模擬從客戶虛擬私有雲網路中的 Compute Engine 執行個體,到 Google 自有虛擬私有雲網路中 Cloud SQL 執行個體的追蹤記錄流量。在本範例中,網路是透過虛擬私有雲網路對接連線。

與兩個 Compute Engine 執行個體之間的標準測試類似,邏輯步驟包括檢查相關輸出防火牆規則,以及比對路由。執行測試時,Connectivity Tests 設定分析會提供這些步驟的詳細資料。不過,在分析 Google 自有虛擬私有雲網路設定的最後一個邏輯步驟時,分析只會提供整體可連性結果。您沒有權限查看 Google 自有專案,因此 Connectivity Tests 不會提供該專案中資源的詳細資料。

詳情請參閱「測試與 Google 代管服務間的往來連線能力」中的測試範例。

Google 代管服務的網路抽象狀態機器。
Google 代管服務的網路抽象狀態機器 (按一下可放大)。

支援的設定

Connectivity Tests 設定分析支援測試下列章節所述的網路設定。

來源端點

Connectivity Tests 設定分析支援下列來源端點:

目的地端點

Connectivity Tests 設定分析支援下列目的地端點:

Google Cloud 網路功能

您可以測試使用下列功能的資源之間的連線 (適用時支援 IPv4 和 IPv6):

Cloud Load Balancing 的注意事項

針對 Cloud Load Balancing,Connectivity Tests 設定分析支援下列功能:

如要瞭解不支援的 Cloud Load Balancing 功能,請參閱「不支援的設定」一節。

如要瞭解 Connectivity Tests 如何分析負載平衡器的後端,請參閱「測試負載平衡器時的追蹤記錄數」。

Google Kubernetes Engine 的注意事項

對於 GKE,Connectivity Tests 設定分析支援下列功能:

支援連線至 VPC 原生叢集中的 GKE Pod。不過,不支援部分 GKE 網路功能,例如 GKE 網路政策。

如要瞭解不支援的 GKE 功能,請參閱「不支援的設定」一節。

無伺服器端點的注意事項

無伺服器端點的來源 IP 位址通常不具決定性。每次執行測試時,Connectivity Tests 都會從無伺服器端點可用的位址集區中,隨機選取 IP 位址。如要瞭解無伺服器端點的 IP 位址分配方式,請參閱下列文章:

在某些情況下,根據輸出設定,系統會將直接虛擬私有雲輸出和無伺服器 VPC 存取連接器設定為透過外部連線 (而非虛擬私有雲網路) 路由傳輸無伺服器端點的流量。

如要瞭解不支援的無伺服器功能,請參閱「不支援的設定」一節。

不支援的設定

Connectivity Tests 設定分析不支援測試下列網路設定:

Connectivity Tests 如何分析即時資料層

即時資料層分析功能會從來源端點傳送多個探測封包至目的地,藉此測試連線。如果目的地不是 Google Cloud 資源,則會測試來源端點與網路邊緣位置之間的連線。

即時資料層分析結果會顯示傳送的探測次數、成功抵達目的地的探測次數,以及可連性狀態。系統會根據成功傳送的探測次數判斷狀態,如下表所示。

狀態 抵達目的地的探測次數
可連線 至少 95%
無法連線
部分可連線 大於 0 且小於 95%

除了顯示成功傳送的封包數量,即時資料層分析也會顯示中位數和第 95 個百分位數的單向延遲資訊。如果目的地是網際網路 IP 位址,即時資料層分析會傳送探測訊號,並顯示流量可能經過的每個 Google 網路邊緣路由器結果。

限制

即時資料層分析可能無法涵蓋所有可能的網路路徑:

  • 如果目的地端點是具有多個後端的 Google Cloud 負載平衡器,每個即時資料層分析探測都會傳送至隨機後端。有些後端可由多個探測測試,有些後端則可能完全不會測試。
  • 如果是等價多路徑 (ECMP) 轉送,每個即時資料層分析探測都會透過隨機路由轉送。許多探測可以測試某些轉送路徑,但其他轉送路徑可能完全未經測試。
  • 即時資料層分析探測的數量與現有網路路徑的數量無關,且即時資料層分析探測的數量可能不足,無法測試每條可能路徑。

如果設定分析與即時資料層分析結果明顯不一致,請參閱「疑難排解 Connectivity Tests」。

支援的設定

即時資料層分析支援的設定子集,會由 Connectivity Tests 設定分析進行測試。

來源端點

即時資料層分析支援下列來源端點:

目的地端點

即時資料層分析支援下列目的地端點:

通訊協定

即時資料層分析支援 TCP 和 UDP 通訊協定。

Google Cloud 網路功能

即時資料層分析支援下列功能:

不支援的設定

即時資料層分析不支援下列網路設定,也不會針對這些設定執行分析:

注意事項和限制

決定是否要使用 Connectivity Tests 時,請評估下列注意事項。

  • Connectivity Tests 執行的設定分析完全以 Google Cloud 資源的設定資訊為依據,可能「無法」代表虛擬私有雲網路資料層的實際狀況或狀態。
  • 雖然 Connectivity Tests 會取得一些動態設定資訊,例如 Cloud VPN 通道狀態和 Cloud Router 上的動態路由,但「不會」存取或維護 Google 內部生產基礎架構和資料層元件的健康狀態。
  • Connectivity Tests 的 Packet could be delivered 狀態「無法」保證流量能通過資料層。這項測試的目的是驗證可能導致流量下降的設定問題。

對於支援的路由,即時資料層分析結果會測試傳輸的封包是否抵達目的地,藉此補充設定分析結果。

Connectivity Tests 不瞭解 Google Cloud以外的網路

外部網路的定義如下:

  • 位於資料中心或其他設施的地端部署網路,您可在這些設施中運作硬體裝置和軟體應用程式。
  • 執行資源的其他雲端服務供應商。
  • 網際網路上的主機,會將流量傳送至虛擬私有雲網路。

Connectivity Tests 不會執行防火牆連線追蹤

虛擬私有雲防火牆的連線追蹤功能會儲存新連線和已建立連線的相關資訊,並根據這些資訊允許或限制後續流量。

Connectivity Tests 設定分析不支援防火牆連線追蹤,因為防火牆連線表位於 Compute Engine 執行個體的資料層,並且無法存取。不過,只要 Connectivity Tests 啟動輸出連線,設定分析就能模擬連線追蹤,允許通常會遭輸入防火牆規則拒絕的回傳連線。

即時資料層分析不支援測試防火牆連線追蹤。

Connectivity Tests 無法測試設定為修改轉送行為的 Compute Engine 執行個體

如果 Compute Engine 執行個體已設定為在資料層中充當路由器、防火牆、NAT 閘道或 VPN,Connectivity Tests 就無法測試這些執行個體。這種設定類型難以評估在 Compute Engine 執行個體上執行的環境。此外,即時資料層分析不支援這類測試情境。

Connectivity Tests 結果時間可能有所不同

取得 Connectivity Tests 結果可能需要 30 秒到 10 分鐘。測試所需時間取決於虛擬私有雲網路設定的大小,以及您使用的 Google Cloud 資源數量。

下表顯示所有使用者針對查詢中的範例設定執行測試時,可預期的回應時間。這項設定包含 Compute Engine 執行個體、Cloud VPN 通道和 Google Cloud負載平衡器。

每個查詢的回應時間
專案規模 Google Cloud 資源數量 回應延遲時間
小型專案 未滿 50 個 所有使用者 95% 的查詢在 60 秒內完成
中型專案 超過 50 個但未滿 5,000 個 所有使用者 95% 的查詢在 120 秒內完成
大型專案 大於 5,000 個 所有使用者 95% 的查詢在 600 秒內完成

即時資料層分析不適用於持續監控

即時資料層分析會執行網路連線的單次驗證,以利診斷。如要持續監控連線和封包遺失情形,請使用效能資訊主頁

VPC Service Controls 支援

VPC Service Controls 可為 Connectivity Tests 提供額外的安全性,協助降低資料竊取風險。您可以透過 VPC Service Controls 將專案加入 service perimeter 內,如此一來,源自 perimeter 外部的要求就無法保護資源及服務。

如要進一步瞭解 service perimeter,請參閱 VPC Service Controls 說明文件的「Service perimeter 詳細資料和設定」頁面。

後續步驟