Connectivity Tests 是一項診斷工具,可檢查網路端點之間的連線。系統會分析設定,有時還會在端點間執行即時資料層分析。端點是網路流量的來源或目的地,例如 VM、Google Kubernetes Engine (GKE) 叢集、負載平衡器轉送規則,或網際網路上的 IP 位址。
為分析網路設定,連線測試會模擬封包在虛擬私有雲 (VPC) 網路、Cloud VPN 通道或 VLAN 連結中的預期轉送路徑。Connectivity Tests 也可以模擬預期的資源傳入轉送路徑,傳送至虛擬私有雲網路。
在某些連線情境中,Connectivity Tests 也會執行即時資料層分析。這項功能會透過資料層傳送封包來驗證連線,並提供延遲和封包遺失的基準診斷結果。如果該功能支援這條路徑,您執行的每項測試都會包含即時資料層分析結果。
如要瞭解如何為各種情境建立及執行測試,請參閱「建立及執行連線能力測試」。
連線能力測試的 API 是 Network Management API。 詳情請參閱 API 說明文件。
為什麼要使用連線測試?
連線能力測試可協助排解下列網路連線問題:
- 非預期的不一致設定
- 因網路設定變更或遷移而過時的設定
- 各種網路服務和功能的設定錯誤
測試 Google 代管的服務時,連線測試也能協助您判斷虛擬私有雲網路或 Google 擁有的虛擬私有雲網路 (用於服務資源) 是否有問題。
Connectivity Tests 如何分析設定
分析網路設定時,連線測試會使用抽象狀態機,模擬虛擬私有雲網路處理封包的方式。Google Cloud 會透過幾個邏輯步驟處理封包。
分析作業可能有多種路徑
由於設定分析支援多種虛擬私有雲網路服務和功能,因此測試封包在虛擬私有雲網路設定中傳輸時,可能會經過多種路徑。
下圖顯示設定分析的模型,模擬兩個 Compute Engine 虛擬機器 (VM) 執行個體之間的追蹤流量,左側和右側各有一個執行個體。
分析結果取決於網路基礎架構
視 Google Cloud 網路和資源設定而定,這類流量可能會先經過 Cloud VPN 通道、VPC 網路、 Google Cloud 負載平衡器或對等互連 VPC 網路,再抵達目的地 VM 執行個體。
分析會進入其中一個有限狀態
封包傳送或捨棄前,離散狀態間的步驟數有界,因此可模擬為有限狀態機。這個有限狀態機在任何時間點都只能處於其中一個有限狀態,且可能有多個後續狀態。
舉例來說,當連線測試根據路徑優先順序比對多條路徑時, Google Cloud 可以根據資料層中未指定的雜湊函式,從多條路徑中選擇一條路徑。如果已設定策略路由,連線測試會將封包傳送至下一個躍點 (內部負載平衡器)。
在上述情況中,連線測試追蹤會傳回所有可能路徑,但無法判斷用於傳回路徑的方法 Google Cloud 。這是因為該方法屬於 Google Cloud的內部方法,
Google 代管服務
Cloud SQL 和 Google Kubernetes Engine (GKE) 等 Google 代管服務,會在 Google 擁有及管理的專案和 VPC 網路中,為客戶分配資源。顧客無權存取這些資源。
連線測試設定分析仍可執行測試,並提供 Google 代管服務的整體可連線結果,但不會提供 Google 所擁有專案中受測資源的詳細資料。
下圖顯示的模式說明設定分析如何模擬從客戶 VPC 網路中的 VM 執行個體到 Google 擁有的 VPC 網路中 Cloud SQL 執行個體的追蹤流量。在本範例中,網路是透過虛擬私有雲網路對等互連連線。
與兩個 VM 之間的標準測試類似,邏輯步驟包括檢查相關輸出防火牆規則,以及比對路徑。執行測試時,連線能力測試設定分析會提供這些步驟的詳細資料。不過,在分析 Google 擁有的 VPC 網路設定時,最後的邏輯步驟只會提供整體可連性結果。您沒有權限查看 Google 擁有的專案,因此連線能力測試不會提供該專案中資源的詳細資料。
詳情請參閱「測試與 Google 代管服務間的往來連線能力」一文中的測試範例。
支援的設定
連線測試設定分析支援測試下列章節所述的網路設定。
流量
- VM 執行個體與網際網路之間的流量
- VM 執行個體到 VM 執行個體
- 虛擬私有雲網路往返地端部署網路的連線 Google Cloud
- 透過 Network Connectivity Center 連線的兩個內部部署網路之間
- 兩個 Network Connectivity Center 虛擬私有雲輪輻之間
虛擬私有雲網路功能
您可以測試使用下列功能的資源之間的連線 (適用時支援 IPv4 和 IPv6):
- 虛擬私人雲端網路
- 虛擬私有雲網路對接
- 共用虛擬私有雲
- 私人 Google 存取權
- 別名 IP 範圍
- RFC 1918 位址範圍以外的私人 IP 位址
- 具備多個網路介面的 Compute Engine VM 執行個體
- 從對等互連虛擬私有雲網路匯入的自訂路徑
- 虛擬私有雲遞移轉送
- 虛擬私有雲防火牆規則
- 區域網路防火牆政策
- 階層式防火牆政策和全域網路防火牆政策
- 防火牆的 Resource Manager 標記,包括附加至具有多個網路介面的 Compute Engine 執行個體時。
- 策略路徑
- Private Service Connect
- 具有 IPv6 位址的執行個體,包括具有多個網路介面的執行個體
Google Cloud 混合式網路解決方案
下列混合式網路解決方案同時支援 IPv4 和 IPv6:
- Cloud VPN
- Cloud Interconnect
- Cloud Router,包括使用 BGP 的動態路徑和靜態路徑
Network Connectivity Center
支援 Network Connectivity Center 的虛擬私有雲輪輻和混合式輪輻。
Cloud NAT
Cloud Load Balancing
- 系統支援下列Google Cloud 負載平衡器類型:外部應用程式負載平衡器、外部直通式網路負載平衡器、外部 Proxy 網路負載平衡器、內部應用程式負載平衡器、內部直通式網路負載平衡器,以及內部 Proxy 網路負載平衡器。
- 系統支援測試與負載平衡器 IP 位址的連線。
- 系統支援驗證 Cloud Load Balancing 健康狀態檢查與後端的連線。
- 內部 TCP/UDP 負載平衡器可做為下一個躍點。
如要瞭解不支援的 Cloud Load Balancing 功能,請參閱「不支援的設定」一節。
如要瞭解連線能力測試如何分析負載平衡器的後端,請參閱測試負載平衡器時的追蹤記錄數量。
Google Kubernetes Engine (GKE)
- 支援與 GKE 節點和 GKE 控制層之間的連線,以及節點之間的連線。
- 支援透過 Cloud Load Balancing 連線至 GKE 服務。
- 系統支援連線至虛擬私有雲原生叢集中的 GKE Pod。不過,系統不支援部分 GKE 網路功能,例如 GKE NetworkPolicies。
如要瞭解不支援的 GKE 功能,請參閱「不支援的設定」一節。
無伺服器端點
系統支援下列無伺服器端點:
無伺服器端點的來源 IP 位址通常不具決定性。每次執行測試時,連線測試都會從無伺服器端點可用的位址集區中,隨機選取一個 IP 位址。如要瞭解無伺服器端點的 IP 位址分配方式,請參閱下列文章:
- 如要瞭解外部連線,請參閱「IP 位址」。
- 如要透過無伺服器虛擬私有雲存取連接器連線,請參閱「將無伺服器流量傳送至虛擬私有雲網路」。
- 如要透過直接虛擬私有雲 egress 連線,請參閱IP 位址分配。 這種連線類型僅適用於 Cloud Run。
在某些情況下,根據輸出設定,系統會將直接虛擬私有雲輸出和無伺服器虛擬私有雲存取連接器設定為透過外部連線 (而非虛擬私有雲網路),將流量從無伺服器端點傳輸出去。
如要瞭解不支援的無伺服器功能,請參閱「不支援的設定」一節。
其他 Google Cloud 產品和服務
支援的額外 Google Cloud 產品或服務如下:
- 支援 Cloud SQL 執行個體,包括 Private Service Connect 連線、虛擬私有雲網路對等互連連線和外部副本。
- 支援 Memorystore for Redis 執行個體。
- 支援 Memorystore for Redis Cluster。
不支援的設定
連線測試設定分析不支援測試下列網路設定:
- 系統不支援使用地理位置物件、威脅情報資料或 FQDN 物件的防火牆政策規則。如果這類防火牆可能會影響特定流量,連線能力測試會傳回相應的警告。
- 如果防火牆附加至具有多個網路介面的 Compute Engine 執行個體,則不支援防火牆的 Resource Manager 標記。
- 系統不支援以 FQDN 為目標的網際網路 NEG 後端。不過,系統支援以 IP 位址為目標的網際網路 NEG 後端。
- 不支援具有
INTERNAL_SELF_MANAGED
轉送規則的 Cloud Service Mesh 負載平衡器。 - 追蹤連線至外部應用程式負載平衡器 IP 位址時,系統不會考量或使用 Google Cloud Armor 政策。
- 不支援 Private Service Connect 通訊埠對應。
- 不支援連至 Compute Engine VM 的高可用性 VPN 閘道。
- 追蹤 GKE 叢集和節點內的 IP 位址連線時,系統不會考量或使用 GKE NetworkPolicies 和 IP 偽裝設定。
- 系統不支援以 DNS 名稱定義的 Cloud SQL 外部伺服器副本。不過,系統支援以 IP 位址定義的外部伺服器副本。
- 不支援 Cloud Run 函式 (第 2 代)。不過,您可以為基礎 Cloud Run 修訂版本建立連線測試,藉此測試 Cloud Run 函式 (第 2 代) 的連線能力。每次部署 Cloud Run 函式時,系統都會建立 Cloud Run 修訂版本。
- 不支援 App Engine 彈性環境。
- 目前不支援 Cloud Run 工作。詳情請參閱「服務和作業:執行程式碼的兩種方式」。
Connectivity Tests 如何分析即時資料層
即時資料層分析功能會從來源端點傳送多個追蹤封包至目的地,藉此測試連線。即時資料層分析結果會顯示傳送的探測次數、成功抵達目的地的探測次數,以及可連線狀態。系統會根據成功傳送的探測次數判斷狀態,如下表所示。
狀態 | 抵達目的地的探測次數 |
---|---|
可連線 | 至少 95% |
無法連線 | 無 |
部分可連線 | 大於 0 且小於 95% |
除了顯示成功傳送的封包數量,即時資料層分析也會顯示中位數和第 95 百分位數的單向延遲資訊。即時資料層分析與設定分析無關。而是獨立評估連線狀態。
如果設定分析結果與即時資料層分析結果明顯不一致,請參閱「排解連線測試問題」。
支援的設定
即時資料層分析支援下列網路設定。
流量
- 兩個 VM 執行個體之間
- VM 執行個體和 Cloud SQL 執行個體之間
- VM 執行個體與 GKE 控制層端點之間
- VM 執行個體與 Google 網路邊緣位置之間。系統會從來源 VM 執行個體,對所有可能的 Google 網路邊緣路由器執行即時資料平面分析,這些路由器可能會根據目的地 IP 位址轉送流量。
- IP 通訊協定:TCP、UDP
虛擬私有雲網路功能
您可以動態驗證使用下列功能的資源之間的連線:
- 虛擬私有雲網路對接
- 共用虛擬私有雲
- 別名 IP 範圍
- 外部 IP 位址
- 內部 IP 位址、RFC 1918 位址範圍以外的私人 IP 位址
- 自訂路徑
- 負載平衡器做為目的地。負載平衡器支援的後端包括執行個體群組、區域網路端點群組 (NEG) 和 Private Service Connect 後端。
- 輸入防火牆規則,包括輸入階層式防火牆政策規則和輸入 VPC 防火牆規則
- 具有 IPv6 位址的執行個體,包括具有多個網路介面的執行個體
- 已發布服務和 Google API 的 Private Service Connect 端點
不支援的設定
如果設定未明確列為支援項目,則不支援。此外,系統也不支援連線遭輸出防火牆規則封鎖的設定。
如果未執行即時資料層分析功能,任何測試的「上次封包傳送結果」欄位都會顯示 N/A
或 -
。
注意事項和限制
決定是否要使用連線測試時,請評估下列考量事項。
- 連線測試執行的設定分析完全以資源的設定資訊為依據, Google Cloud 可能無法代表 VPC 網路資料層的實際狀況或狀態。
- 雖然連線測試會取得一些動態設定資訊,例如 Cloud VPN 通道狀態和 Cloud Router 上的動態路徑,但不會存取或維護 Google 內部生產基礎架構和資料平面元件的健康狀態。
- 連線測試的
Packet could be delivered
狀態無法保證流量能通過資料層。這項測試的目的是驗證可能導致流量下降的設定問題。
對於支援的路徑,即時資料層分析結果會測試傳輸的封包是否抵達目的地,藉此補充設定分析結果。
Connectivity Tests 不瞭解 Google Cloud以外的網路
外部網路的定義如下:
- 位於資料中心或其他設施的地端網路,您可在這些設施中運作硬體裝置和軟體應用程式。
- 您執行資源的其他雲端服務供應商。
- 網際網路上的主機,會將流量傳送至您的虛擬私有雲網路。
Connectivity Tests 不會執行防火牆連線追蹤
虛擬私有雲防火牆的連線追蹤功能會儲存新連線和已建立連線的相關資訊,並根據這些資訊允許或限制後續流量。
Connectivity Tests 設定分析不支援防火牆連線追蹤,因為防火牆連線表位於 VM 執行個體的資料層,無法存取。不過,只要連線能力測試啟動輸出連線,設定分析就能模擬連線追蹤,允許通常會遭輸入防火牆規則拒絕的傳回連線。
即時資料層分析不支援測試防火牆連線追蹤。
Connectivity Tests 無法測試設定為修改轉送行為的 VM 執行個體
Connectivity Tests 無法測試已設定為在資料層中充當路由器、防火牆、NAT 閘道、VPN 等的 VM 執行個體。這種設定方式會導致難以評估 VM 執行個體上執行的環境。此外,即時資料層分析不支援這類測試情境。
連線能力測試結果時間可能有所不同
取得連線測試結果可能需要 30 秒到 10 分鐘。測試所需時間取決於 VPC 網路設定的大小,以及您使用的 Google Cloud 資源數量。
下表列出所有使用者針對查詢中的範例設定執行測試時,預期的回應時間。這項設定包含 VM 執行個體、Cloud VPN 通道和 Google Cloud 負載平衡器。
專案大小 | 資源數量 Google Cloud | 回應延遲 |
---|---|---|
小型專案 | 少於 50 個 | 所有使用者 95% 的查詢在 60 秒內完成 |
中型專案 | 超過 50 但少於 5000 | 所有使用者 95% 的查詢在 120 秒內完成 |
大型專案 | 大於 5000 | 所有使用者 95% 的查詢時間為 600 秒 |
即時資料層分析不適用於持續監控
即時資料層分析會執行一次性網路連線驗證,以利診斷。如要持續監控連線和封包遺失情形,請使用效能資訊主頁。
VPC Service Controls 支援
VPC Service Controls 可為連線測試提供額外的安全性,協助降低資料竊取風險。您可以透過 VPC Service Controls 將專案加入服務範圍內,如此一來,源自服務範圍外的要求就無法存取相關資源及服務。
如要進一步瞭解服務範圍,請參閱 VPC Service Controls 說明文件的「服務範圍詳細資料和設定」頁面。