總覽
高可用性 VPN 為高可用性 (HA) 的 Cloud VPN 解決方案,可讓您在單一區域中使用 IPsec VPN 連線,安全地將地端部署網路連線至虛擬私有雲網路。高可用性 VPN 提供可用性達 99.99% 的服務水準協議。
高可用性 VPN 是一項區域性 VPN 解決方案,適用於個別虛擬私有雲。高可用性 VPN 閘道有兩個介面,每個介面都有專屬的公開 IP 位址。您建立高可用性 VPN 閘道時,系統會自動從不同的位址集區中選取兩個公開 IP 位址。高可用性 VPN 若設有兩個通道,Cloud VPN 的服務可用性會非常高,運作時間可達 99.99%。
在這個研究室中,您會建立名為 vpc-demo 的全域虛擬私有雲,並在 和 中設定兩個自訂子網路。在這個虛擬私有雲中,您會為各個區域新增 Compute Engine 執行個體,並建立第二個虛擬私有雲 (名為 on-prem),以模擬客戶的地端部署資料中心。針對第二個虛擬私有雲,您會在區域 中新增子網路,並建立在該區域中運作的 Compute Engine 執行個體。最後,您會在各個虛擬私有雲中新增高可用性 VPN 和 Cloud Router 路由器,並在每個高可用性 VPN 閘道上設定兩個通道,接著測試設定,驗證是否實現 99.99% 的服務水準協議。
目標
在這個研究室中,您會瞭解如何執行下列工作:
- 建立兩個虛擬私有雲網路和執行個體。
- 設定高可用性 VPN 閘道。
- 設定以 VPN 通道進行動態轉送。
- 設定全域動態轉送模式。
- 驗證並測試高可用性 VPN 閘道設定。
設定和需求
在每個研究室中,您都能在固定時間內免付費建立新的 Google Cloud 專案,並使用一組資源。
-
請透過無痕式視窗登入 Qwiklabs。
-
請記下研究室的存取時間 (例如 1:15:00
),並確保自己能在時間限制內完成作業。
研究室不提供暫停功能。如有需要,您可以重新開始,但原先的進度恕無法保留。
-
準備就緒後,請按一下「Start lab」。
-
請記下研究室憑證 (使用者名稱和密碼),這組資訊將用於登入 Google Cloud 控制台。
-
按一下「Open Google Console」。
-
按一下「Use another account」,然後複製這個研究室的憑證,並貼入提示訊息。
如果使用其他憑證,系統會顯示錯誤或向您收取費用。
-
接受條款,然後略過資源復原頁面。
如何開始研究室及登入控制台
-
按一下「Start Lab」按鈕。如果研究室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。左側面板會顯示必須在這個研究室中使用的暫時憑證。
-
複製使用者名稱,然後點選「Open Google Console」。接著,研究室會啟動相關資源並開啟另一個分頁,當中顯示「Choose an account」頁面。
注意事項:請在不同視窗並排開啟分頁。
-
點選「Choose an account」頁面中的「使用其他帳戶」,「Sign in」頁面隨即開啟。
-
貼上您在「連線詳細資訊」面板中複製的使用者名稱,然後複製並貼上密碼。
注意事項:請務必使用「連線詳細資訊」面板中的憑證,而非 Google Cloud Skills Boost 的憑證。另外,請勿在這個研究室中使用您自己的 Google Cloud 帳戶,以免產生費用。
- 按過後續的所有頁面:
- 接受條款及細則。
- 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
- 請勿申請免費試用。
Cloud 控制台稍後會在這個分頁中開啟。
注意事項:點選畫面左上方的導覽選單,即可查看 Google Cloud 產品與服務清單。
啟動 Google Cloud Shell
Google Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。
Google Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。
-
在 Cloud 控制台的右上方找到工具列,然後按一下「開啟 Cloud Shell」按鈕。
-
按一下「繼續」。
佈建並連線至環境的作業需要一些時間才能完成。連線建立完成即代表已通過驗證,而且專案已設為您的「PROJECT_ID」。示例如下:
gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵完成功能。
gcloud auth list
輸出內容:
Credentialed accounts:
- @.com (active)
輸出內容示例:
Credentialed accounts:
- google1623327_student@qwiklabs.net
gcloud config list project
輸出內容:
[core]
project =
輸出內容示例:
[core]
project = qwiklabs-gcp-44776a13dea667a6
注意事項:如需 gcloud 的完整說明,請參閱 gcloud CLI 總覽指南。
工作 1:設定全域虛擬私有雲環境
在這項工作中,您會設定含有兩個自訂子網路的全域虛擬私有雲,並在各個可用區中建立兩個 VM 執行個體 (會在所屬的可用區中運作)。
- 在 Cloud Shell 中建立名為 vpc-demo 的虛擬私有雲網路:
gcloud compute networks create vpc-demo --subnet-mode custom
輸出內容應與以下所示相似:
Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/global/networks/vpc-demo].
NAME: vpc-demo
SUBNET_MODE: CUSTOM
BGP_ROUTING_MODE: REGIONAL
IPV4_RANGE:
GATEWAY_IPV4:
- 使用 Cloud Shell,在區域 中建立子網路 vpc-demo-subnet1:
gcloud compute networks subnets create vpc-demo-subnet1 \
--network vpc-demo --range 10.1.1.0/24 --region "{{{project_0.default_region| REGION}}}"
- 在區域 中建立子網路 vpc-demo-subnet2:
gcloud compute networks subnets create vpc-demo-subnet2 \
--network vpc-demo --range 10.2.1.0/24 --region {{{project_0.default_region_2 | REGION 2}}}
- 建立防火牆規則,允許網路中的所有自訂流量:
gcloud compute firewall-rules create vpc-demo-allow-custom \
--network vpc-demo \
--allow tcp:0-65535,udp:0-65535,icmp \
--source-ranges 10.0.0.0/8
輸出內容應與以下所示相似:
Creating firewall...working..Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/global/firewalls/vpc-demo-allow-custom].
Creating firewall...done.
NAME: vpc-demo-allow-custom
NETWORK: vpc-demo
DIRECTION: INGRESS
PRIORITY: 1000
ALLOW: tcp:0-65535,udp:0-65535,icmp
DENY:
DISABLED: False
- 建立防火牆規則,允許從任何位置傳入的 SSH 和 ICMP 流量:
gcloud compute firewall-rules create vpc-demo-allow-ssh-icmp \
--network vpc-demo \
--allow tcp:22,icmp
- 在可用區 中建立 VM 執行個體 vpc-demo-instance1:
gcloud compute instances create vpc-demo-instance1 --machine-type=e2-medium --zone {{{ project_0.default_zone | "ZONE" }}} --subnet vpc-demo-subnet1
輸出內容應與以下所示相似:
Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/zones/{{{ project_0.default_zone | "ZONE" }}}/instances/vpc-demo-instance1].
NAME: vpc-demo-instance1
ZONE: {{{ project_0.default_zone | "ZONE" }}}
MACHINE_TYPE: e2-standard-2
PREEMPTIBLE:
INTERNAL_IP: 10.1.1.2
EXTERNAL_IP: 34.71.135.218
STATUS: RUNNING
- 在可用區 中建立 VM 執行個體 vpc-demo-instance2:
gcloud compute instances create vpc-demo-instance2 --machine-type=e2-medium --zone {{{project_0.default_zone_2 | ZONE2}}} --subnet vpc-demo-subnet2
工作 2:設定模擬的地端部署環境
在這項工作中,您會建立名為 on-prem 的虛擬私有雲,以模擬地端部署環境 (客戶會從這裡連線至 Google Cloud 環境)。
- 在 Cloud Shell 中建立名為 on-prem 的虛擬私有雲網路:
gcloud compute networks create on-prem --subnet-mode custom
輸出內容應與以下所示相似:
Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/global/networks/on-prem].
NAME: on-prem
SUBNET_MODE: CUSTOM
BGP_ROUTING_MODE: REGIONAL
IPV4_RANGE:
GATEWAY_IPV4:
- 建立名為 on-prem-subnet1 的子網路:
gcloud compute networks subnets create on-prem-subnet1 \
--network on-prem --range 192.168.1.0/24 --region {{{ project_0.default_region | "REGION" }}}
- 建立防火牆規則,允許網路中的所有自訂流量:
gcloud compute firewall-rules create on-prem-allow-custom \
--network on-prem \
--allow tcp:0-65535,udp:0-65535,icmp \
--source-ranges 192.168.0.0/16
- 建立防火牆規則,允許傳送至執行個體的 SSH、遠端桌面協定、HTTP 和 ICMP 流量:
gcloud compute firewall-rules create on-prem-allow-ssh-icmp \
--network on-prem \
--allow tcp:22,icmp
- 在區域 中建立名為 on-prem-instance1 的執行個體:
注意事項:在下列指令中,將 替換為 中的可用區,但不能使用位於 vpc-demo-subnet1 且在當中建立 vpc-demo-instance1 的可用區。
gcloud compute instances create on-prem-instance1 --machine-type=e2-medium --zone zone_name --subnet on-prem-subnet1
工作 3:設定高可用性 VPN 閘道
在這項工作中,您會在各個虛擬私有雲網路中建立高可用性 VPN 閘道,並在每個 Cloud VPN 閘道建立高可用性 VPN 通道。
- 使用 Cloud Shell 在 vpc-demo 網路中建立高可用性 VPN:
gcloud compute vpn-gateways create vpc-demo-vpn-gw1 --network vpc-demo --region {{{ project_0.default_region | "REGION" }}}
輸出內容應與以下所示相似:
Creating VPN Gateway...done.
NAME: vpc-demo-vpn-gw1
INTERFACE0: 35.242.117.95
INTERFACE1: 35.220.73.93
NETWORK: vpc-demo
REGION: {{{ project_0.default_region | "REGION" }}}
- 在 on-prem 網路中建立高可用性 VPN:
gcloud compute vpn-gateways create on-prem-vpn-gw1 --network on-prem --region {{{ project_0.default_region | "REGION" }}}
- 查看 vpc-demo-vpn-gw1 閘道的詳細資料,確認設定正確無誤:
gcloud compute vpn-gateways describe vpc-demo-vpn-gw1 --region {{{ project_0.default_region | "REGION" }}}
輸出內容應與以下所示相似:
creationTimestamp: '2022-01-25T03:02:20.983-08:00'
id: '7306781839576950355'
kind: compute#vpnGateway
labelFingerprint: 42WmSpB8rSM=
name: vpc-demo-vpn-gw1
network: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/global/networks/vpc-demo
region: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}
selfLink: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnGateways/vpc-demo-vpn-gw1
vpnInterfaces:
- id: 0
ipAddress: 35.242.117.95
- id: 1
ipAddress: 35.220.73.93
- 查看 on-prem-vpn-gw1 VPN 閘道的詳細資料,確認設定正確無誤:
gcloud compute vpn-gateways describe on-prem-vpn-gw1 --region {{{ project_0.default_region | "Region" }}}
輸出內容應與以下所示相似:
creationTimestamp: '2022-01-25T03:03:34.305-08:00'
id: '3697047034868688873'
kind: compute#vpnGateway
labelFingerprint: 42WmSpB8rSM=
name: on-prem-vpn-gw1
network: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/global/networks/on-prem
region: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}
selfLink: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnGateways/on-prem-vpn-gw1
vpnInterfaces:
- id: 0
ipAddress: 35.242.106.234
- id: 1
ipAddress: 35.220.88.140
建立 Cloud Router 路由器
- 在 vpc-demo 網路中建立 Cloud Router 路由器:
gcloud compute routers create vpc-demo-router1 \
--region {{{ project_0.default_region | "REGION" }}} \
--network vpc-demo \
--asn 65001
輸出內容應與以下所示相似:
Creating router [vpc-demo-router1]...done.
NAME: vpc-demo-router1
REGION: {{{ project_0.default_region | "REGION" }}}
NETWORK: vpc-demo
- 在 on-prem 網路中建立 Cloud Router 路由器:
gcloud compute routers create on-prem-router1 \
--region {{{ project_0.default_region | "REGION" }}} \
--network on-prem \
--asn 65002
工作 4:建立兩個 VPN 通道
在這項工作中,您會在兩個閘道之間建立 VPN 通道。設定高可用性 VPN 時,您會新增兩個通道,從個別閘道連線至遠端閘道。您會在 interface0 建立通道,並連線至遠端閘道的 interface0。接著,您會在 interface1 建立另一個通道,然後連線至遠端閘道的 interface1。
在兩個 Google Cloud 虛擬私有雲之間設定高可用性 VPN 通道時,您必須確保 interface0 的通道是連線至遠端 VPN 閘道的 interface0。同理,interface1 的通道必須連線至遠端 VPN 閘道的 interface1。
注意事項:在您的自有環境中,如果您為客戶將高可用性 VPN 連線至遠端的地端部署 VPN 閘道,則可以透過下列其中一種方式進行連線:
-
兩部地端部署 VPN 閘道裝置:在 Cloud VPN 閘道中,各個介面的每個通道都必須連線至各自的對等點閘道。
-
一部具備兩個介面的地端部署 VPN 閘道裝置:在 Cloud VPN 閘道中,各個介面的每個通道都必須連線至對等點閘道上各自的介面。
-
一部具有一個介面的地端部署 VPN 閘道裝置:在 Cloud VPN 閘道中,每個介面的兩個通道都必須連線至對等點閘道上的相同介面。
在這個研究室中,您會模擬地端部署環境,並搭配兩個位於 Google Cloud 的 VPN 閘道。請確保其中一個閘道的 interface0 是連線至另一個閘道的 interface0,且 interface1 是連線至遠端閘道的 interface1。
- 在 vpc-demo 網路中建立第一個 VPN 通道:
gcloud compute vpn-tunnels create vpc-demo-tunnel0 \
--peer-gcp-gateway on-prem-vpn-gw1 \
--region {{{ project_0.default_region | "REGION" }}} \
--ike-version 2 \
--shared-secret [SHARED_SECRET] \
--router vpc-demo-router1 \
--vpn-gateway vpc-demo-vpn-gw1 \
--interface 0
輸出內容應與以下所示相似:
Creating VPN tunnel...done.
NAME: vpc-demo-tunnel0
REGION: {{{ project_0.default_region | "REGION" }}}
GATEWAY: vpc-demo-vpn-gw1
VPN_INTERFACE: 0
PEER_ADDRESS: 35.242.106.234
- 在 vpc-demo 網路中建立第二個 VPN 通道:
gcloud compute vpn-tunnels create vpc-demo-tunnel1 \
--peer-gcp-gateway on-prem-vpn-gw1 \
--region {{{ project_0.default_region | "REGION" }}} \
--ike-version 2 \
--shared-secret [SHARED_SECRET] \
--router vpc-demo-router1 \
--vpn-gateway vpc-demo-vpn-gw1 \
--interface 1
- 在 on-prem 網路中建立第一個 VPN 通道:
gcloud compute vpn-tunnels create on-prem-tunnel0 \
--peer-gcp-gateway vpc-demo-vpn-gw1 \
--region {{{ project_0.default_region | "REGION" }}} \
--ike-version 2 \
--shared-secret [SHARED_SECRET] \
--router on-prem-router1 \
--vpn-gateway on-prem-vpn-gw1 \
--interface 0
- 在 on-prem 網路中建立第二個 VPN 通道:
gcloud compute vpn-tunnels create on-prem-tunnel1 \
--peer-gcp-gateway vpc-demo-vpn-gw1 \
--region {{{ project_0.default_region | "REGION" }}} \
--ike-version 2 \
--shared-secret [SHARED_SECRET] \
--router on-prem-router1 \
--vpn-gateway on-prem-vpn-gw1 \
--interface 1
工作 5:為各個通道建立邊界閘道通訊協定 (BGP) 對等互連
在這項工作中,您將為 vpc-demo 與 on-prem 虛擬私有雲之間的各個 VPN 通道設定 BGP 對接。高可用性 VPN 必須搭配動態轉送功能,可用性才能達到 99.99%。
- 為網路 vpc-demo 中的 tunnel0 建立路由器介面:
gcloud compute routers add-interface vpc-demo-router1 \
--interface-name if-tunnel0-to-on-prem \
--ip-address 169.254.0.1 \
--mask-length 30 \
--vpn-tunnel vpc-demo-tunnel0 \
--region {{{ project_0.default_region | "REGION" }}}
輸出內容應與以下所示相似:
Updated [https://www.googleapis.com/compute/v1/projects/binal-sandbox/regions/{{{ project_0.default_region | "REGION" }}}/routers/vpc-demo-router1].
- 為網路 vpc-demo 中的 tunnel0 建立 BGP 對等點:
gcloud compute routers add-bgp-peer vpc-demo-router1 \
--peer-name bgp-on-prem-tunnel0 \
--interface if-tunnel0-to-on-prem \
--peer-ip-address 169.254.0.2 \
--peer-asn 65002 \
--region {{{ project_0.default_region | "REGION" }}}
輸出內容應與以下所示相似:
Creating peer [bgp-on-prem-tunnel0] in router [vpc-demo-router1]...done.
- 為網路 vpc-demo 中的 tunnel1 建立路由器介面:
gcloud compute routers add-interface vpc-demo-router1 \
--interface-name if-tunnel1-to-on-prem \
--ip-address 169.254.1.1 \
--mask-length 30 \
--vpn-tunnel vpc-demo-tunnel1 \
--region {{{ project_0.default_region | "REGION" }}}
- 為網路 vpc-demo 中的 tunnel1 建立 BGP 對等點:
gcloud compute routers add-bgp-peer vpc-demo-router1 \
--peer-name bgp-on-prem-tunnel1 \
--interface if-tunnel1-to-on-prem \
--peer-ip-address 169.254.1.2 \
--peer-asn 65002 \
--region {{{ project_0.default_region | "REGION" }}}
- 為網路 on-prem 中的 tunnel0 建立路由器介面:
gcloud compute routers add-interface on-prem-router1 \
--interface-name if-tunnel0-to-vpc-demo \
--ip-address 169.254.0.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel0 \
--region {{{ project_0.default_region | "REGION" }}}
- 為網路 on-prem 中的 tunnel0 建立 BGP 對等點:
gcloud compute routers add-bgp-peer on-prem-router1 \
--peer-name bgp-vpc-demo-tunnel0 \
--interface if-tunnel0-to-vpc-demo \
--peer-ip-address 169.254.0.1 \
--peer-asn 65001 \
--region {{{ project_0.default_region | "REGION" }}}
- 為網路 on-prem 中的 tunnel1 建立路由器介面:
gcloud compute routers add-interface on-prem-router1 \
--interface-name if-tunnel1-to-vpc-demo \
--ip-address 169.254.1.2 \
--mask-length 30 \
--vpn-tunnel on-prem-tunnel1 \
--region {{{ project_0.default_region | "REGION" }}}
- 為網路 on-prem 中的 tunnel1 建立 BGP 對等點:
gcloud compute routers add-bgp-peer on-prem-router1 \
--peer-name bgp-vpc-demo-tunnel1 \
--interface if-tunnel1-to-vpc-demo \
--peer-ip-address 169.254.1.1 \
--peer-asn 65001 \
--region {{{ project_0.default_region | "REGION" }}}
工作 6:驗證路由器設定
在這項工作中,您會驗證兩個虛擬私有雲中的路由器設定,當中包含:設定防火牆規則來允許各個虛擬私有雲之間的流量、驗證通道的狀態、確認各個虛擬私有雲之間是否能透過 VPN 進行私人連線,並為虛擬私有雲啟用全域轉送模式。
- 查看 Cloud Router 路由器 vpc-demo-router1 的詳細資料,確認設定正確無誤:
gcloud compute routers describe vpc-demo-router1 \
--region {{{ project_0.default_region | "REGION" }}}
輸出內容應與以下所示相似:
bgp:
advertiseMode: DEFAULT
asn: 65001
keepaliveInterval: 20
bgpPeers:
- bfd:
minReceiveInterval: 1000
minTransmitInterval: 1000
multiplier: 5
sessionInitializationMode: DISABLED
enable: 'TRUE'
interfaceName: if-tunnel0-to-on-prem
ipAddress: 169.254.0.1
name: bgp-on-prem-tunnel0
peerAsn: 65002
peerIpAddress: 169.254.0.2
- bfd:
minReceiveInterval: 1000
minTransmitInterval: 1000
multiplier: 5
sessionInitializationMode: DISABLED
enable: 'TRUE'
interfaceName: if-tunnel1-to-on-prem
ipAddress: 169.254.1.1
name: bgp-on-prem-tunnel1
peerAsn: 65002
peerIpAddress: 169.254.1.2
creationTimestamp: '2022-01-25T03:06:23.370-08:00'
id: '2408056426544129856'
interfaces:
- ipRange: 169.254.0.1/30
linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnTunnels/vpc-demo-tunnel0
name: if-tunnel0-to-on-prem
- ipRange: 169.254.1.1/30
linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnTunnels/vpc-demo-tunnel1
name: if-tunnel1-to-on-prem
kind: compute#router
name: vpc-demo-router1
network: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/global/networks/vpc-demo
region: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}
selfLink: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/routers/vpc-demo-router1
- 查看 Cloud Router 路由器 on-prem-router1 的詳細資料,確認設定正確無誤:
gcloud compute routers describe on-prem-router1 \
--region {{{ project_0.default_region | "REGION" }}}
輸出內容應與以下所示相似:
bgp:
advertiseMode: DEFAULT
asn: 65002
keepaliveInterval: 20
bgpPeers:
- bfd:
minReceiveInterval: 1000
minTransmitInterval: 1000
multiplier: 5
sessionInitializationMode: DISABLED
enable: 'TRUE'
interfaceName: if-tunnel0-to-vpc-demo
ipAddress: 169.254.0.2
name: bgp-vpc-demo-tunnel0
peerAsn: 65001
peerIpAddress: 169.254.0.1
- bfd:
minReceiveInterval: 1000
minTransmitInterval: 1000
multiplier: 5
sessionInitializationMode: DISABLED
enable: 'TRUE'
interfaceName: if-tunnel1-to-vpc-demo
ipAddress: 169.254.1.2
name: bgp-vpc-demo-tunnel1
peerAsn: 65001
peerIpAddress: 169.254.1.1
creationTimestamp: '2022-01-25T03:07:40.360-08:00'
id: '3252882979067946771'
interfaces:
- ipRange: 169.254.0.2/30
linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnTunnels/on-prem-tunnel0
name: if-tunnel0-to-vpc-demo
- ipRange: 169.254.1.2/30
linkedVpnTunnel: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnTunnels/on-prem-tunnel1
name: if-tunnel1-to-vpc-demo
kind: compute#router
name: on-prem-router1
network: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/global/networks/on-prem
region: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}
selfLink: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/routers/on-prem-router1
設定防火牆規則,允許遠端虛擬私有雲傳出的流量
設定防火牆規則,允許對等點 VPN 私人 IP 範圍傳出的流量。
- 允許從虛擬私有雲網路 on-prem 傳送至 vpc-demo 的流量:
gcloud compute firewall-rules create vpc-demo-allow-subnets-from-on-prem \
--network vpc-demo \
--allow tcp,udp,icmp \
--source-ranges 192.168.1.0/24
輸出內容應與以下所示相似:
Creating firewall...working..Created [https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/global/firewalls/vpc-demo-allow-subnets-from-on-prem].
Creating firewall...done.
NAME: vpc-demo-allow-subnets-from-on-prem
NETWORK: vpc-demo
DIRECTION: INGRESS
PRIORITY: 1000
ALLOW: tcp,udp,icmp
DENY:
DISABLED: False
- 允許從 vpc-demo 傳送至虛擬私有雲網路 on-prem 的流量:
gcloud compute firewall-rules create on-prem-allow-subnets-from-vpc-demo \
--network on-prem \
--allow tcp,udp,icmp \
--source-ranges 10.1.1.0/24,10.2.1.0/24
驗證通道的狀態
- 使用 list 指令讓系統列出您剛剛建立的 VPN 通道:
gcloud compute vpn-tunnels list
應有四個 VPN 通道 (每個 VPN 閘道有兩個通道)。輸出內容應與以下所示相似:
NAME: on-prem-tunnel0
REGION: {{{ project_0.default_region | "REGION" }}}
GATEWAY: on-prem-vpn-gw1
PEER_ADDRESS: 35.242.117.95
NAME: on-prem-tunnel1
REGION: {{{ project_0.default_region | "REGION" }}}
GATEWAY: on-prem-vpn-gw1
PEER_ADDRESS: 35.220.73.93
NAME: vpc-demo-tunnel0
REGION: {{{ project_0.default_region | "REGION" }}}
GATEWAY: vpc-demo-vpn-gw1
PEER_ADDRESS: 35.242.106.234
NAME: vpc-demo-tunnel1
REGION: {{{ project_0.default_region | "REGION" }}}
GATEWAY: vpc-demo-vpn-gw1
PEER_ADDRESS: 35.220.88.140
- 確認 vpc-demo-tunnel0 通道正常運作:
gcloud compute vpn-tunnels describe vpc-demo-tunnel0 \
--region {{{ project_0.default_region | "REGION" }}}
通道輸出內容應會顯示詳細狀態:「Tunnel is up and running」。
creationTimestamp: '2022-01-25T03:21:05.238-08:00'
description: ''
detailedStatus: Tunnel is up and running.
id: '3268990180169769934'
ikeVersion: 2
kind: compute#vpnTunnel
labelFingerprint: 42WmSpB8rSM=
localTrafficSelector:
- 0.0.0.0/0
name: vpc-demo-tunnel0
peerGcpGateway: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnGateways/on-prem-vpn-gw1
peerIp: 35.242.106.234
region: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}
remoteTrafficSelector:
- 0.0.0.0/0
router: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/routers/vpc-demo-router1
selfLink: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnTunnels/vpc-demo-tunnel0
sharedSecret: '*************'
sharedSecretHash: AOs4oVY4bX91gba6DIeg1DbtzWTj
status: ESTABLISHED
vpnGateway: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnGateways/vpc-demo-vpn-gw1
vpnGatewayInterface: 0
- 確認 vpc-demo-tunnel1 通道正常運作:
gcloud compute vpn-tunnels describe vpc-demo-tunnel1 \
--region {{{ project_0.default_region | "REGION" }}}
通道輸出內容應會顯示詳細狀態:「Tunnel is up and running」。
- 確認 on-prem-tunnel0 通道正常運作:
gcloud compute vpn-tunnels describe on-prem-tunnel0 \
--region {{{ project_0.default_region | "REGION" }}}
通道輸出內容應會顯示詳細狀態:「Tunnel is up and running」。
- 確認 on-prem-tunnel1 通道正常運作:
gcloud compute vpn-tunnels describe on-prem-tunnel1 \
--region {{{ project_0.default_region | "REGION" }}}
通道輸出內容應會顯示詳細狀態:「Tunnel is up and running」。
確認是否能透過 VPN 進行私人連線
-
前往 Compute Engine,並注意在當中建立 on-prem-instance1 的可用區。
-
開啟新的 Cloud Shell 分頁並輸入下列內容,以透過 SSH 連線至執行個體 on-prem-instance1:將 <zone_name> 替換為在當中建立 on-prem-instance1 的可用區。
gcloud compute ssh on-prem-instance1 --zone zone_name
-
輸入「y」確認要繼續操作。
-
按下 Enter 鍵兩次,略過建立密碼的步驟。
-
從網路 on-prem 中的執行個體 on-prem-instance1 對 10.1.1.2 進行連線偵測 (ping),以便連上網路 vpc-demo 中的執行個體:
ping -c 4 10.1.1.2
連線偵測 (ping) 成功。輸出內容應與以下所示相似:
PING 10.1.1.2 (10.1.1.2) 56(84) bytes of data.
64 bytes from 10.1.1.2: icmp_seq=1 ttl=62 time=9.65 ms
64 bytes from 10.1.1.2: icmp_seq=2 ttl=62 time=2.01 ms
64 bytes from 10.1.1.2: icmp_seq=3 ttl=62 time=1.71 ms
64 bytes from 10.1.1.2: icmp_seq=4 ttl=62 time=1.77 ms
--- 10.1.1.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 8ms
rtt min/avg/max/mdev = 1.707/3.783/9.653/3.391 ms
透過 VPN 進行全域轉送
高可用性 VPN 屬於區域性資源,也是一個 Cloud Router 路由器,這個路由器部署到某個區域後,預設只會偵測到該區域中的路徑。如果要連線的執行個體位於 Cloud Router 路由器所在位置以外的區域,您必須啟用虛擬私有雲的全域轉送模式。這樣 Cloud Router 路由器就能偵測到其他區域的路徑,也能發出路徑通告。
- 開啟新的 Cloud Shell 分頁,並將 bgp-routing mode 從 vpc-demo 更新為 GLOBAL:
gcloud compute networks update vpc-demo --bgp-routing-mode GLOBAL
- 驗證變更:
gcloud compute networks describe vpc-demo
輸出內容應與以下所示相似:
autoCreateSubnetworks: false
creationTimestamp: '2022-01-25T02:52:58.553-08:00'
id: '4735939730452146277'
kind: compute#network
name: vpc-demo
routingConfig:
routingMode: GLOBAL
selfLink: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/global/networks/vpc-demo
subnetworks:
- https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/subnetworks/vpc-demo-subnet1
- https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/us-west1/subnetworks/vpc-demo-subnet2
x_gcloud_bgp_routing_mode: GLOBAL
x_gcloud_subnet_mode: CUSTOM
- 您有一個 Cloud Shell 分頁目前是透過 SSH 連線至 on-prem 網路中的執行個體。請在這個分頁中對區域 中的執行個體 vpc-demo-instance2 進行連線偵測 (ping):
ping -c 2 10.2.1.2
連線偵測 (ping) 成功。輸出內容應與以下所示相似:
PING 10.2.1.2 (10.2.1.2) 56(84) bytes of data.
64 bytes from 10.2.1.2: icmp_seq=1 ttl=62 time=34.9 ms
64 bytes from 10.2.1.2: icmp_seq=2 ttl=62 time=32.2 ms
--- 10.2.1.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 2ms
rtt min/avg/max/mdev = 32.189/33.528/34.867/1.339 ms
工作 7:驗證並測試高可用性 VPN 通道的設定
在這項工作中,您會測試各個高可用性 VPN 通道,並驗證通道的高可用性設定是否成功。
-
開啟新的 Cloud Shell 分頁。
-
將網路 vpc-demo 中的 tunnel0 關閉:
gcloud compute vpn-tunnels delete vpc-demo-tunnel0 --region {{{ project_0.default_region | "REGION" }}}
系統詢問是否要刪除時,請回覆「y」。接著,網路 on-prem 中相對應的 tunnel0 就會停止運作。
- 驗證通道是否已停止運作:
gcloud compute vpn-tunnels describe on-prem-tunnel0 --region {{{ project_0.default_region | "REGION" }}}
詳細狀態應會顯示為「Handshake_with_peer_broken」。
creationTimestamp: '2022-01-25T03:22:33.581-08:00'
description: ''
detailedStatus: Handshake with peer broken for unknown reason. Trying again soon.
id: '4116279561430393750'
ikeVersion: 2
kind: compute#vpnTunnel
localTrafficSelector:
- 0.0.0.0/0
name: on-prem-tunnel0
peerGcpGateway: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnGateways/vpc-demo-vpn-gw1
peerIp: 35.242.117.95
region: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}
remoteTrafficSelector:
- 0.0.0.0/0
router: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/routers/on-prem-router1
selfLink: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnTunnels/on-prem-tunnel0
sharedSecret: '*************'
sharedSecretHash: AO3jeFtewmjvTMO7JEM5RuyCtqaa
status: FIRST_HANDSHAKE
vpnGateway: https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-03-cdb29e18d20d/regions/{{{ project_0.default_region | "REGION" }}}/vpnGateways/on-prem-vpn-gw1
vpnGatewayInterface: 0
- 切換至先前的 Cloud Shell 分頁 (其中有已開啟且正在執行的 SSH 工作階段),然後確認網路 vpc-demo 與網路 on-prem 中執行個體之間的連線偵測 (ping) 情形:
ping -c 3 10.1.1.2
輸出內容應與以下所示相似:
PING 10.1.1.2 (10.1.1.2) 56(84) bytes of data.
64 bytes from 10.1.1.2: icmp_seq=1 ttl=62 time=6.31 ms
64 bytes from 10.1.1.2: icmp_seq=2 ttl=62 time=1.13 ms
64 bytes from 10.1.1.2: icmp_seq=3 ttl=62 time=1.20 ms
--- 10.1.1.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 5ms
rtt min/avg/max/mdev = 1.132/2.882/6.312/2.425 ms
流量現在會透過第二個通道傳送,因此連線偵測 (ping) 還是成功,您已順利設定高可用性 VPN 通道。
工作 8:(選擇性工作) 清除研究室環境的資源
在這項工作中,您會清除已使用的資源 (可以自行選擇是否執行)。結束研究室後,系統會自動為您清除並捨棄所有資源與專案。不過,也建議您瞭解如何自行清除自有環境中的資源,以節省成本並降低資源用量。
刪除 VPN 通道
- 在 Cloud Shell 中輸入下列指令,將剩餘通道刪除。系統詢問時,請輸入「y」確認各項操作:
gcloud compute vpn-tunnels delete on-prem-tunnel0 --region {{{ project_0.default_region | "REGION" }}}
gcloud compute vpn-tunnels delete vpc-demo-tunnel1 --region {{{ project_0.default_region | "REGION" }}}
gcloud compute vpn-tunnels delete on-prem-tunnel1 --region {{{ project_0.default_region | "REGION" }}}
移除 BGP 對接
gcloud compute routers remove-bgp-peer vpc-demo-router1 --peer-name bgp-on-prem-tunnel0 --region {{{ project_0.default_region | "REGION" }}}
gcloud compute routers remove-bgp-peer vpc-demo-router1 --peer-name bgp-on-prem-tunnel1 --region {{{ project_0.default_region | "REGION" }}}
gcloud compute routers remove-bgp-peer on-prem-router1 --peer-name bgp-vpc-demo-tunnel0 --region {{{ project_0.default_region | "REGION" }}}
gcloud compute routers remove-bgp-peer on-prem-router1 --peer-name bgp-vpc-demo-tunnel1 --region {{{ project_0.default_region | "REGION" }}}
刪除 Cloud Router 路由器
- 輸入下列各個指令,將路由器刪除。系統詢問時,請輸入「y」確認各項操作:
gcloud compute routers delete on-prem-router1 --region {{{ project_0.default_region | "REGION" }}}
gcloud compute routers delete vpc-demo-router1 --region {{{ project_0.default_region | "REGION" }}}
刪除 VPN 閘道
- 輸入下列各個指令,將 VPN 閘道刪除。系統詢問時,請輸入「y」確認各項操作:
gcloud compute vpn-gateways delete vpc-demo-vpn-gw1 --region {{{ project_0.default_region | "REGION" }}}
gcloud compute vpn-gateways delete on-prem-vpn-gw1 --region {{{ project_0.default_region | "REGION" }}}
刪除執行個體
- 輸入下列指令,將各個執行個體刪除。系統詢問時,請輸入「y」確認各項操作:
gcloud compute instances delete vpc-demo-instance1 --zone {{{ project_0.default_zone | "ZONE" }}}
gcloud compute instances delete vpc-demo-instance2 --zone {{{project_0.default_zone_2 | "ZONE"}}}
gcloud compute instances delete on-prem-instance1 --zone zone_name
注意事項:將 替換為在當中建立 on-prem-instance1 的可用區。
刪除防火牆規則
- 輸入下列指令,將防火牆規則刪除。系統詢問時,請輸入「y」確認各項操作:
gcloud compute firewall-rules delete vpc-demo-allow-custom
gcloud compute firewall-rules delete on-prem-allow-subnets-from-vpc-demo
gcloud compute firewall-rules delete on-prem-allow-ssh-icmp
gcloud compute firewall-rules delete on-prem-allow-custom
gcloud compute firewall-rules delete vpc-demo-allow-subnets-from-on-prem
gcloud compute firewall-rules delete vpc-demo-allow-ssh-icmp
刪除子網路
- 輸入下列指令,將子網路刪除。系統詢問時,請輸入「y」確認各項操作:
gcloud compute networks subnets delete vpc-demo-subnet1 --region {{{ project_0.default_region | "REGION" }}}
gcloud compute networks subnets delete vpc-demo-subnet2 --region {{{project_0.default_region_2 | REGION 2}}}
gcloud compute networks subnets delete on-prem-subnet1 --region {{{ project_0.default_region | "REGION" }}}
刪除虛擬私有雲
- 輸入下列指令,將虛擬私有雲刪除。系統詢問時,請輸入「y」確認各項操作:
gcloud compute networks delete vpc-demo
gcloud compute networks delete on-prem
工作 9:重點回顧
在這個研究室中,您設定了高可用性 VPN 閘道、以 VPN 通道進行動態轉送的功能,以及全域動態轉送模式。最後,您確認了高可用性 VPN 的設定正確無誤,而且可以正常運作。
關閉研究室
如果您已完成研究室,請按一下「End Lab」(關閉研究室)。Google Cloud Skills Boost 會移除您使用的資源,並清除所用帳戶。
您可以針對研究室的使用體驗評分。請選取合適的星級評等並提供意見,然後按一下「Submit」(提交)。
星級評等代表您的滿意程度:
- 1 星 = 非常不滿意
- 2 星 = 不滿意
- 3 星 = 普通
- 4 星 = 滿意
- 5 星 = 非常滿意
如果不想提供意見回饋,您可以直接關閉對話方塊。
如有任何想法、建議或指教,請透過「Support」(支援) 分頁提交。
Copyright 2022 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。