【GCP教學】什麼是 VPC ? 簡介 VPC 概念、架構與模式設定

撰文:Syun Huang, CloudMile Technical Trainer 

網路設計對於很多人來說是一個罩門,對於剛接觸雲端技術的夥伴,可能會覺得 VPC 這個名詞聽起來很難,因此這篇文章就是要來帶各位詳細的了解 VPC 的各個細節,希望可以幫助到剛接觸雲端技術的夥伴。本文將專注於說明 GCP 上的 VPC 設計,適合有基本網路知識的讀者 。

VPC 全名叫做 Virtual Private Cloud,幫助我們串接部署在雲端上的資源,雲端上的網路就是透過 VPC 來設計。我們可以想像 VM (Virtual Machine) 就像是我們的房子,VPC 就是串接這些房子的通道,它賦予每個房子都有專屬的門牌號碼,所以每個房子之間可以互相拜訪對方。我們再舉一個貼近我們身邊的例子,一般在家裡或辦公室的網路是透過 Router 搭配 Switch 來幫我們進行網路串接的,所以我們的電腦可以拜訪到內網的其他裝置,這是我們一般熟悉的網路。而 VPC 就是串接雲上這些資源的網路,它會賦予 VM 對應的 IP address,讓我們的 VM 可以互相拜訪到對方。VM 只是在 VPC 內的其中一種資源,VPC 內不只有 VM 這個資源。

VPC 基本介紹

這邊來正式介紹 VPC,VPC 主要的功能就是將我們部署在 Google Cloud 上的資源進行串接,每一個 VPC 都是一個獨立的網路,也是資源的一種,因此它會隸屬於某個專案(Project)之內。

VPC 可以使不同的資源互相連接或隔離。簡單來說,在同一個 VPC 內都視為同一個內網環境,裡面的資源基本上可以透過內網 IP 來相互拜訪, 若是考慮到網路安全,還是可以透過防火牆的設計,來阻擋內網資源的互聯。 

先前有提到,每一個 VPC 是一個獨立的網路,假設目前有兩個 VPC,分別為 VPC1 / VPC2,兩者間是互相獨立的,若要讓 VPC1 拜訪 VPC2,只能透過外網的方式來相互訪問。 

舉例來說:同一間公司但有兩處辦公室(台北 & 新竹),在台北辦公室有一個 Router 來派發網路,新竹辦公室也有另一個 Router 來派發網路,這兩個網路如果沒有 VPN,基本上只能透過外網的方式來溝通。

  1. Virtual Machine,可以想像成我們的電腦虛擬化變成一台虛擬的機器,來讓我們使用。詳細可以參考連結
  2. 專案,在Google Cloud 要使用資源就需要開啟專案,每個資源都需要屬於某個專案,詳細可以參考連結
  3. VPN (virtual private network),透過這個技術可以幫助我們串接兩個不同的網路,讓他們可以彼此透過內網的方式來溝通,詳細可以參考連結

VPC 的架構

專案與 VPC Network 的關係

基本上一個專案裡面可以包含多個 VPC,(圖一)是包含了 5 個 VPC。Google Cloud 會預設限制每個專案內 VPC 數量上限,可以到官網查詢相關 quota 的限制。 在 Google Cloud 的名稱定義上,VPC 可以叫做 VPC、VPC Network,或 Network,這些都是相同的東西,大家可以用這幾個字來找資料。若預設的 Quota 不足,還可以跟 Google Cloud 申請更多,詳情請看連結相關操作。

圖一:圖為示意,一個專案裡面可以包含多個 VPC。
icon/enlarge

VPC Network 剖析

如果將一個 VPC Network 展開就會長以下這樣 (圖二)。這邊先跟各位說明,Google Cloud 的 VPC 是 Global 的概念,也就是它可以包含多個 Region(這點與 AWS Network 設計不同,AWS Network 是針對一個 Region 來設定的),而網段是直接配置在 Region 上,Region 裡面的資源就會領取到對應的 IP address。

圖二:Google Cloud 的 VPC 是 Global 的概念,可以包含多個 Region。
icon/enlarge

VPC Network 裡面的資源可以透過內網 IP 來互相拜訪到對方,所以不同 Region 內的資源,只要他們在同個 VPC Network 內,就可以透過內網 IP 來互相拜訪到對方。

Region 網段配置

接著我們再把一個 Region 展開來看 (圖三),我們剛剛有談到網段是配置在 Region 上,我們將這個 Region 配置 10.0.0/24 這個網段上去,那對應在 Region 內的 VM 就會領取到對應的 IP address。由於 Region 是由多個 Zone 組成的,只要在同個 Region 內,不同 Zone 內的 VM 也會領取到相同網段的 IP address。 

圖三: Region 是由多個 Zone 組成的,只要在同個 Region 內,不同 Zone 內的 VM 也會領取到相同網段的 IP address。
icon/enlarge

從圖三可以發現,圖中第一個 VM 領到的 IP 其實是 10.0.0.2 而不是 10.0.0.1,原因是第一個 IP address 是 Default geteway,所以不會派發給我們的 VM 來使用;此外 VPC 總共保留 4 個 IP address,有興趣的夥伴可以看這份文件

資源在 VPC 內部與外部的連接

剛剛有強調,Google Cloud 的 VPC 是 Global 的概念,所以當我們一個 Project 內有兩個 VPC Network 的時候(圖四),裡面的 VPC Network 是獨立的兩個網路,當 VM C 要拜訪到 VM D 的時候,它就需要透過外網 IP 的方式來互相拜訪到對方。 反之 VM A, B, C 即使在不同 Region 也還是可以透過內網的方式來互相拜訪,因為它們在同一個 VPC 內。

圖四:Project 內有兩個 VPC Network 時,裡面的 VPC Network 是獨立的兩個網路,需要透過外網 IP 的方式來互相拜訪到對方。
icon/enlarge

VPC Network 三種不同的模式設定

  • Default : 開啟 Google Cloud 的專案的時候,就會自動開啟一個 Default Network 給我們來使用,它會在每個 Region 上幫助我們配置子網路(Subnet),以及有預設的 Firewall rule。
  • Auto Mode:Default VPC Network 其實就是用 Auto mode 來設置的,它幫我們在每個Region 上配置子網,預設 Subnetwork 是 /20,最多可以到 /16。
  • Custom Mode:這個模式就是全部自己手動設定,不會在任何 Region 配置任何網段,建議的網段是 RFC 1918 的範圍,就是一般的私有網路網段。

講到這裡,課堂上同學常提出的問題是:什麼時候要使用 Auto Mode? 什麼時候該使用 Custom Mode ? 其實主要是看你的網路設計。常見的設計是這樣:

情境1:如果今天你是公司內的 IT 管理員,其實你早就把所有網段要怎麼使用都配置好規劃好,這個時候其實多半的 IT 管理員會採用 Custom mode ,因為當你要進行 VPC Network 與 Data center 或是辦公室網路進行串接的時候,就不會有網段衝突的問題。而 Auto mode 的使用時機就是,單純使用一個 VPC Network 的時候,或是希望快速開啟一個環境來測試等使用情境。

情境2:Auto mode 網段最多到 /16,如果不夠用怎麼辦? 其實解法就是將 Auto mode 轉為 Custom mode 就可以突破這個限制,但要注意的是,轉過去 Custom mode 就不能再轉回 Auto mode 這是各位要特別注意的。

VPC Network 設定

以下來實際看看,在 Google Cloud Console 進行 VPC Network 設定時,有哪些需注意的操作項目:

  1. 當建立好專案、打開 VPC Network 的畫面時,就會看到 Default Network 已經預設幫我們建立好了,對應的網段都可以在畫面上看到。
圖五: 開啟 Google Cloud 的專案的時候,系統就會自動開啟一個 Default Network 給用戶使用。
icon/enlarge
  1. 在建立一個新的 VPC Network 時,這邊就可以選擇 Custom 或是 Automatic (即為 Auto mode),如圖六。
圖六:在 Google Console 建立一個新的 VPC Network 時,可以選擇 Custom 或是 Automatic。
icon/enlarge
  1. 建立 VPC 的流程上,會請你將想要的 Firewall rule 勾選,有勾選就會套用在該 VPC network 上,反之則沒有。這邊要特別注意 Firewall rule 有預設兩條:
  • Deny-all-ingress : 預設所有的網路都不可以進來拜訪到 VPC Network。
  • Allow-all-egress : 預設所有內部的資源都可以拜訪到 VPC 外面的網路。

子網路(Subnet)網段擴張

隨著我們服務越來越多,Subnet 的 IP address 數量可能不夠了,這個時候我們就需要來進行網段擴張,不論在雲上或是地端的網路設備都可能會有這個需求。在 Google Cloud 上進行 VPC 網段擴張並不會影響到 VM 的運作,所以我們會建議一開始先配置剛好夠用就好,隨著需求的增加再將 subnet 進行擴張。

在進行 Subnet 擴張的時候有兩個注意事項:

  • 網段與網段之間不能衝突:這不論在傳統 Router 上或是 VPC 上都是一樣的。
  • Subnet 只能擴張不能縮減:因此建議一開始配置夠用就好,隨著需求再增加。

常見問題:

Q: 為什麼 Auto mode VPC network 會有/16 限制? 不是 /8 不是 /24 ? 

A: 因為 VPC Auto mode 會預設幫我們配置網段上去,這些 IP 網段都是固定的,所以避免他們衝突,才會將限制在 /16 上,詳細文件連結

修改 Subnet 方法 :

基本上只要選到該 VPC 的對應 Subnet 裡面,點選[Edit] 就可以去修改網段了。

圖八:修改 Subnet 的第一步,先點選該 VPC 的對應 Subnet。
icon/enlarge
圖九:接著,點選 [Edit] 進行編輯,就可以修改 Subnet 網段。
icon/enlarge
訂閱 CloudMile 電子報

所有 CloudMile 最新消息、產品動態、活動資訊和特別優惠,立即掌握。