如果執行個體連線的子網路已設定 IPv6 範圍,您就可以在 Compute Engine 執行個體上設定 IPv6 位址。
如要進一步瞭解 IPv6,請參閱「IPv6 子網路範圍」。
規格
同時具備 IPv4 和 IPv6 設定的運算執行個體為雙重堆疊。除了在網路介面上設定的任何 IPv4 位址之外,還可以設定 IPv6 位址。
雙重堆疊或僅限 IPv6 的執行個體介面會分配單一
/96
範圍的 IPv6 位址;範圍內的第一個 IPv6 位址 (/128
) 會在介面上設定。執行個體上的任何介面都可以設定 IPv6 位址。如要進一步瞭解如何設定多個網路介面,請參閱「多個網路介面」。
VM 網路介面的堆疊類型會決定可連線的子網路類型:
- 僅支援 IPv4 的介面可連線至雙重堆疊和僅支援 IPv4 的子網路。
- 雙重堆疊介面可連線至雙重堆疊子網路。
- 僅限 IPv6 的介面可連線至雙重堆疊和僅限 IPv6 的子網路 (預先發布版)。
子網路的 IPv6 存取權類型設定會決定子網路是否具有內部或外部 IPv6 範圍。已連線的執行個體會繼承子網路的 IPv6 存取類型。
僅支援 Ubuntu 和 Debian 作業系統的 IPv6 專用執行個體 (預先發布版)。
使用 IPv6 位址存取執行個體
隱含的 IPv6 拒絕輸入防火牆規則可封鎖輸入連線,以保護 IPv6 位址的執行個體。如要使用 IPv6 位址存取執行個體,您必須設定優先順序較高的規則,允許傳入存取權。
如要進一步瞭解防火牆規則,請參閱「VPC 防火牆規則」和「階層式防火牆政策」。
如需虛擬私有雲防火牆規則的範例,請參閱「為常見用途設定防火牆規則」。
IPv6 位址指派
下列清單說明如何將 IPv6 位址指派給 Compute 執行個體。
使用 DHCPv6 將 IPv6 位址指派給 Compute 執行個體。中繼資料伺服器會回應執行個體的 DHCPv6 要求,並在回應中傳送已分配
/96
範圍的第一個 IPv6 位址 (/128
)。中繼資料伺服器會使用路徑廣告,將預設路徑發布至執行個體。之後,執行個體就能將這個預設路徑用於所有 IPv6 流量。
您可以連線至執行個體,並查詢中繼資料伺服器的
gateway-ipv6
項目,找出執行個體網路介面的預設路由。curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/gateway-ipv6 -H "Metadata-Flavor: Google"
如要進一步瞭解中繼資料伺服器,請參閱「查看及查詢執行個體中繼資料」。
運算執行個體會設定連結本機 IP 位址,這些位址會從
fe80::/10
範圍指派,但僅用於鄰居探索。執行個體網路介面的 MTU 設定適用於 IPv4 和 IPv6 封包,但並非所有情況都支援所有 MTU 值。詳情請參閱「傳輸單位上限」。
建立使用 IPv6 位址的執行個體
您可以建立使用 IPv4 和 IPv6 位址組合的執行個體 (雙重堆疊),也可以建立只使用 IPv6 位址的執行個體。
如要瞭解如何建立使用 IPv6 位址的 Compute Engine 執行個體,請參閱下列任務:
變更執行個體的堆疊類型
您可以變更現有 Compute Engine 執行個體的堆疊類型。堆疊類型可設為下列任一類型:
- 僅限 IPv4 (單一堆疊)
- IPv4 和 IPv6 (雙重堆疊)
如果您將堆疊類型變更為雙重堆疊,執行個體必須連線至雙重堆疊子網路。如果您需要變更執行個體連線的子網路,請停止執行個體並變更子網路。子網路更新後,您可以變更執行個體的 IP 堆疊類型。
您無法變更僅限 IPv6 的執行個體堆疊類型 (預先發布版)。
主控台
前往「VM instances」(VM 執行個體) 頁面。
按一下要指派 IPv6 位址的執行個體名稱。
在執行個體詳細資料頁面上,完成以下步驟:
- 按一下 [編輯]。
- 在「網路介面」中,展開要編輯的介面。
- 選取「IP 堆疊類型」:僅限 IPv4 (單一堆疊) 或 IPv4 和 IPv6 (雙重堆疊)。
- 按一下 [完成]。
按一下 [儲存]。
gcloud
使用 gcloud compute instances network-interfaces update
指令更新執行個體的堆疊類型
gcloud compute instances network-interfaces update INSTANCE_NAME \ --stack-type=STACK_TYPE \ --zone=ZONE
更改下列內容:
INSTANCE_NAME
:執行個體的名稱。STACK_TYPE
:執行個體的堆疊類型:IPV4_ONLY
或IPV4_IPV6
。ZONE
:執行個體部署所在的區域。
REST
對 instances.updateNetworkInterface
方法發出 PATCH
要求,更新例項的堆疊類型。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateNetworkInterface
更改下列內容:
PROJECT_ID
:包含執行個體的專案 ID。ZONE
:執行個體部署所在的區域。INSTANCE_NAME
:執行個體的名稱。
要求主體範例:
{ "stackType": "STACK_TYPE", }
將 STACK_TYPE
替換為執行個體的堆疊類型:IPV4_ONLY
或 IPV4_IPV6
。
建立含有 IPv6 位址的執行個體範本
您可以建立地區或通用執行個體範本,用於建立雙重堆疊或僅限 IPv6 (預先發布版) 執行個體。詳情請參閱「建立執行個體範本」。
您必須使用 Google Cloud CLI 或 REST 建立執行個體範本,才能建立使用 IPv6 位址的執行個體。
gcloud
如要建立區域或全域執行個體範本,請使用 gcloud compute instance-templates create
指令。如要建立地區性執行個體範本,您必須使用 --instance-template-region
旗標指定執行個體範本的地區。
以下範例會建立全域執行個體範本:
gcloud compute instance-templates create TEMPLATE_NAME \ --subnet=SUBNET \ --stack-type=STACK_TYPE
更改下列內容:
TEMPLATE_NAME
:範本名稱。SUBNET
:具有 IPv6 子網路範圍的子網路。STACK_TYPE
:堆疊類型,如果是雙重堆疊執行個體,則為 IPV4_IPV6;如果是具有外部 IPv6 位址的執行個體,則為 IPV6_ONLY。
REST
如要建立區域執行個體範本,請使用 regionInstanceTemplates.insert
方法;如要建立全域執行個體範本,請使用 instanceTemplates.insert
方法。
以下範例會建立全域執行個體範本:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
將 PROJECT_ID
替換為專案 ID。
要求主體範例:
{ "name": "INSTANCE_TEMPLATE_NAME" "properties": { "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "subnetwork": "regions/REGION/subnetworks/SUBNET", "stackType": "STACK_TYPE", }, ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "initializeParams": { "sourceImage": "IMAGE_URI" } } ] } }
更改下列內容:
INSTANCE_TEMPLATE_NAME
:執行個體範本的名稱。MACHINE_TYPE
:執行個體的機器類型。例如:c3-standard-4
。SUBNET
:具有 IPv6 子網路範圍的子網路。REGION
:子網路的地區。IMAGE_URI
:您要使用的圖片 URI。舉例來說,如果您指定
"sourceImage": "projects/debian-cloud/global/images/family/debian-12"
,Compute Engine 會使用 Debian 12 映像檔系列中最新版本的作業系統映像檔建立執行個體。
如要進一步瞭解要求參數,請參閱 instanceTemplates.insert
方法。