許多 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 位址。
內部 DNS 名稱
Google Cloud 會自動將執行個體的完整 DNS 名稱 (FQDN) 解析為執行個體的內部 IP 位址。內部 DNS 名稱僅適用於執行個體的 VPC 網路。
如要進一步瞭解完整網域名稱 (FQDN),請參閱「內部 DNS」。
外部 IP 位址
如果您需要與網際網路或其他 VPC 網路中的資源通訊,可以為執行個體指派外部 IPv4 或 IPv6 位址。如果防火牆規則或分層防火牆政策允許連線,虛擬私有雲網路外的來源就能使用特定資源的外部 IP 位址存取該資源。只有具有外部 IP 位址的資源,才能直接與虛擬私有雲網路外的資源通訊。使用外部 IP 位址與資源通訊可產生其他帳單費用。
所有運算執行個體皆可使用外部 IPv4 位址。在執行個體的 vNIC 上設定外部 IPv4 位址時,系統會從 Google 的外部 IPv4 位址範圍指派單一 IPv4 位址。詳情請參閱「哪裡可以找到 Compute Engine IP 範圍」。
外部 IPv6 位址可供連線至具有外部 IPv6 範圍的子網路的 Compute 執行個體使用。在執行個體的網路介面上設定外部 IPv6 位址時,系統會從子網路的外部 IPv6 範圍指派單一
/96
範圍的 IPv6 位址。您也可以從子網路的 IPv6 範圍保留靜態外部 IPv6 位址,並將其指派給運算執行個體。
使用外部 IP 位址的替代方案
與外部或公開 IP 位址相比,內部或私人 IP 位址有許多優點,包括:
- 減少受攻擊面。從運算執行個體中移除外部 IP 位址會讓攻擊者更難以連上執行個體並利用潛在的安全漏洞。
- 提高靈活度。與靜態外部 IP 位址相比,引入一個抽象層 (例如負載平衡器或 NAT 服務) 可提供更靈活可靠的服務。
下表列出在沒有外部 IP 位址的情況下,運算執行個體可存取或可從網際網路存取的方式。
存取方法 | 解決方案 | 適用時機 |
---|---|---|
互動式 | 為 Identity-Aware Proxy (IAP) 設定 TCP 轉送 | 您想使用 SSH 和 RDP 等管理服務連線至後端執行個體,但要求必須通過驗證和授權檢查,才能抵達目標資源。 |
擷取 | Cloud NAT 閘道 | 您希望沒有外部 IP 位址的 Compute Engine 執行個體能夠連線至網際網路 (傳出),但虛擬私有雲網路外的主機無法自行啟動與 Compute 執行個體的連線 (傳入)。您可以將這種方法用於 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 的服務水準協議。
nic0
:單一執行個體的 VM,內含內部 IP 位址。每月正常運作時間百分比為 99.9%。nic1
:單一執行個體的 VM,具有使用標準網路層級的外部 IP 位址。這個 VM 並未受到任何 SLA 的保護。只有跨區域的多個執行個體可透過標準網路層級獲得 99.9% 的保護。nic2
:單一執行個體的 VM,具有使用 Premium 網路層級的外部 IP 位址。每月正常運作時間百分比為 99.9%。如果是跨區域的多個執行個體,Premium 網路層級的每月正常運作時間百分比為 99.99%。
後續步驟
- 查看執行個體的網路設定。
- 保留新的靜態外部 IP 位址。
- 將靜態外部 IP 指派給新的執行個體。
- 在建立執行個體時,選擇內部 IP 位址。
- 將臨時外部 IP 位址升級。
- 瞭解如何使用內部 DNS 名稱,以透過內部虛擬私人雲端網路為執行個體定址。
- 進一步瞭解 IP 位址。
- 進一步瞭解 IPv6。
- 進一步瞭解 IP 位址和負載平衡。
- 查看外部 IP 位址定價。