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