本教學課程將說明如何重複使用連線測試,找出並修正網路連線問題。
在這種情況下,虛擬私有雲 (VPC) 防火牆規則會防止某個虛擬機器 (VM) 執行個體的外部 IP 位址使用 ICMP 通訊協定,對另一個 VM 的外部 IP 位址執行連線偵測 (ping)。
由於 VM 到 VM 的通訊問題通常是網路連線問題,因此連線測試可提供可能的設定問題資訊,方便您進行修正。接著,您可以再次執行連線測試,確認修正結果。
總覽
在這種情況下,您已在 VPC 網路的相同子網路中設定兩個 VM 執行個體。這兩個 VM 都有外部 IP 位址。當您透過從 vm1
傳送連線偵測封包至 vm2
的外部 IP 位址,測試兩者之間的連線時,連線偵測功能不會運作。
事前準備
開始本教學課程前,請按照「建立及執行 Connectivity Tests」中的 Before you begin
部分所述步驟操作。
您也可以參考這篇文章,瞭解虛擬私有雲防火牆規則的運作方式。
設定網路資源
在本節中,您將設定測試路徑中的 Google Cloud 資源。
設定虛擬私有雲網路
您可以使用包含 VM 的現有網路和子網路,也可以建立新的網路和子網路。
設定兩個 VM 執行個體
- 本教學課程中的 VM 執行個體位於同一個虛擬私有雲網路和子網路中。您可以使用現有的 VM,也可以建立新的 VM。
- 建立
vm1
和vm2
時,請指派外部 IP 位址。請記下這些位址,因為後續會用到。
建立防火牆規則 default-deny-outgoing-ping
建立 VM 後,請建立名為 default-deny-outgoing-ping
的出站 VPC 防火牆規則。這項規則會拒絕從 vm1
到 vm2
的 ICMP 通訊協定。請確認這個網路中沒有任何會覆寫這個規則的防火牆規則。此外,請確認沒有任何階層式防火牆政策規則會覆寫這個規則。詳情請參閱階層式防火牆政策總覽。
請使用下表中的值設定這個 VPC 防火牆規則。
虛擬私有雲防火牆規則欄位 | 值 |
---|---|
名稱 | default-deny-outgoing-ping |
網路 | 使用 VM 所在的虛擬私有雲網路。 |
優先順序 | 1000 |
流量方向 | Egress |
相符時執行的動作 | 拒絕 |
目標 | 選取「網路中的所有執行個體」。 |
目的地 IP 範圍 | 使用 vm2 的外部 IP 位址。 |
指定的通訊協定和通訊埠 | 勾選「其他通訊協定」核取方塊,然後輸入 icmp 。 |
建立防火牆規則 default-deny-ingress-to-vm2
建立名為 default-deny-ingress-to-vm2
的輸入防火牆規則,拒絕 ICMP 通訊協定傳送至 vm2
的外部 IP 位址。請確認這個網路中沒有任何會覆寫這個規則的現有防火牆規則。此外,請確認沒有任何階層式防火牆政策規則會覆寫這個規則。詳情請參閱階層式防火牆政策總覽。
請使用下表中的值建立規則。
虛擬私有雲防火牆規則欄位 | 值 |
---|---|
名稱 | default-deny-ingress-to-vm2 |
網路 | 使用 VM 所在的虛擬私有雲網路。 |
優先順序 | 65534 |
流量方向 | 輸入流量 |
相符時執行的動作 | 拒絕 |
目標 | 選取「網路中的所有執行個體」。 |
來源 IP 範圍 | 使用 vm1 的外部 IP 位址。 |
指定的通訊協定和通訊埠 | 勾選「其他通訊協定」核取方塊,然後輸入 icmp 。 |
執行第一個追蹤記錄
使用 Google Cloud 主控台執行追蹤記錄,判斷 ICMP (ping) 封包是否可以從 vm1
傳送至 vm2
的外部 IP 位址。執行此追蹤後,連線能力測試會告知您,追蹤封包已因 VPC 防火牆規則 default-deny-outgoing-ping
而遭到捨棄。
請參考下表,瞭解追蹤記錄的輸入值。
欄位名稱 | 值 |
---|---|
通訊協定 | icmp |
來源 IP 位址 | 使用 選取「這是在 Google Cloud 中使用的 IP 位址」核取方塊。 |
來源 IP 位址或服務專案 | 確認 vm1 的專案名稱。 |
目的地 IP 位址 | 使用 選取「這是在 Google Cloud 中使用的 IP 位址」核取方塊。 |
目標 IP 位址或服務專案 | 確認 vm2 的專案名稱。 |
下列 Google Cloud 主控台快照顯示追蹤封包已傳送至防火牆規則 default-deny-outgoing-ping
。

在停用防火牆規則 default-deny-outgoing-ping
後執行第二次追蹤
- 如要允許
vm2
的 ping 測試,請暫時停用 VPC 防火牆規則default-deny-outgoing-ping
。 - 設定更新成功後,請再次執行追蹤記錄。
- 追蹤再次失敗。由於這項防火牆規則拒絕輸入 ICMP 封包至
vm2
的外部 IP 位址,因此封包遭到捨棄。
下列 Google Cloud 主控台快照顯示,傳入的追蹤封包可以通過 Cloud NAT,但由於先前提到的防火牆規則,無法到達 vm2
。

vm2
的主控台 UI 快照建立防火牆規則 allow-ping-from-known-ranges
如要允許輸入 vm2
的外部 IP 位址,請設定名為 allow-ping-from-known-ranges
的新 VPC 防火牆規則。允許所有輸入 ICMP 封包進入虛擬私有雲網路會造成安全性風險,因此請只指定一小組來源範圍,允許傳送 ICMP 封包至 vm2
的外部 IP 位址。
為了配合本教學課程,這個來源範圍只包含 vm1
的外部 IP 位址,但請檢查所有現有的防火牆規則或規則優先順序,確保不會覆寫這個新規則。此外,請確認沒有任何階層式防火牆政策規則會覆寫這個規則。詳情請參閱階層式防火牆政策總覽。
使用下表中的值設定規則。
虛擬私有雲防火牆規則欄位 | 值 |
---|---|
名稱 | allow-ping-from-known-ranges |
網路 | 請使用含有這兩個 VM 的網路名稱。 |
優先順序 | 1000 |
流量方向 | 輸入流量 |
相符時執行的動作 | 允許 |
目標 | 選取「網路中的所有執行個體」。 |
來源篩選器 | IP 範圍 |
來源 IP 範圍 | 使用 vm1 的外部 IP 位址。 |
指定的通訊協定和通訊埠 | 勾選「其他通訊協定」核取方塊,然後輸入 icmp 。 |
執行第三個追蹤記錄
建立 allow-ping-from-known-ranges
防火牆規則後,請再次對 vm2
的外部 IP 位址執行 ping 作業。測試成功,問題已解決。
您可以針對包含新防火牆規則的更新版設定,執行另一次追蹤,藉此驗證這項結果。這次,Connectivity Tests 會告訴您封包已傳送至 vm2
,且相符的防火牆規則 allow-ping-from-known-ranges
允許傳入 ICMP 封包至 vm2
的外部 IP 位址。

vm2
清除所用資源
如有需要,您可以停用或刪除為本教學課程建立的任何下列 Google Cloud 資源。請確認這些不是正式版資源。如果您決定停用資源,請查看 Compute Engine 定價頁面和所有網路定價頁面,確認不會產生相關費用。