許多 Google Cloud 資源可擁有內部 IP 位址和外部 IP 位址。舉例來說,您可以為 Compute Engine 執行個體指派內部與外部 IP 位址。執行個體會使用這些位址與其他 Google Cloud 資源和外部系統進行通訊。
執行個體使用的每個網路介面都必須有一個主要內部 IPv4 位址。每個網路介面也可以有一或多個別名 IPv4 範圍,以及一個外部 IPv4 位址。如果執行個體連線至支援 IPv6 的子網路,每個網路介面也可以指派內部或外部 IPv6 位址。
執行個體可以使用內部 IPv4 位址,與相同虛擬私有雲 (VPC) 網路中的執行個體通訊。如果執行個體已設定 IPv6,您也可以使用執行個體的內部或外部 IPv6 位址。最佳做法是使用內部 IPv6 位址進行內部通訊。
如要與網際網路通訊,可以使用執行個體上設定的外部 IPv4 或外部 IPv6 位址。如果執行個體上未設定外部位址,則可使用 Cloud NAT 處理 IPv4 流量。
同樣地,您必須使用執行個體的外部 IPv4 或外部 IPv6,才能連線至同一個虛擬私有雲網路以外的執行個體。不過,如果網路已透過某種方式連線 (例如使用 VPC 網路對等互連),您就可以使用執行個體的內部 IP 位址。
如要瞭解如何識別執行個體的內部與外部 IP 位址,請參閱查看執行個體的網路設定。
內部 IP 位址
系統會從執行個體連線的子網路,為執行個體的網路介面指派 IP 位址。每個網路介面都有一個主要內部 IPv4 位址,該位址是從子網路的主要 IPv4 範圍指派而來。如果子網路有內部 IPv6 範圍,除了主要內部 IPv4 位址,您也可以選擇為網路介面設定主要內部 IPv6 位址。
您可以透過下列方式指派內部 IPv4 位址:
- Compute Engine 會自動從主要 IPv4 子網路範圍指派單一 IPv4 位址。
- 建立運算執行個體時,您可以指派特定內部 IPv4 位址,方法是使用保留的靜態內部 IPv4 位址,或是指定自訂的臨時內部 IPv4 位址。
您可以透過下列方式,將內部 IPv6 位址指派給連線至具有內部 IPv6 範圍的子網路的執行個體:
- 在執行個體的 vNIC 上設定內部 IPv6 位址時,Compute Engine 會自動從子網路的內部 IPv6 範圍指派單一
/96
範圍的 IPv6 位址。 - 建立執行個體時,您可以指派特定內部 IPv6 位址,方法是使用保留的靜態內部 IPv6 位址,或是指定自訂的臨時內部 IPv6 位址。
您也可以從子網路的 IPv4 或 IPv6 範圍保留靜態內部 IP 位址,然後指派給執行個體。
運算執行個體也可以擁有別名 IP 位址與範圍。如果您在執行個體上執行多項服務,可以為每項服務指派其自己唯一的 IP 位址。
內部 DNS 名稱
Google Cloud 將執行個體的完整網域名稱 (FQDN) 自動解析為執行個體的內部 IP 位址。內部 DNS 名稱僅適用於執行個體的虛擬私有雲網路。
如要進一步瞭解完整網域名稱 (FQDN),請參閱內部 DNS。
外部 IP 位址
如要與網際網路或其他 VPC 網路中的資源通訊,可以為執行個體指派外部 IPv4 或 IPv6 位址。如果防火牆規則或階層式防火牆政策允許連線,VPC 網路外的來源即可使用外部 IP 位址連線至特定資源。只有具有外部 IP 位址的資源,才能直接與虛擬私有雲網路外的資源通訊。使用外部 IP 位址與資源通訊可產生其他帳單費用。
您可以透過下列方式指派外部 IPv4 位址:
- Compute Engine 會自動從 Google 的外部 IPv4 位址範圍指派 IPv4 位址。
建立執行個體時,您可以指派特定外部 IPv4 位址,方法是使用已保留的靜態外部 IPv4 位址。
詳情請參閱「哪裡可以找到 Compute Engine IP 範圍」。
您可以透過下列方式,將外部 IPv6 位址指派給連線至具有外部 IPv6 範圍的子網路的執行個體:
- 在執行個體的 vNIC 上設定外部 IPv6 位址時,Compute Engine 會自動從子網路的外部 IPv6 範圍指派單一
/96
範圍的 IPv6 位址。 - 建立執行個體時,您可以指派特定外部 IPv6 位址,方法是使用保留的靜態外部 IPv6 位址,或是指定自訂的臨時外部 IPv6 位址。
使用外部 IP 位址的替代方案
與外部或公開 IP 位址相比,內部或私人 IP 位址有許多優點,包括:
- 減少受攻擊面。從運算執行個體中移除外部 IP 位址,可讓攻擊者更難以連上執行個體,並利用潛在的安全漏洞。
- 提高靈活度。與靜態外部 IP 位址相比,引入一個抽象層 (例如負載平衡器或 NAT 服務) 可提供更靈活可靠的服務。
下表列出運算執行個體沒有外部 IP 位址時,可存取網際網路或從網際網路存取的方式。
存取方法 | 解決方案 | 適用時機 |
---|---|---|
互動式 | 為 Identity-Aware Proxy (IAP) 設定 TCP 轉送 | 您想使用 SSH 和遠端桌面協定等管理服務連線至後端執行個體,但要求必須通過驗證和授權檢查,才能抵達目標資源。 |
擷取 | Cloud NAT 閘道 | 您希望沒有外部 IP 位址的 Compute Engine 執行個體連線至網際網路 (傳出),但虛擬私有雲網路外部的主機無法自行與您的運算執行個體建立連線 (傳入)。您可能會將這種做法用於 OS 更新或外部 API。 |
Secure Web Proxy | 您需要代表 Compute Engine 執行個體建立新的 TCP 連線,同時遵守管理員設定的安全政策,藉此將執行個體與網際網路隔離。 | |
供應 | 建立外部負載平衡器 | 您希望用戶端連線至 Google Cloud 中沒有外部 IP 位址的資源,同時保護運算執行個體免於遭到分散式阻斷服務攻擊和直接攻擊。 |
區域和全域 IP 位址
在專案中列出或說明 IP 位址時,請將位址標示為全域或區域,指出特定位址的使用方式。 Google Cloud將位址與執行個體等區域資源建立關聯時, Google Cloud 會將位址標示為區域。區域是 Google Cloud
區域,例如 us-east4
或 europe-west2
。
下列設定會使用全域 IP 位址:
- 全域內部 IP 位址: 透過端點存取 Google API 或私人服務存取權
- 全域外部 IP 位址:使用進階級別網路的外部 Proxy 網路負載平衡器和外部應用程式負載平衡器
如需建立全域 IP 位址的操作說明,請參閱「保留新的靜態外部 IP 位址」。
Compute Engine 網路服務水準協議總覽
Compute Engine 具有服務水準協議 (SLA),其中定義了網路服務層級的每月正常運作時間百分比服務等級目標 (SLO)。
建立 Compute Engine 執行個體時,系統預設會提供內部 IP 位址。此外,您也可以使用進階級 (預設) 或標準級網路,設定外部 IP 位址。您選擇的網路服務層級取決於成本和服務品質需求。每個網路服務級別都有不同的 SLO。
建立運算執行個體時,您可以設定附加至執行個體的多個 NIC,每個 NIC 可以有不同的網路設定,如下圖所示:
圖 1. 執行個體有三個 NIC,每個 NIC 處理的網路流量不同,網路服務等級也不同。
在上圖中,名為「VM appliance」的範例執行個體有三個 NIC,設定如下:
nic0
已設定內部 IP 子網路。nic1
已設定外部 IP 子網路,並使用標準網路層級。nic2
已設定外部 IP 子網路,並使用進階網路層級。
在本範例中,VM 執行個體並非記憶體最佳化 VM。視連線中斷的 NIC 而定,適用不同的服務等級目標。下表說明本範例中不同 NIC 的 SLA。
nic0
:具有內部 IP 位址的單一執行個體 VM。每月正常運作時間百分比為 99.9%。nic1
:使用標準網路層的單一執行個體 VM,並具有外部 IP 位址。這部 VM 不受任何服務等級協議保障。只有跨區域的多個執行個體,才能透過 Standard 網路層級獲得 99.9% 的保護。nic2
:具有外部 IP 位址的單一執行個體 VM,使用進階網路層級。每月正常運作時間百分比為 99.9%。如果有多個可用區的執行個體,使用 Premium 網路層級時,每月正常運作時間百分比為 99.99%。
後續步驟
- 查看執行個體的網路設定。
- 保留新的靜態外部 IP 位址。
- 將靜態外部 IP 指派給新的執行個體。
- 在建立執行個體時,選擇內部 IP 位址。
- 將臨時外部 IP 位址升級。
- 瞭解如何使用內部 DNS 名稱,透過內部虛擬私有雲網路為執行個體定址。
- 進一步瞭解 IP 位址。
- 進一步瞭解 IPv6。
- 進一步瞭解 IP 位址和負載平衡。
- 查看外部 IP 位址定價。