建立使用 IPv6 位址的執行個體

根據預設,Compute Engine 執行個體會使用 IPv4 位址建立。您可以選擇建立使用 IPv6 位址的運算執行個體。同時具備 IPv4 和 IPv6 設定的運算執行個體稱為「雙重堆疊」執行個體。IPv6 位址是網路介面上設定的任何 IPv4 位址以外的位址。

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

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

執行個體網路介面的堆疊類型會決定可連線的子網路類型:

  • 僅支援 IPv4 的網路介面可以連線至雙重堆疊和僅支援 IPv4 的子網路。
  • 雙重堆疊網路介面可連線至雙重堆疊子網路。
  • 僅支援 IPv6 的網路介面可以連線至雙重堆疊和僅支援 IPv6 的子網路。

此外,子網路的 IPv6 存取權類型設定會決定子網路是否具有內部或外部 IPv6 範圍。連線的執行個體會從子網路繼承 IPv6 存取權類型。

您可以建立執行個體,並讓Google Cloud 自動指派 IPv6 位址,也可以指定 IPv6 位址。您可以指定靜態 IPv6 位址或自訂臨時 IPv6 位址。

如要進一步瞭解 IPv6 位址,請參閱「IPv6 總覽」。

限制

  • 只有 Debian、Red Hat 和 Ubuntu OS 映像檔支援僅限 IPv6 的執行個體。

事前準備

  • 您必須先建立網路和子網路,才能建立運算執行個體。
  • 如果尚未設定驗證,請先完成設定。 驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:

    選取這個頁面上的分頁,瞭解如何使用範例:

    控制台

    使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,無須設定驗證。

    gcloud

    1. 安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:

      gcloud init

      若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

  • 設定預設地區和區域
  • REST

    如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

      安裝 Google Cloud CLI。

      若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

    詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。

必要的角色

如要取得建立含 IPv6 位址執行個體所需的權限,請要求管理員授予您專案的 Compute 執行個體管理員 (v1) (roles/compute.instanceAdmin.v1) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

建立雙堆疊執行個體

如要建立具有內部 IPv4 位址和外部 IPv6 位址的執行個體,請將運算執行個體連線至雙重堆疊子網路

如果您使用 Shared VPC,並想建立連線至共用子網路的雙重堆疊執行個體,請參閱 Shared VPC 說明文件中的「建立執行個體」。

控制台

  1. 前往「Create an instance」(建立執行個體) 頁面。

    前往「建立執行個體」

  2. 如果出現提示,請選取專案並按一下「繼續」。「建立執行個體」頁面隨即顯示,並顯示「機器設定」窗格。

  3. 在「機器設定」窗格中,執行下列操作:

    1. 在「Name」(名稱) 欄位中,指定執行個體的名稱。詳情請參閱「命名資源」。
    2. 選用:在「Zone」(區域) 欄位中,選取這個執行個體的區域。 在含有已設定 IPv6 範圍的子網路的區域中,選擇一個可用區。
    3. 選取執行個體的機器系列。 Google Cloud 主控台隨即會顯示所選機器家族適用的機器系列。可用的機器家族選項如下:

      • 一般用途
      • 運算最佳化
      • 記憶體最佳化
      • 儲存空間最佳化
      • GPU

    4. 在「Series」(系列) 欄中,選取執行個體的機器系列。

    5. 在「Machine type」(機型) 部分中,選取執行個體的機型。

  4. 在導覽選單中,按一下「Networking」(網路)。在隨即顯示的「Networking」(網路) 窗格中,執行下列操作:

    1. 在「Network interfaces」(網路介面) 區段中,按一下網路介面即可展開並編輯。

    2. 在「Network」(網路) 和「Subnetwork」(子網路) 中,選取已設定 IPv6 範圍的網路和子網路。

    3. 在「IP stack type」(IP 堆疊類型),選取「IPv4 and IPv6 (dual-stack)」(IPv4 和 IPv6 (雙重堆疊))

    4. 在「主要內部 IPv4 位址」中,選取下列其中一個選項:

      • 如要指派新的臨時 IPv4 內部位址,請選擇「臨時」
      • 如要指派現有的靜態外部 IP 位址,請從清單中選擇預留的 IPv4 位址名稱。
      • 如要建立及指派新的靜態內部 IPv4 位址,請選擇「保留靜態內部 IPv4 位址」
    5. 選用:在「外部 IPv4 位址」部分,選取下列其中一個選項:

      • 如要指派臨時外部 IPv4 位址,請選擇「臨時」
      • 如要建立沒有外部 IPv4 位址的執行個體,請選擇「無」
      • 如要指派現有的靜態外部 IP 位址,請從清單中選擇預留的 IPv4 位址名稱。
      • 如要建立及指派新的靜態外部 IPv4 位址,請選擇「保留靜態外部 IPv4 位址」
    6. 選用:如要設定外部 IPv6 位址,請在「外部 IPv6 位址」部分選取下列其中一個選項:

      • 如要自動指派新的臨時外部 IPv6 位址,請選擇「臨時 (自動)」
      • 如要手動指定新的臨時外部 IPv6 位址,請選擇「臨時 (自訂)」
      • 如要指派現有的靜態外部 IP 位址,請從清單中選擇已保留的 IPv6 位址名稱。
      • 如要建立及指派新的靜態外部 IPv6 位址,請選擇「保留靜態外部 IPv6 位址」
    7. 如要完成修改網路介面,請按一下「Done」(完成)

    8. 選用:如要設定其他網路介面,請按一下「新增網路介面」,然後重複「網路」窗格的上述步驟。

  5. 選用:指定其他設定選項。詳情請參閱「建立執行個體時的設定選項」。

  6. 如要建立並啟動執行個體,請按一下「建立」

gcloud

使用 gcloud compute instances create 指令建立執行個體。如要指定自訂 IPv6 位址,請加入 internal-ipv6-addressexternal-ipv6-address 標記。如未指定, Google Cloud會自動為執行個體指派臨時 IPv6 位址。

gcloud compute instances create INSTANCE_NAME \
    --subnet=SUBNET_NAME \
    --zone=ZONE \
    --stack-type=IPV4_IPV6

更改下列內容:

  • INSTANCE_NAME:執行個體的名稱
  • SUBNET_NAME:要將執行個體連線至的子網路;子網路必須具有 IPv6 子網路範圍
  • ZONE:要部署執行個體的可用區

REST

  1. 選取圖片。 記下映像檔或映像檔系列的名稱,以及包含映像檔的專案名稱。
  2. 使用 instances.insert 方法,從映像檔系列或特定版本的 OS 映像檔建立執行個體。如要指定自訂 IPv6 位址,請加入 networkInterfaces[].ipv6AddressnetworkInterfaces[].ipv6AccessConfigs[].externalIpv6 欄位。如未指定, Google Cloud會自動為執行個體指派臨時 IPv6 位址。

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_ID:要在其中建立執行個體的專案 ID。
    • ZONE:要在哪個可用區建立執行個體。
    • MACHINE_TYPE_ZONE:如果使用自訂機型,請指定包含自訂機型的可用區,用於新執行個體;否則,請指定要在其中建立執行個體的可用區。
    • MACHINE_TYPE:機器類型,預先定義自訂,適用於新執行個體,例如 n4-standard-2
    • INSTANCE_NAME:新執行個體的名稱
    • REGION:包含子網路的區域
    • SUBNET:雙堆疊子網路
    • IMAGE_PROJECT:選用:包含圖片的映像檔專案
    • IMAGE:選用:指定下列其中一項:

      • 特定版本的 OS 映像檔,例如 debian-12-bookworm-v20241009
      • 映像檔系列,格式必須為 family/IMAGE_FAMILY。這樣一來,系統就會使用未淘汰的最新作業系統映像檔建立執行個體。舉例來說,如果您指定 family/debian-12,Compute Engine 會使用 Debian 12 映像檔系列中的最新版 OS 映像檔建立執行個體。如要進一步瞭解如何使用映像檔系列,請參閱「映像檔系列最佳做法」。

    HTTP 方法和網址:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

    JSON 要求主體:

    {
        "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
        "name": "INSTANCE_NAME",
        "networkInterfaces": [
          {
            "subnetwork": "regions/REGION/subnetworks/SUBNET",
            "stackType": "IPV4_IPV6"
          }
        ],
        "disks": [
          {
            "initializeParams": {
              "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
            },
            "boot": true
          }
        ],
    }
    

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

    {
      "kind": "compute#operation",
      "id": "9216044482154695709",
      "name": "operation-1739207409646-62dccc7d7bc58-d1350b42-64fdb7f7",
      "zone": "https://www.googleapis.com/compute/{api_version}/projects/`PROJECT_ID`/zones/`ZONE`",
      "operationType": "insert",
      "targetLink": "https://www.googleapis.com/compute/{api_version}/projects/`PROJECT_ID`/zones/`ZONE`/instances/`INSTANCE_NAME`",
      "targetId": "2679381553616227357",
      "status": "RUNNING",
      "user": "USER_ID",
      "progress": 0,
      "insertTime": "2025-02-10T09:10:10.551-08:00",
      "startTime": "2025-02-10T09:10:10.551-08:00",
      "selfLink": "https://www.googleapis.com/compute/{api_version}/projects/`PROJECT_ID`/zones/`ZONE`/operations/operation-1565289606387-58f9f62f5989c-e582f586-6d22f38"
     "kind": "compute#operation"
    }
    

建立僅限 IPv6 的執行個體

如要建立僅限 IPv6 的執行個體,請按照本節步驟操作。

如果 Compute Engine 執行個體只有一個網路介面,執行個體可以有內部或外部 IPv6 位址,具體取決於介面所連網路的存取權類型。您必須建立自訂模式虛擬私有雲 (VPC) 網路,並使用具有 IPv6 位址範圍的子網路。

如要建立同時使用內部和外部 IPv6 位址的多重 NIC VM 執行個體,請先建立下列項目:

  • 內部網路和子網路:啟用 IPv6 ULA 的自訂模式虛擬私有雲網路、具有 IPv6 位址範圍的子網路,以及設為 internal 的存取權類型。
  • 外部網路和子網路:第二個自訂模式虛擬私有雲網路、第二個具有 IPv6 位址範圍的子網路,以及設為 external 的存取權類型。

建立執行個體時,請設定兩個網路介面,一個連至具有內部 IPv6 位址範圍的子網路,另一個則連至具有外部位址範圍的子網路。

如果您使用 Shared VPC,並想建立連線至共用子網路的僅限 IPv6 執行個體,請參閱 Shared VPC 說明文件中的「建立執行個體」。

控制台

  1. 前往「Create an instance」(建立執行個體) 頁面。

    前往「建立執行個體」

  2. 如果出現提示,請選取專案並按一下「繼續」。「建立執行個體」頁面隨即顯示,並顯示「機器設定」窗格。

  3. 在「機器設定」窗格中,執行下列操作:

    1. 在「Name」(名稱) 欄位中,指定執行個體的名稱。詳情請參閱「命名資源」。
    2. 選用:在「Zone」(區域) 欄位中,選取這個執行個體的區域。在包含已設定 IPv6 範圍的子網路的區域中,選擇一個可用區。
    3. 選取執行個體的機器系列。Google Cloud 控制台隨即會顯示所選機器家族適用的機器系列。可用的機器系列選項如下:

      • 一般用途
      • 運算最佳化
      • 記憶體最佳化
      • 儲存空間最佳化
      • GPU

    4. 在「Series」(系列) 欄中,選取執行個體的機器系列。

    5. 在「Machine type」(機型) 部分中,選取執行個體的機型。

  4. 在導覽選單中,按一下「Networking」(網路)。在隨即顯示的「Networking」(網路) 窗格中,執行下列操作:

    1. 在「Network interfaces」(網路介面) 區段中,按一下網路介面即可展開並編輯。

    2. 在「Network」(網路) 和「Subnetwork」(子網路) 中,選取已設定 IPv6 範圍的網路和子網路。

      子網路的 IPv6 存取權類型會決定執行個體接收內部 IPv6 位址或外部 IPv6 位址。如要指派內部 IPv6 位址,您必須選取使用「Configure a ULA internal IPv6 range for this VPC Network」選項建立的網路。否則只能設定外部 IPv6 位址。

    3. 在「IP stack type」(IP 堆疊類型),選取「IPv6 (single stack)」(IPv6 (單一堆疊))

    4. 如果您選取的子網路存取權類型為 Internal,請在「主要內部 IPv6 位址」中選取下列其中一個選項:

      • 如要自動指派新的臨時內部 IPv6 位址,請選擇「臨時 (自動)」
      • 如要手動指定新的臨時內部 IPv6 位址,請選擇「臨時 (自訂)」
      • 如要指派現有的靜態內部 IP 位址,請從清單中選擇預留的 IPv6 位址名稱。
      • 如要建立及指派新的靜態內部 IPv6 位址,請選擇「預留靜態內部 IPv6 位址」
    5. 如果您選取的子網路存取權類型為 External,請在「外部 IPv6 位址」部分選取下列其中一個選項:

      • 如要自動指派新的臨時外部 IPv6 位址,請選擇「臨時 (自動)」
      • 如要手動指定新的臨時外部 IPv6 位址,請選擇「臨時 (自訂)」
      • 如要指派現有的靜態外部 IP 位址,請從清單中選擇已保留的 IPv6 位址名稱。
      • 如要建立及指派新的靜態外部 IPv6 位址,請選擇「保留靜態外部 IPv6 位址」
    6. 如要完成修改網路介面,請按一下「Done」(完成)

    7. 選用:如要新增其他 IPv6 位址,請執行下列操作:

      1. 選取「新增網路介面」
      2. 針對「網路」窗格,重複執行這項工作中的先前步驟。
  5. 選用:指定其他設定選項。詳情請參閱「建立執行個體時的設定選項」。

  6. 如要建立並啟動執行個體,請按一下「建立」

gcloud

使用 gcloud compute instances create 指令建立執行個體。如要同時指派內部和外部 IPv6 位址,您必須建立至少有兩個網路介面的執行個體。如要指定自訂 IPv6 位址,請加入 internal-ipv6-addressexternal-ipv6-address 標記。如未指定, Google Cloud會自動為執行個體指派臨時 IPv6 位址。

gcloud compute instances create INSTANCE_NAME \
    --zone ZONE \
    --machine-type=MACHINE_TYPE \
    --create-disk=boot=yes,image='projects/IMAGE_PROJECT/global/images/IMAGE',size=SIZE \
    --network-interface=subnet=SUBNET_INTERNAL_NAME,stack-type=IPV6_ONLY \
    --network-interface=subnet=SUBNET_EXTERNAL_NAME,stack-type=IPV6_ONLY,ipv6-network-tier=PREMIUM

更改下列內容:

  • INSTANCE_NAME:執行個體的名稱
  • ZONE:建立執行個體的可用區,例如 europe-west1-b。執行個體的地區是從區域推測得出。
  • MACHINE_TYPE:選用:新執行個體的機器類型,可以是預先定義自訂。例如:n4-standard-2
  • IMAGE_PROJECT:選用:包含圖片的映像檔專案
  • IMAGE:選用:指定下列其中一項:
    • 特定版本的 OS 映像檔,例如 debian-12-bookworm-v202410095
    • 映像檔系列,格式必須為 family/IMAGE_FAMILY。這樣一來,系統會使用未淘汰的最新作業系統映像檔建立執行個體。舉例來說,如果您指定 family/debian-12,Compute Engine 會使用 Debian 12 映像檔系列中的最新版 OS 映像檔建立執行個體。如要進一步瞭解如何使用映像檔系列,請參閱「映像檔系列最佳做法」。
  • SIZE:(選用) 新磁碟的大小。值必須是整數。預設測量單位為 GiB。
  • SUBNET_INTERNAL_NAME:為內部 IP 位址設定的子網路名稱,供執行個體使用。
  • SUBNET_EXTERNAL_NAME:為執行個體設定外部 IP 位址的子網路名稱。

REST

  1. 選取圖片。 記下映像檔或映像檔系列的名稱,以及包含映像檔的專案名稱。
  2. 使用 instances.insert 方法,從映像檔系列或特定版本的 OS 映像檔建立執行個體。如要指定自訂 IPv6 位址,請加入 networkInterfaces[].ipv6AddressnetworkInterfaces[].ipv6AccessConfigs[].externalIpv6 欄位。如未指定, Google Cloud會自動為執行個體指派臨時 IPv6 位址。

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_ID:要在其中建立執行個體的專案 ID。
    • ZONE:要在哪個可用區建立執行個體。
    • MACHINE_TYPE_ZONE:如果使用自訂機器類型,請指定包含自訂機器類型的區域,用於新執行個體;否則,請指定要建立執行個體的區域。
    • MACHINE_TYPE:新執行個體的機器類型,預先定義自訂,例如 n4-standard-2
    • INSTANCE_NAME:新執行個體的名稱
    • REGION:包含子網路的區域
    • SUBNET_INTERNAL:僅限 IPv6 的子網路。這個子網路的網路必須具有 INTERNAL 存取權類型,並啟用 IPv6 ULA。
    • SUBNET_EXTERNAL:僅限 IPv6 的子網路。這個子網路的網路存取類型必須為 INTERNAL
    • IMAGE_PROJECT:選用:包含圖片的映像檔專案
    • IMAGE:選用:指定下列其中一項:

      • 特定版本的 OS 映像檔,例如 debian-12-bookworm-v20241009
      • 映像檔系列,格式必須為 family/IMAGE_FAMILY。這樣一來,系統就會使用未淘汰的最新作業系統映像檔建立執行個體。舉例來說,如果您指定 family/debian-12,Compute Engine 會使用 Debian 12 映像檔系列中的最新版 OS 映像檔建立執行個體。如要進一步瞭解如何使用映像檔系列,請參閱「映像檔系列最佳做法」。

    HTTP 方法和網址:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

    JSON 要求主體:

    {
        "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
        "name": "INSTANCE_NAME",
        "networkInterfaces": [
          {
            "subnetwork": "regions/REGION/subnetworks/SUBNET_INTERNAL",
            "stackType": "IPV6_ONLY"
          },
          {
            "subnetwork": "regions/REGION/subnetworks/SUBNET_EXTERNAL",
            "stackType": "IPV6_ONLY"
          }
        ],
        "disks": [
          {
            "initializeParams": {
              "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
    
            },
            "boot": true
          }
        ]
    }
    

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

    {
      "kind": "compute#operation",
      "id": "9216044482154695709",
      "name": "operation-1739207409646-62dccc7d7bc58-d1350b42-64fdb7f7",
      "zone": "https://www.googleapis.com/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`",
      "operationType": "insert",
      "targetLink": "https://www.googleapis.com/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`/instances/`INSTANCE_NAME`",
      "targetId": "2679381553616227357",
      "status": "RUNNING",
      "user": "USER_ID",
      "progress": 0,
      "insertTime": "2025-02-10T09:10:10.551-08:00",
      "startTime": "2025-02-10T09:10:10.551-08:00",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`/operations/operation-1565289606387-58f9f62f5989c-e582f586-6d22f38"
     "kind": "compute#operation"
    }
    

後續步驟