為執行個體和執行個體範本設定 IPv6 位址


如果執行個體連線的子網路已設定 IPv6 範圍,您就可以在 Compute Engine 執行個體上設定 IPv6 位址。

如要進一步瞭解 IPv6,請參閱「IPv6 子網路範圍」。

規格

  • 同時具備 IPv4 和 IPv6 設定的運算執行個體為雙重堆疊。除了在網路介面上設定的任何 IPv4 位址之外,還可以設定 IPv6 位址。

  • 雙重堆疊或僅限 IPv6 的執行個體介面會分配單一 /96 範圍的 IPv6 位址;範圍內的第一個 IPv6 位址 (/128) 會在介面上設定。

  • 執行個體上的任何介面都可以設定 IPv6 位址。如要進一步瞭解如何設定多個網路介面,請參閱「多個網路介面」。

  • VM 網路介面的堆疊類型會決定可連線的子網路類型:

    • 僅支援 IPv4 的介面可連線至雙重堆疊和僅支援 IPv4 的子網路。
    • 雙重堆疊介面可連線至雙重堆疊子網路。
    • 僅限 IPv6 的介面可連線至雙重堆疊和僅限 IPv6 的子網路 (預先發布版)。
  • 如要在網路介面上設定 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 的執行個體堆疊類型 (預先發布版)。

主控台

  1. 前往「VM instances」(VM 執行個體) 頁面。

    前往 VM 執行個體

  2. 按一下要指派 IPv6 位址的執行個體名稱。

  3. 在執行個體詳細資料頁面上,完成以下步驟:

    1. 按一下 [編輯]
    2. 在「網路介面」中,展開要編輯的介面。
    3. 選取「IP 堆疊類型」僅限 IPv4 (單一堆疊)IPv4 和 IPv6 (雙重堆疊)
    4. 按一下 [完成]
  4. 按一下 [儲存]

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_ONLYIPV4_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_ONLYIPV4_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 方法