VPC 網路拓撲簡介
在 Google Cloud 中,虛擬私有雲 (VPC) 是您基礎設施的基石。與傳統網路不同,GCP 的 VPC 是全球性資源,而子網路 (Subnet) 是區域性的。這種獨特的架構允許全球範圍內的無縫通信,而無需在同一個 VPC 內的不同區域之間配置複雜的 VPN。
一位 Professional Cloud Architect 必須能夠設計複雜的拓撲,以平衡隔離性、安全性和連通性。
物理網路的虛擬版本(如資料中心網路),在 Google Cloud 內部實施。它為 Compute Engine VM 實例、GKE 叢集和 App Engine 靈活環境提供網路功能。參考:https://cloud.google.com/vpc/docs/vpc
白話文解釋 VPC 網路拓撲
網路概念可能很抽象,讓我們使用一些現實世界的類比。
類比 1 — 多層辦公大樓 (VPC 與子網路)
將 VPC 想像成一棟大型辦公大樓。大樓有一個安全的外圍門禁(VPC 防火牆)。大樓內部,每一層樓就是一個子網路 (區域)。位於 2 樓(愛荷華州)的人可以透過內部樓梯(Google 的全球光纖)直接與 10 樓(比利時)的人交談,而無需走到大樓外面。每層樓的每個房間就是一個 VM 實例,擁有自己的房門鎖(內部防火牆規則)。
類比 2 — 共享校園 (共享 VPC)
想像一個大學校園,其中一個中央部門(宿主專案 Host Project)負責管理道路、電力和安保。其他各個系所(數學系、科學系、歷史系)擁有自己的建築物(服務專案 Service Projects),但使用中央基礎設施。這就是 共享 VPC。它允許集中管理網路,同時讓各個團隊管理自己的應用程式。
類比 3 — 秘密隧道 (Private Service Connect)
Private Service Connect 就像是兩棟屬於不同公司的建築物之間的秘密安全隧道。您不想走在公共人行道(網際網路)上去合作夥伴的辦公室。相反,您建立了一條直接連接您地下室與他們地下室的隧道。它安全、私密,且不會暴露在公眾視野中。
在 PCA 考試中,如果場景要求「跨多個專案進行集中網路管理」,答案幾乎總是 共享 VPC (Shared VPC)。參考:https://cloud.google.com/vpc/docs/shared-vpc
建立與管理 VPC
GCP 提供兩種類型的 VPC 網路:
- 自動模式 (Auto mode): 在每個區域自動建立具有預定義 IP 範圍的子網路。生產環境應避免使用,因為這可能導致 IP 衝突。
- 自定義模式 (Custom mode): 您手動定義子網路及其 IP 範圍。這是生產環境中架構師首選的方法。
任何涉及混合連線 (Cloud VPN / Interconnect) 或未來會做 VPC Peering 的 PCA 場景,都必須選擇 Custom mode VPC。Auto mode 子網路使用固定的 10.128.0.0/9 範圍,幾乎一定會跟地端 CIDR 或被互連的 VPC 衝突 — 而互連的 VPC 又不能有重疊的 IP 範圍。Custom mode 才能讓你按 IP 規劃分配不重疊的範圍。
自定義子網路配置
子網路是區域性的。關鍵考慮因素:
- 次要 IP 範圍 (Secondary IP Ranges): 用於 GKE(Pod 和 Service)。
- 可擴展子網路: 您可以在不停機的情況下增加子網路的大小(例如從 /24 擴展到 /22)。
- 內部 IPv6: GCP 支持雙棧 (IPv4/IPv6) 網路。
防火牆規則管理
GCP 防火牆是具狀態 (Stateful) 且分散式的。
- 入站 (Ingress) vs. 出站 (Egress): 控制進入或流出的流量。
- 優先級: 數字越小優先級越高 (0-65535)。
- 目標 (Targets): 使用網路標記 (Network Tags) 或服務帳戶 (Service Accounts) 進行動態規則應用(PCA 建議使用服務帳戶,因為更安全)。
- 分層防火牆政策 (Hierarchical Firewall Policies): 在組織或資料夾級別應用規則,以強制執行全球安全標準。
配置私有 Google 存取 (Private Google Access)
這允許僅擁有內部 IP 位址的 VM 存取 Google API 和服務(如 Cloud Storage、BigQuery),而無需外部 IP 或 NAT 閘道。
- 要求: 子網路必須啟用「私有 Google 存取」。
- 優點: 提高安全性並降低輸出 (Egress) 成本。
用於故障排除的 VPC 流日誌 (VPC Flow Logs)
流日誌記錄從 VM 實例發送和接收的網路流樣本。
- 使用案例: 網路監控、取證、即時安全分析和費用優化。
- 整合: 可導出至 Cloud Logging、BigQuery 或 Pub/Sub。
網路拓撲可視化 (Network Topology)
網路拓撲是網路情報中心 (Intelligence Center) 中的一項工具,它提供 VPC 網路的圖形視圖,包括與地端和其他雲端的連通性。它有助於可視化流量模式並識別瓶頸。
用於安全的封包鏡像 (Packet Mirroring)
封包鏡像從指定來源(VM、GKE 節點)複製流量,並將其發送到目的地(IDS/IPS、封包收集器)進行檢查。
- 重點: 它會擷取所有流量(無論是被防火牆允許還是拒絕的)。
配置 Private Service Connect (PSC)
PSC 允許您在 VPC 內私密地使用服務(Google API 或第三方服務)。
- 端點 (Endpoints): 您 VPC 中的一個私有 IP 位址,指向某個服務。
- 後端 (Backends): 允許您發布自己的服務供他人使用。
管理內部與外部 IP 位址
- 靜態 (Static) vs. 臨時 (Ephemeral): 對於需要一致位址的資源(如 NAT 閘道)使用靜態 IP。
- 外部 IP: 儘量減少使用。對於需要訪問網際網路但不需要公網 IP 的 VM,請使用 Cloud NAT。
VPC 互連配置 (VPC Peering)
VPC 互連連接兩個 VPC 網路,使資源能使用內部 IP 位址進行通訊。
- 無遞移性 (No Transitive Peering): 如果 VPC A 與 B 互連,且 B 與 C 互連,A 不能透過 B 與 C 通訊。
- IP 重疊: 互連的 VPC 不能有重疊的 IP 範圍。
許多人會用 VPC Peering 來蓋「hub-and-spoke」拓撲,讓多個 spoke VPC 透過 hub VPC 存取共用服務。這條路會失敗,因為 peering 是非遞移的 — spoke 跟 hub 互連後,spoke 之間仍然不能互通,也無法走到 hub 再經由另一條 peering 連到的服務。要做真正的 hub-and-spoke 內部流量路由,請用 Network Connectivity Center (NCC) 搭配 VPC spoke,或把工作負載整併到 Shared VPC Host Project 之下。
當場景描述單一組織要集中管理網路與安全、但讓應用程式團隊各自擁有自己的專案時,答案是 Shared VPC(Host Project 持有 VPC 與子網路,Service Project 掛上去)— 不是 VPC Peering。Peering 只有在被連接的 VPC 屬於不同管理團隊或不同組織時才是正解,這跟 FAQ Q1 的說法一致。
防火牆規則的優先級是整數 0–65535,數字越小優先級越高。在優先級 65535 還有兩條隱含的預設規則:一條 implied allow-egress 出站允許全部、一條 implied deny-ingress 入站全部拒絕。你自己建立的規則必須用小於 65535 的優先級才能覆蓋預設值;而且 target 用 Service Account 比用 Network Tags 更安全,因為標記任何擁有 VM 編輯權限的人都改得動。
FAQ — VPC 網路拓撲
Q1. 何時應該使用 VPC 互連 (Peering) 而非共享 VPC (Shared VPC)?
當您需要連接由不同管理團隊或組織擁有的網路時,使用 VPC 互連。當您在單一組織內希望集中管理網路,同時去中心化管理應用程式時,使用 共享 VPC。
Q2. VPC 防火牆規則是應用於整個 VPC 還是單個 VM?
防火牆規則在 VPC 級別定義,但會分發到每個 VM 實例的虛擬網路介面 (vNIC)。只有與 VM 的標記或服務帳戶匹配的規則才會生效。
Q3. Cloud NAT 和私有 Google 存取有什麼區別?
私有 Google 存取僅用於存取 Google 服務(如 GCS)。Cloud NAT 用於訪問 公用網際網路(如 OS 更新或外部 API)。
Q4. 為什麼在防火牆規則中應該使用服務帳戶而非網路標記?
服務帳戶提供基於身分的安全。標記只是字符串,任何擁有 VM 編輯權限的人都可以更改。在大型環境中,服務帳戶更強健且不易出錯。
Q5. 我可以將專案 A 的 VPC 與專案 B 的 VPC 互連嗎?
可以,只要 IP 範圍不重疊,VPC 互連可以跨不同的專案,甚至跨不同的組織。
最終架構師提示
在 PCA 考試中,網路設計應始終以零信任 (Zero Trust) 和最小權限 (Least Privilege) 為目標。避免使用「允許所有 (Allow All)」規則。即使您的網路在技術上是安全的,也要使用 VPC Service Controls 為敏感數據增加額外的保護層。