本頁面說明 Connectivity Tests 如何測量可連線性。本文也會說明設定分析和即時資料層分析的運作方式。
什麼是可觸及度?
如果防火牆和路徑等網路設定允許流量從一個端點傳輸到另一個端點,資源就能從其他端點連線。舉例來說,如果網路設定應允許 VM1 將封包傳送至 VM2,則表示 VM1「可連線」至 VM2。
請注意,Connectivity Tests 評估可連線性的方式有以下幾點:
- Connectivity Tests 會評估從特定來源到特定目的地的可連線性。VM1 可以連線至 VM2,並不一定代表 VM3 也能連線至 VM2。
- Connectivity Tests 會測量單向可連性。VM1 可以開啟與 VM2 的連線,並不代表 VM2 可以開啟與 VM1 的連線。防火牆規則可能允許單一方向的流量,但禁止另一方向的流量。
- Connectivity Tests 會測量特定通訊協定和目的地通訊埠的可連線性。VM1 可以透過
tcp:443連上 VM2,並不代表可以透過tcp:80連上 VM2。 - Connectivity Tests 只會測試可能影響封包從來源傳送至目的地的 Google Cloud 虛擬私有雲網路設定。這項工具不會檢查目的地是否正在執行有效伺服器、作業系統防火牆規則是否會封鎖流量,或是安全性軟體是否會封鎖含有病毒酬載的封包。
「可觸及性」的概念源自圖論。從概念上來說,網路的整個可連線圖表包含所有端點 (節點),以及表示從來源節點到目的地節點可連線的單向邊緣。
可連性分析是一般用語,說明可進行的分析主體,用於判斷網路可連性。可連性分析的用途之一是連線能力測試。連線:在此情況下,是指網路連線的狀態。
可連性分析會測試網路轉送路徑中的每個步驟,並提供基礎網路設定的結果。舉例來說,Connectivity Tests 會分析套用至模擬測試封包的 Google Cloud 防火牆規則和路徑。
Connectivity Tests 的運作方式
Connectivity Tests 包含兩個主要元件:設定分析和即時資料層分析。本節將說明這兩種分析的運作方式。
設定分析的運作方式
本節說明 Connectivity Tests 及其元件的運作方式。
Connectivity Tests 會執行可連性分析,根據理想的設定模型評估測試路徑中的 Google Cloud 資源。即時資料層分析功能會傳送封包來驗證資料層的狀態,並提供支援設定的基準資訊,進一步強化這項測試。如要進一步瞭解即時資料層分析的運作方式,請參閱「即時資料層分析的運作方式」。
網路管理員可以控管許多可能會影響分析結果的設定,但部分設定除外。舉例來說,您無法控管代管 Google 服務 (例如 Cloud SQL 執行個體) 的虛擬私有雲網路。此外,由於權限限制,您可能無法控管影響網路的階層式防火牆政策規則。
執行連線測試時,您會輸入一組特定參數,並以網路追蹤或查詢的形式,收到格式化的結果。如果測試在網路中有多個可能路徑 (例如目的地端點是具有多個後端的 Google Cloud 負載平衡器),Connectivity Test 會產生多筆追蹤記錄。
- 「相符」表示 Connectivity Tests 找到 Google Cloud設定,允許模擬封包繼續通過測試路徑。
- 「不相符」表示 Connectivity Tests 找不到相符的結果。因此,設定不存在。
- 「拒絕比對」表示 Connectivity Tests 找到Google Cloud 設定,模擬測試封包必須捨棄。
Connectivity Tests 元件
Connectivity Test 是頂層元件,包含設定分析所需的所有其他測試子元件。這些元件的說明如下:
- 來源和目的地端點
- 測試及其追蹤記錄的可連性詳細資料,包括設定分析判斷的整體可連性結果
- 一或多個追蹤記錄,每個追蹤記錄都包含一或多個步驟
- 每個步驟的狀態
每項測試都有專屬名稱,每個步驟都有相關聯的狀態和 Info 中繼資料。舉例來說,如果步驟檢查路徑,該步驟就會包含 RouteInfo
中繼資料。
下圖顯示從一個 Compute Engine VM 執行個體到另一個執行個體的測試。如要瞭解測試元件的說明,請參閱下文各節。
來源和目的地端點
Connectivity Tests 設定分析支援 5 元組封包標頭,但不支援來源連接埠。這是因為來源通訊埠不會用於驗證 Google Cloud 網路設定中的資源。因此,執行測試時不需要提供這項資訊。
封包標頭包含下列元件:
- 網路通訊協定
- 來源端點,包含下列其中一項:
- VM 執行個體名稱
- 來源 IP 位址
- 來源 App Engine 服務
- Cloud Run 函式 (第 1 代) 環境
- Cloud Run 服務
- Cloud Run 工作
- Cloud SQL 執行個體名稱
- GKE 控制層的叢集名稱
- 目的地端點,由下列其中一項和通訊埠號碼組成:
- VM 執行個體名稱
- 目的地 IP 位址
- Cloud SQL 執行個體名稱
- GKE 控制層的叢集名稱
- Private Service Connect 端點
您也可以指定 Google Cloud 或非Google Cloud 網路類型,或是網路類型與 IP 位址或 VM 執行個體名稱的組合,以明確識別網路位置。
VM、IP 位址和 Google 管理服務支援下列網路通訊協定:
- TCP
- UDP
- ICMP
- ESP
- AH
- SCTP
- IPIP
無伺服器 VPC 存取連接器支援下列網路通訊協定:
- TCP
- UDP
支援 TCP 或 UDP 通訊協定的目標通訊埠。如未指定通訊埠,預設設定為通訊埠 80。
追蹤記錄、步驟和狀態
設定分析包含一或多個追蹤記錄。每項追蹤記錄代表測試中一個獨特的模擬封包轉送路徑。
- 每項追蹤記錄都包含多個依序執行的「步驟」。
- 每個步驟都包含與 Google Cloud 設定狀態相關的資訊,Connectivity Tests 會檢查該步驟的設定。
- 狀態可分為非最終狀態和最終狀態。
非最終狀態
非最終狀態代表測試路徑中每個 Google Cloud資源的設定檢查,例如 VM 執行個體、端點、防火牆規則、路徑或 Google Cloud 負載平衡器。
非最終狀態有四種:
- 初始
- 檢查設定
- 轉送
- 轉移
詳情請參閱「設定分析狀態」。
最終狀態
每項追蹤記錄都必須以最終狀態結尾,也就是追蹤記錄中的最後一個步驟。
最終狀態有四種可能:
DropAbortForwardDeliver
每個狀態都有相關聯的原因。詳情請參閱各個最終狀態的詳細資料。
整體可連性結果
設定分析也會提供整體可觸及結果,可能的值有四種:Reachable、Unreachable、Ambiguous 或 Undetermined。
瞭解整體可連線結果有助於設定監控或自動化功能。
詳情請參閱「整體可觸及性結果」。
假冒郵件檢查
當 VM 例項的模擬封包使用該例項不具備的 IP 位址時,連線測試會執行偽造檢查。VM 擁有的 IP 位址包括所有 VM 內部 IP 位址和次要 IP 位址。
如果該位址似乎來自外部流量 (也稱為外部位址),則 IP 位址會在偽造檢查中失敗。
中繼資料
每個狀態都可以有相關聯的中繼資料,形式為 Info 欄位。
舉例來說,InstanceInfo 包含 VM 執行個體的詳細資料,包括名稱和 IP 位址。
設定分析會提供測試本身的中繼資料,以及測試中每個步驟的中繼資料。
即時資料層分析的運作方式
即時資料層分析的探測機制不涉及客體 OS,使用者完全不會察覺。系統會代表來源端點將探測封包注入網路,並在傳送至目標端點前捨棄。探測器不計入一般網路帳單、遙測指標和流量記錄。
後續步驟
找出及修正 ICMP 問題 (教學課程)