arrow_back

設定 Google Cloud 高可用性 VPN

登录 加入
Quick tip: Review the prerequisites before you run the lab
Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the student account, which may cause extra charges incurred to your personal account.
欢迎加入我们的社区,一起测试和分享您的知识!
done
学习 700 多个动手实验和课程并获得相关技能徽章

設定 Google Cloud 高可用性 VPN

实验 1 小时 15 分钟 universal_currency_alt 5 积分 show_chart 高级
info 此实验可能会提供 AI 工具来支持您学习。
欢迎加入我们的社区,一起测试和分享您的知识!
done
学习 700 多个动手实验和课程并获得相关技能徽章

總覽

高可用性 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 專案和一組資源,讓您在時限內免費使用。

  1. 按一下「Start Lab」按鈕。如果研究室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。左側的「Lab Details」窗格會顯示下列項目:

    • 「Open Google Cloud console」按鈕
    • 剩餘時間
    • 必須在這個研究室中使用的臨時憑證
    • 完成這個實驗室所需的其他資訊 (如有)
  2. 點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」

    接著,實驗室會啟動相關資源並開啟另一個分頁,當中顯示「登入」頁面。

    提示:您可以在不同的視窗中並排開啟分頁。

    注意:如果頁面中顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」
  3. 如有必要,請將下方的 Username 貼到「登入」對話方塊。

    {{{user_0.username | "Username"}}}

    您也可以在「Lab Details」窗格找到 Username

  4. 點選「下一步」

  5. 複製下方的 Password,並貼到「歡迎使用」對話方塊。

    {{{user_0.password | "Password"}}}

    您也可以在「Lab Details」窗格找到 Password

  6. 點選「下一步」

    重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。 注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
  7. 按過後續的所有頁面:

    • 接受條款及細則。
    • 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
    • 請勿申請免費試用。

Google Cloud 控制台稍後會在這個分頁開啟。

注意:如要查看列出 Google Cloud 產品和服務的選單,請點選左上角的「導覽選單」,或在「搜尋」欄位輸入服務或產品名稱。

啟動 Google Cloud Shell

Google Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。

Google Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。

  1. 在 Cloud 控制台的右上方找到工具列,然後按一下「開啟 Cloud Shell」按鈕。

  2. 按一下「繼續」

佈建並連線至環境的作業需要一些時間才能完成。連線建立完成即代表已通過驗證,而且專案已設為您的「PROJECT_ID」。示例如下:

gcloud 是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵完成功能。

  • 您可以使用下列指令來列出使用中的帳戶:
gcloud auth list

輸出內容:

Credentialed accounts: - @.com (active)

輸出內容示例:

Credentialed accounts: - google1623327_student@qwiklabs.net
  • 您可以使用下列指令來列出專案 ID:
gcloud config list project

輸出內容:

[core] project =

輸出內容示例:

[core] project = qwiklabs-gcp-44776a13dea667a6 注意事項:如需 gcloud 的完整說明,請參閱 gcloud CLI 總覽指南

工作 1:設定全域虛擬私有雲環境

在這項工作中,您會設定含有兩個自訂子網路的全域虛擬私有雲,並在各個可用區中建立兩個 VM 執行個體 (會在所屬的可用區中運作)。

  1. 在 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:
  1. 使用 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}}}"
  1. 在區域 中建立子網路 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}}}
  1. 建立防火牆規則,允許網路中的所有自訂流量:
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
  1. 建立防火牆規則,允許從任何位置傳入的 SSH 和 ICMP 流量:
gcloud compute firewall-rules create vpc-demo-allow-ssh-icmp \ --network vpc-demo \ --allow tcp:22,icmp
  1. 在可用區 中建立 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
  1. 在可用區 中建立 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 環境)。

  1. 在 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:
  1. 建立名為 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" }}}
  1. 建立防火牆規則,允許網路中的所有自訂流量:
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
  1. 建立防火牆規則,允許傳送至執行個體的 SSH、遠端桌面協定、HTTP 和 ICMP 流量:
gcloud compute firewall-rules create on-prem-allow-ssh-icmp \ --network on-prem \ --allow tcp:22,icmp
  1. 在區域 中建立名為 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 通道。

  1. 使用 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" }}}
  1. on-prem 網路中建立高可用性 VPN:
gcloud compute vpn-gateways create on-prem-vpn-gw1 --network on-prem --region {{{ project_0.default_region | "REGION" }}}
  1. 查看 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
  1. 查看 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 路由器

  1. 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
  1. 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

  1. 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
  1. 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
  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
  1. 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-demoon-prem 虛擬私有雲之間的各個 VPN 通道設定 BGP 對接。高可用性 VPN 必須搭配動態轉送功能,可用性才能達到 99.99%。

  1. 為網路 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].
  1. 為網路 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.
  1. 為網路 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" }}}
  1. 為網路 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" }}}
  1. 為網路 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" }}}
  1. 為網路 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" }}}
  1. 為網路 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" }}}
  1. 為網路 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 進行私人連線,並為虛擬私有雲啟用全域轉送模式。

  1. 查看 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
  1. 查看 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 範圍傳出的流量。

  1. 允許從虛擬私有雲網路 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
  1. 允許從 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

驗證通道的狀態

  1. 使用 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
  1. 確認 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
  1. 確認 vpc-demo-tunnel1 通道正常運作:
gcloud compute vpn-tunnels describe vpc-demo-tunnel1 \ --region {{{ project_0.default_region | "REGION" }}}

通道輸出內容應會顯示詳細狀態:「Tunnel is up and running」

  1. 確認 on-prem-tunnel0 通道正常運作:
gcloud compute vpn-tunnels describe on-prem-tunnel0 \ --region {{{ project_0.default_region | "REGION" }}}

通道輸出內容應會顯示詳細狀態:「Tunnel is up and running」

  1. 確認 on-prem-tunnel1 通道正常運作:
gcloud compute vpn-tunnels describe on-prem-tunnel1 \ --region {{{ project_0.default_region | "REGION" }}}

通道輸出內容應會顯示詳細狀態:「Tunnel is up and running」

確認是否能透過 VPN 進行私人連線

  1. 前往 Compute Engine,並注意在當中建立 on-prem-instance1 的可用區。

  2. 開啟新的 Cloud Shell 分頁並輸入下列內容,以透過 SSH 連線至執行個體 on-prem-instance1:將 <zone_name> 替換為在當中建立 on-prem-instance1 的可用區。

    gcloud compute ssh on-prem-instance1 --zone zone_name
  3. 輸入「y」確認要繼續操作。

  4. 按下 Enter 鍵兩次,略過建立密碼的步驟。

  5. 從網路 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 路由器就能偵測到其他區域的路徑,也能發出路徑通告。

  1. 開啟新的 Cloud Shell 分頁,並將 bgp-routing modevpc-demo 更新為 GLOBAL
gcloud compute networks update vpc-demo --bgp-routing-mode GLOBAL
  1. 驗證變更:
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
  1. 您有一個 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 通道,並驗證通道的高可用性設定是否成功。

  1. 開啟新的 Cloud Shell 分頁。

  2. 將網路 vpc-demo 中的 tunnel0 關閉:

gcloud compute vpn-tunnels delete vpc-demo-tunnel0 --region {{{ project_0.default_region | "REGION" }}}

系統詢問是否要刪除時,請回覆「y」。接著,網路 on-prem 中相對應的 tunnel0 就會停止運作。

  1. 驗證通道是否已停止運作:
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
  1. 切換至先前的 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 對接

  • 於各個 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 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

Before you begin

  1. Labs create a Google Cloud project and resources for a fixed time
  2. Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
  3. On the top left of your screen, click Start lab to begin

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

One lab at a time

Confirm to end all existing labs and start this one

Use private browsing to run the lab

Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.