GSP062

總覽
這個實作實驗室將說明如何建立安全且高處理量的 VPN,並測試速度。
確保 Google Cloud 與其他雲端或地端部署系統之間的通訊安全,對於許多企業和機構而言至關重要。幸好,Google Cloud 可協助您建立安全的網際網路通訊協定安全性 (IPsec) 虛擬私人網路 (VPN),輕鬆達成此目標。如果單一通道無法提供所需的處理量,Google Cloud 可以順暢地將流量分配給多個通道,以提供額外頻寬。
目標
在本實驗室,您將執行下列作業:
-
建立 VPN
- 建立名為
cloud
的虛擬私有雲 (VPC),模擬 Google Cloud 網路;以及建立名為 on-prem
(地端部署) 的虛擬私有雲,模擬外部網路。
- 為
cloud
虛擬私有雲建立 VPN 閘道、轉送規則及位址。
- 為新的 VPN 建立通道,並將流量轉送至這個通道。
- 在
on-prem
虛擬私有雲重複建立 VPN 的程序,以建立第二個 VPN。
-
測試 VPN
事前準備
完成下列準備工作,學習方能事半功倍:
設定和需求
瞭解以下事項後,再點選「Start Lab」按鈕
請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。
您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。
為了順利完成這個實驗室,請先確認:
- 可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
注意事項:請使用無痕模式 (建議選項) 或私密瀏覽視窗執行此實驗室,這可以防止個人帳戶和學員帳戶之間的衝突,避免個人帳戶產生額外費用。
- 是時候完成實驗室活動了!別忘了,活動一旦開始將無法暫停。
注意事項:務必使用實驗室專用的學員帳戶。如果使用其他 Google Cloud 帳戶,可能會產生額外費用。
如何開始研究室及登入 Google Cloud 控制台
-
點選「Start Lab」按鈕。如果實驗室會產生費用,畫面上會出現選擇付款方式的對話方塊。左側的「Lab Details」窗格會顯示下列項目:
- 「Open Google Cloud console」按鈕
- 剩餘時間
- 必須在這個研究室中使用的臨時憑證
- 完成這個實驗室所需的其他資訊 (如有)
-
點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」。
接著,實驗室會啟動相關資源,並開啟另一個分頁,顯示「登入」頁面。
提示:您可以在不同的視窗中並排開啟分頁。
注意:如果頁面中顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」。
-
如有必要,請將下方的 Username 貼到「登入」對話方塊。
{{{user_0.username | "Username"}}}
您也可以在「Lab Details」窗格找到 Username。
-
點選「下一步」。
-
複製下方的 Password,並貼到「歡迎使用」對話方塊。
{{{user_0.password | "Password"}}}
您也可以在「Lab Details」窗格找到 Password。
-
點選「下一步」。
重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。
注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
-
按過後續的所有頁面:
- 接受條款及細則。
- 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
- 請勿申請免費試用。
Google Cloud 控制台稍後會在這個分頁開啟。
注意:如要使用 Google Cloud 產品和服務,請點選「導覽選單」,或在「搜尋」欄位輸入服務或產品名稱。
啟動 Cloud Shell
Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。
-
點按 Google Cloud 控制台頂端的「啟用 Cloud Shell」圖示
。
-
系統顯示視窗時,請按照下列步驟操作:
- 繼續操作 Cloud Shell 視窗。
- 授權 Cloud Shell 使用您的憑證發出 Google Cloud API 呼叫。
連線建立完成即代表已通過驗證,而且專案已設為您的 Project_ID:。輸出內容中有一行文字,宣告本工作階段的 Project_ID:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud
是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。
- (選用) 您可以執行下列指令來列出使用中的帳戶:
gcloud auth list
- 點按「授權」。
輸出內容:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (選用) 您可以使用下列指令來列出專案 ID:
gcloud config list project
輸出內容:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
注意:如需 gcloud
的完整說明,請前往 Google Cloud 參閱 gcloud CLI 總覽指南。
工作 1:建立雲端虛擬私有雲
在本節中,您會:
- 建立虛擬私有雲,模擬雲端正式環境網路。
- 允許常見的流量類型流經虛擬私有雲。
- 建立用於部署主機的子網路。
- 在 Cloud Shell 中執行下列指令,建立與 Google Cloud 專案相關聯的自訂虛擬私有雲,並命名為
cloud
:
gcloud compute networks create cloud --subnet-mode custom
這個虛擬私有雲可使用非預設的 IP 位址,但不包含任何預設防火牆規則。
- 測試負載期間,您需要使用安全殼層與 VM 通訊,因此請執行以下指令來啟用
SSH
和 icmp
:
gcloud compute firewall-rules create cloud-fw --network cloud --allow tcp:22,tcp:5001,udp:5001,icmp
- 執行以下指令,在這個虛擬私有雲中建立子網路,並指定區域和 IP 範圍:
gcloud compute networks subnets create cloud-east --network cloud \
--range 10.0.1.0/24 --region {{{project_0.default_region_2 | REGION2}}}
在這個解決方案中,您將使用 10.0.1.0/24
和 地區。
工作 2:建立地端部署虛擬私有雲
在本節中,您將建立模擬的 on-prem
虛擬私有雲,或要連結至 cloud
的任何網路。實際上,您已經擁有這些資源,但為了建立通道和驗證設定,請遵循下列步驟:
- 在 Cloud Shell 中執行下列指令,新建一個與專案相關聯的自訂子網路虛擬私有雲,並命名為
on-prem
:
gcloud compute networks create on-prem --subnet-mode custom
- 測試負載期間,您需要使用安全殼層與 VM 通訊,因此請執行以下指令,為
on-prem
虛擬私有雲中的主機啟用 SSH
和 icmp
:
gcloud compute firewall-rules create on-prem-fw --network on-prem --allow tcp:22,tcp:5001,udp:5001,icmp
- 使用下列指令,指定地區的子網路前置字串:
gcloud compute networks subnets create on-prem-central \
--network on-prem --range 192.168.1.0/24 --region {{{project_0.default_region |REGION}}}
注意:在這個範例中,您將「192.168.1.0/24」指派給 區域。
建立兩個自訂虛擬私有雲,其中包含子網路和防火牆規則。
工作 3:建立 VPN 閘道
每個環境都需要 VPN 閘道,以安全地進行外部通訊。請遵循下列步驟,建立 cloud 和 on-prem
虛擬私有雲的初始閘道:
- 在 Cloud Shell 中,於
on-prem
虛擬私有雲和 地區建立名為 on-prem-gw1
的 VPN 閘道:
gcloud compute target-vpn-gateways create on-prem-gw1 --network on-prem --region {{{project_0.default_region |REGION}}}
- 接著在
cloud
虛擬私有雲和 地區中,建立名為 cloud-gw1
的 VPN 閘道:
gcloud compute target-vpn-gateways create cloud-gw1 --network cloud --region {{{project_0.default_region_2 | REGION2}}}
工作 4:在本機和 Google Cloud 網路之間建立路徑型 VPN 通道
每個 VPN 閘道都需要一個靜態的外部 IP 位址,才能與虛擬私有雲以外的系統通訊。接下來要在 cloud 和 on-prem
虛擬私有雲中建立 IP 位址和路由。
- 在 Cloud Shell 中,為
cloud-gw1
VPN 閘道分配 IP:
gcloud compute addresses create cloud-gw1 --region {{{project_0.default_region_2 | REGION2}}}
- 為
on-prem-gw1
VPN 閘道分配 IP:
gcloud compute addresses create on-prem-gw1 --region {{{project_0.default_region |REGION}}}
- 請儲存閘道位址,這樣就不用在之後的指令中查詢。
首先,針對 cloud-gw1
閘道:
cloud_gw1_ip=$(gcloud compute addresses describe cloud-gw1 \
--region {{{project_0.default_region_2 | REGION2}}} --format='value(address)')
第二,針對 on-prem-gw1
閘道:
on_prem_gw_ip=$(gcloud compute addresses describe on-prem-gw1 \
--region {{{project_0.default_region |REGION}}} --format='value(address)')
- 接著為
cloud
虛擬私有雲上的 IPsec 建立轉送規則。您必須建立雙向轉送規則。
從 cloud-gw1
轉送封裝安全負載 (ESP) 通訊協定:
gcloud compute forwarding-rules create cloud-1-fr-esp --ip-protocol ESP \
--address $cloud_gw1_ip --target-vpn-gateway cloud-gw1 --region {{{project_0.default_region_2 | REGION2}}}
從 cloud-gw1 轉送 UDP:500
流量:
gcloud compute forwarding-rules create cloud-1-fr-udp500 --ip-protocol UDP \
--ports 500 --address $cloud_gw1_ip --target-vpn-gateway cloud-gw1 --region {{{project_0.default_region_2 | REGION2}}}
從 cloud-gw1 轉送 UDP:4500
流量:
gcloud compute forwarding-rules create cloud-fr-1-udp4500 --ip-protocol UDP \
--ports 4500 --address $cloud_gw1_ip --target-vpn-gateway cloud-gw1 --region {{{project_0.default_region_2 | REGION2}}}
- 使用相同方法,為
on-prem
虛擬私有雲的 IPsec 通道建立防火牆轉送規則。這個步驟可讓 IPsec 通道離開防火牆:
從 on-prem-gw1
轉送 ESP 通訊協定:
gcloud compute forwarding-rules create on-prem-fr-esp --ip-protocol ESP \
--address $on_prem_gw_ip --target-vpn-gateway on-prem-gw1 --region {{{project_0.default_region |REGION}}}
從 on-prem-gw1 轉送用來建立 IPsec 通道的 UDP:500
流量:
gcloud compute forwarding-rules create on-prem-fr-udp500 --ip-protocol UDP --ports 500 \
--address $on_prem_gw_ip --target-vpn-gateway on-prem-gw1 --region {{{project_0.default_region |REGION}}}
從 on-prem-gw1
轉送承載加密流量的 UDP:4500
流量:
gcloud compute forwarding-rules create on-prem-fr-udp4500 --ip-protocol UDP --ports 4500 \
--address $on_prem_gw_ip --target-vpn-gateway on-prem-gw1 --region {{{project_0.default_region |REGION}}}
建立兩個 VPN 閘道和需要的轉送規則。
通常您需要產生密鑰,才能在下一個步驟建立和驗證 on-prem-tunnel1
和 cloud-tunnel1
通道。如要進一步瞭解如何建立和安全儲存密鑰,請參閱 Secret Manager 概念總覽指南。目前請使用字串「sharedsecret」。
為本機網路建立 on-prem-tunnel1
通道,並為雲端網路建立 cloud-tunnel1
通道。每個網路都要有一個 VPN 閘道,且密鑰必須相符。在下列兩個指令中,請將 [MY_SECRET]
換成「sharedsecret」(在正式環境中則換成您產生的密鑰)。
- 建立從
on-prem
到 cloud
的 VPN 通道:
gcloud compute vpn-tunnels create on-prem-tunnel1 --peer-address $cloud_gw1_ip \
--target-vpn-gateway on-prem-gw1 --ike-version 2 --local-traffic-selector 0.0.0.0/0 \
--remote-traffic-selector 0.0.0.0/0 --shared-secret=[MY_SECRET] --region {{{project_0.default_region |REGION}}}
- 建立從 cloud 到 on-prem 的 VPN 通道:
gcloud compute vpn-tunnels create cloud-tunnel1 --peer-address $on_prem_gw_ip \
--target-vpn-gateway cloud-gw1 --ike-version 2 --local-traffic-selector 0.0.0.0/0 \
--remote-traffic-selector 0.0.0.0/0 --shared-secret=[MY_SECRET] --region {{{project_0.default_region_2 | REGION2}}}
現在,您已建立閘道和通道,接著要新增從子網路導向這兩個通道的路由。
- 將
on-prem
虛擬私有雲到 cloud 10.0.1.0/24
範圍的流量轉送到通道:
gcloud compute routes create on-prem-route1 --destination-range 10.0.1.0/24 \
--network on-prem --next-hop-vpn-tunnel on-prem-tunnel1 \
--next-hop-vpn-tunnel-region {{{project_0.default_region |REGION}}}
- 將
cloud
虛擬私有雲到 on-prem 192.168.1.0/24
範圍的流量轉送到通道:
gcloud compute routes create cloud-route1 --destination-range 192.168.1.0/24 \
--network cloud --next-hop-vpn-tunnel cloud-tunnel1 --next-hop-vpn-tunnel-region {{{project_0.default_region_2 | REGION2}}}
建立兩個 VPN 通道。
工作 5:測試 VPN 處理量
您已在 on-prem 和 cloud 虛擬私有雲之間建立了一條安全路徑。接著請使用 iperf 測試處理量。這是一種用於網路負載測試的開放原始碼工具。如要進行測試,每個環境都需要一個 VM,分別用來傳送和接收流量。接下來將建立這些 VM。
單一 VPN 負載測試
現在要為 cloud 虛擬私有雲建立虛擬機器,並命名為 cloud-loadtest
。這個範例使用 Debian Linux 映像檔做為 OS。
注意:如果您有現有專案,可以略過這個步驟,直接使用現有資源。VM 的頻寬是 2 Gbps * vCPU,所以您最少需要 4 個 vCPU。
- 執行以下指令:
gcloud compute instances create "cloud-loadtest" --zone {{{project_0.default_zone_2 |ZONE2}}} \
--machine-type "e2-standard-4" --subnet "cloud-east" \
--image-family "debian-11" --image-project "debian-cloud" --boot-disk-size "10" \
--boot-disk-type "pd-standard" --boot-disk-device-name "cloud-loadtest"
- 為
on-prem
虛擬私有雲建立虛擬機器,並命名為 on-prem-loadtest
。本例使用與 cloud 虛擬私有雲相同的 Debian 映像檔。如果已有資源,請略過這個步驟。
執行以下指令:
gcloud compute instances create "on-prem-loadtest" --zone {{{project_0.default_zone |ZONE}}} \
--machine-type "e2-standard-4" --subnet "on-prem-central" \
--image-family "debian-11" --image-project "debian-cloud" --boot-disk-size "10" \
--boot-disk-type "pd-standard" --boot-disk-device-name "on-prem-loadtest"
- 使用控制台或指令列,透過 SSH 連線至各個 VM,並使用下列指令列安裝 iperf 的副本:
sudo apt-get install iperf
- 在
on-prem-loadtest
VM 上,執行下列指令:
iperf -s -i 5
您已在 VM 上建立了一個 iperf 伺服器,每隔 5 秒會報告狀態。
- 在
cloud-loadtest
VM 上,執行下列指令:
iperf -c 192.168.1.2 -P 20 -x C
這會建立含二十個串流的 iperf 用戶端,並在測試 10 秒後報告相關的值。
建立兩個 VM,並透過 SSH 安裝 iperf。
排解可能遇到的問題
注意:這部分不屬於實驗室操作說明。
- 為本機網路建立通道時,忘記將 [MY_SECRET] 換成「sharedsecret」。
您可以使用下列指令刪除建立的 VPN 通道:
gcloud compute vpn-tunnels delete [tunnel-name] --region [region]
- 將 [tunnel-name] 替換為通道名稱。
- 將 [region] 替換為建立通道時指定的區域。
- 無法順利執行單一 VPN 負載測試:
-
確認兩個 VM 都已安裝 iperf。
-
如果發生連線遭拒錯誤,請確認:
- 所建網路的防火牆規則 (tcp:5001) 設定正確
- 伺服器在
on-prem-loadtest
上正常運作
- 您是透過
cloud-loadtest
連線至伺服器
- 如要查看在控制台中建立的轉送規則:
- 在「導覽選單」中,前往「網路」部分。
- 依序點選「網路連線」>「VPN」。
- 點選 Cloud VPN 閘道,即可查看 Cloud VPN 閘道詳細資料頁面。
恭喜!
在本實驗室中,您成功在兩個模擬網路 (雲端虛擬私有雲和地端部署虛擬私有雲) 之間建立高處理量 VPN。您學會了如何建立自訂虛擬私有雲、設定 VPN 閘道、建立安全的 IPsec 通道,以及透過這些通道轉送流量。最後,您使用 iperf
測試 VPN 處理量,驗證其效能。
後續步驟
Google Cloud 教育訓練與認證
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
使用手冊上次更新日期:2025 年 3 月 30 日
實驗室上次測試日期:2025 年 2 月 25 日
Copyright 2025 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。