用 Terraform, Google Cloud VPN 架設 Hybird Cloud
tags: gcp
, cloud-vpn
, shared-vpc
, terraform
為了更了解地端、雲端網路如何連接,用了 GCP 來做一整套簡單的實驗。
架構說明
雲端
為了模擬比較複雜的組織架構,雲端使用了 Shared VPC 的架構,有以下幾個優點:
- 減少 VPC 數量,較容易管理
- 多個子專案(service project)可以共享同一個主專案(host project)定義的網路
- 子專案可以各自分開 billing
- 劃分網路權限,子專案只能使用主專案定義的網路
要使用 Shared VPC 架構有幾個前提:
- 須要有 GCP Organization
- 主專案須設定為 shared VPC host
- 子專案須 attach 到主專案
雲端的 VPC Gateway 的實作方式採用 GCP 的 Classic VPN,也稱為 route-based VPN,採用事先定義好的靜態路由規則(static routes) 來做 routing。
GCP 還有另一套 VPN 叫 HA VPN,背後是使用 BGP 來做動態路由設定,由於架構較複雜,沒在此實驗採用。
要使用 GCP 的 Classic VPN 有以下前提:
- 兩端只能走 IPsec 協議
- 兩端都必須有 public IPv4 位址
在兩端 peering 上也要避免 IP 位址重疊。另外,若要做到高可用,可以建立多個 VPN gateway 來達成。
地端
為了模擬地端環境,另開一個 GCP 專案,也會設定一個獨立的 VPC。
地端採用一台 VM 實例來扮演 VPC Gateway,使用的工具是 strongSwan