使用 DNS64 和 NAT64 設定僅限 IPv6 的子網路和執行個體

本頁面說明如何建立僅支援 IPv6 的子網路和執行個體,然後設定 DNS64 和 NAT64,以便從僅支援 IPv6 的執行個體存取 IPv4 目的地。

如要瞭解 Google Cloud中 IPv6 到 IPv4 的連線,請參閱「DNS64 和 NAT64,適用於 6to4 連線」。

事前準備

本頁的操作說明假設您已具備自訂模式的虛擬私有雲 (VPC) 網路,因此可以建立具有 IPv6 位址範圍的子網路。詳情請參閱「建立含有僅限 IPv6 子網路的自訂模式虛擬私有雲網路」。

如要建立支援具有內部 IPv6 位址子網路的虛擬私有雲網路,您必須在建立網路時設定 ULA 內部 IPv6 範圍。如果您有現有網路,可以為該網路指派內部 IPv6 範圍

建立僅限 IPv6 的子網路和執行個體

本節說明如何建立僅限 IPv6 的子網路和執行個體。如果您已有僅支援 IPv6 的子網路和執行個體,可以繼續設定 DNS64 和 NAT64

建立僅限 IPv6 的子網路

您可以建立僅支援 IPv6 的子網路,並啟用外部或內部 IPv6 位址

如要建立僅限 IPv6 的子網路,請按照下列步驟操作。

主控台

  1. 在 Google Cloud 控制台中,前往「VPC networks」(虛擬私有雲網路) 頁面。

    前往「VPC networks」(虛擬私有雲網路)

  2. 如要查看「虛擬私有雲網路詳細資料」頁面,請按一下虛擬私有雲網路的名稱。

  3. 在「子網路」分頁中,按一下「新增子網路」。 在顯示的面板中:

    1. 提供名稱。
    2. 請選取區域。
    3. 在「IP 堆疊類型」部分,選取「IPv6 (單一堆疊)」
    4. 選取 IPv6 存取權類型:「內部」或「外部」

      如要將存取權類型設為「內部」,但「內部」選項無法使用,請確認網路已指派內部 IPv6 範圍

    5. 按一下「新增」

gcloud

使用 gcloud compute networks subnets create 指令

gcloud compute networks subnets create SUBNET \
    --network=NETWORK \
    --stack-type=IPV6_ONLY \
    --ipv6-access-type=IPv6_ACCESS_TYPE \
    --region=REGION

更改下列內容:

  • SUBNET:新子網路的名稱。
  • NETWORK:虛擬私有雲網路的名稱,此網路將包含新的子網路。
  • IPv6_ACCESS_TYPE:IPv6 存取權類型。 存取類型可以是 EXTERNALINTERNAL
  • REGION:要建立新子網路的 Google Cloud 區域。

API

subnetworks.insert 方法發出 POST 要求。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks
{
  "network": "NETWORK_URL",
  "name": "SUBNET"
  "stackType": IPV6_ONLY,
  "ipv6AccessType": IPv6_ACCESS_TYPE
}

更改下列內容:

  • PROJECT_ID:含有要修改的 VPC 網路的專案 ID。
  • REGION:子網路新增至其中的 Google Cloud 區域 名稱。
  • NETWORK_URL:您要新增子網路的虛擬私有雲網路網址。
  • SUBNET:子網路的名稱。
  • IPv6_ACCESS_TYPE:IPv6 存取權類型。存取類型可以是 EXTERNALINTERNAL

建立僅限 IPv6 的執行個體

主控台

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

    前往「建立執行個體」

  2. 輸入執行個體的名稱。

  3. 選取含有已設定 IPv6 範圍的子網路的區域。

  4. 選用:變更這個執行個體的可用區。如果選取「Any」(任何),Google 會根據機器類型和可用性,自動為您選擇區域。

  5. 展開「Advanced options」(進階選項) 區段。

  6. 展開「Networking」(網路),然後執行下列操作:

    1. 在「網路介面」部分,按一下網路介面名稱,即可編輯網路介面的設定。

    2. 在「Network」(網路) 和「Subnetwork」(子網路) 中,選取要使用的網路和子網路。

      選取僅限 IPv6 的子網路。子網路的 IPv6 存取權類型會決定執行個體接收內部 IPv6 位址或外部 IPv6 位址。

    3. 在「IP 堆疊類型」部分,選取「IPv6 (單一堆疊)」

    4. 如要取得介面的 IPv6 位址,請根據連結子網路的存取權類型執行下列操作:

      1. 在「主要內部 IPv6 位址」部分,選取下列其中一個選項:
        • 「臨時 (自動)」:自動指派新的臨時內部 IPv6 位址
        • 臨時 (自訂):手動指定新的臨時內部 IPv6 位址
        • 清單中保留的靜態內部 IPv6 位址
        • 預留靜態內部 IPv6 位址,預留並指派新的靜態內部 IPv6 位址
      2. 在「外部 IPv6 位址」部分,選取下列其中一個選項:
        • 自動分配:自動指派新的臨時外部 IPv6 位址
        • 清單中預留的靜態外部 IPv6 位址
        • 保留靜態外部 IPv6 位址,預留並指派新的靜態外部 IPv6 位址
    5. 如要完成修改網路介面,請按一下「Done」(完成)

  7. 繼續執行個體建立程序。

  8. 點選「建立」

gcloud

使用 gcloud compute instances create 指令建立執行個體。

gcloud compute instances create INSTANCE_NAME \
    --zone ZONE \
    --network-interface=network=NETWORK,subnet=SUBNET,stack-type=IPV6_ONLY

更改下列內容:

  • INSTANCE_NAME:執行個體的名稱。
  • ZONE:建立執行個體的區域,例如 europe-west1-b。執行個體的地區是從區域推測得出。
  • NETWORK:要在哪個網路中建立執行個體。
  • SUBNET:要在其中建立執行個體的子網路名稱。

API

使用 instances.insert 方法建立例項。

  POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
  {
     "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
     "name": "NAME",
     "disks": [
       {
         "initializeParams": {
           "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE"
         },
         "boot": true
       }
     ],
     "networkInterfaces": [
       {
         "subnetwork": "regions/REGION/subnetworks/SUBNET",
         "stackType": "IPV6_ONLY"
       }
     ]
   }
   

更改下列內容:

  • PROJECT_ID:包含執行個體的專案 ID。
  • ZONE:包含執行個體的區域。
  • MACHINE_TYPE_ZONE:包含新執行個體所用機器類型的可用區。
  • MACHINE_TYPE:新執行個體的機器類型,可以是預先定義自訂。例如:c3-standard-4
  • NAME:執行個體的名稱。
  • IMAGE_PROJECT:選用:包含圖片的圖片專案
  • IMAGE:選用:指定下列其中一項:
    • 特定版本的 OS 映像檔,例如 debian-12-bookworm-v20241009
    • 映像檔系列,格式必須為 family/IMAGE_FAMILY。這樣一來,系統會使用未淘汰的最新 OS 映像檔建立執行個體。舉例來說,如果您指定 family/debian-12,Compute Engine 會使用 Debian 12 映像檔系列中的最新版 OS 映像檔建立執行個體。如要進一步瞭解如何使用映像檔系列,請參閱「映像檔系列最佳做法」。
  • REGION:包含執行個體的區域。
  • SUBNET:網路介面所在的子網路。

設定 DNS64 和 NAT64

本節說明如何設定 DNS64 和 NAT64,讓您從僅限 IPv6 的執行個體存取 IPv4 目的地。

建立 DNS64 伺服器政策

建立及設定 DNS64 伺服器政策,讓 Cloud DNS 為每個 IPv4 目的地提供合成 IPv6 位址。

如要進一步瞭解如何建立及管理 DNS64 伺服器政策,請參閱「設定 DNS64」。

如要建立 DNS64 伺服器政策,請按照下列步驟操作。

主控台

  1. 前往 Google Cloud 控制台的「Cloud DNS」頁面。

    前往 Cloud DNS

  2. 在「DNS 伺服器政策」分頁中,按一下「建立政策」

  3. 在「Name」(名稱) 欄位中,輸入政策名稱。

  4. 選用:在「說明」欄位中輸入政策說明。

  5. 在「DNS64」中選取「開啟」,即可啟用 DNS64。

  6. 在「Networks」(網路) 欄位中,選取要建立政策的虛擬私有雲網路。選取包含僅限 IPv6 子網路和執行個體的網路。

gcloud

如要建立 DNS64 伺服器政策,請執行 gcloud dns policies create 指令

gcloud beta dns policies create NAME \
    --description=DESCRIPTION \
    --networks=VPC_NETWORK_LIST \
    --enable-dns64-all-queries

更改下列內容:

  • NAME:政策名稱。
  • DESCRIPTION:政策說明。
  • VPC_NETWORK_LIST:以半形逗號分隔的虛擬私有雲網路清單,DNS 伺服器政策會繫結至這些網路。指定包含僅限 IPv6 子網路和執行個體的網路。

API

如要建立 DNS64 伺服器政策,請使用 policies.create 方法

POST https://dns.googleapis.com/dns/beta/projects/PROJECT_ID/policies
{
  "kind": "dns#policy",
  "networks": [
    {
      "kind": "dns#policyNetwork",
      "networkUrl": "NETWORK_URL"
    }
  ],
  "dns64Config":
    {
        "scope":
        {
          allQueries: true,
        }
    }
  }

更改下列內容:

  • PROJECT_ID:您的專案 ID。
  • NETWORK_URL:DNS 伺服器政策必須繫結的 VPC 網路完整網址,格式如下:https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/VPC_NETWORK_NAME。指定包含僅限 IPv6 子網路和執行個體的網路。

建立 Cloud NAT 閘道以啟用 NAT64

在包含僅限 IPv6 子網路和執行個體的虛擬私有雲網路和區域中,建立 Cloud NAT 閘道,設定 Public NAT。

如要進一步瞭解如何建立及管理 Cloud NAT 閘道,請參閱「使用 Public NAT 設定及管理網路位址轉譯」。

如要為 NAT64 建立 Cloud NAT 閘道,請按照下列步驟操作。

主控台

  1. 前往 Google Cloud 控制台的「Cloud NAT」頁面。

    前往 Cloud NAT

  2. 按一下「開始使用」或「建立 Cloud NAT 閘道」

  3. 在「閘道名稱」欄位中,輸入閘道名稱。

  4. 在「NAT type」(NAT 類型) 中,選取「Public」(公開)

  5. 在「選取 Cloud Router」部分,設定下列項目:

    1. 在「Network」(網路) 欄位中,選取要建立閘道的虛擬私有雲網路。
    2. 在「Region」(區域) 欄位中,設定閘道的區域。
    3. 在「Cloud Router」欄位中,選取或建立該區域的 Cloud Router。
  6. 在「Cloud NAT mapping」(Cloud NAT 對應) 區段中,確認「Source endpoint type」(來源端點類型) 選取「VM instances, GKE nodes, Serverless」(VM 執行個體、GKE 節點、無伺服器) 選項。

  7. 在「來源 IP 版本」欄位中,選取「IPv6 子網路範圍」,然後設定要使用 Cloud NAT 的來源 IPv6 子網路範圍。

    • 如要為區域中所有子網路的內部和外部 IP 範圍使用 Cloud NAT,請選取「所有子網路」
    • 如要限制哪些子網路可以使用 Cloud NAT,請選取「Custom」(自訂),然後執行下列操作:
      1. 在「Subnets」(子網路) 區段中,選取子網路。
      2. 選用:如要指定其他子網路,請按一下「新增子網路」,然後新增其他子網路。
  8. 設定 Cloud NAT 閘道的其他選項。 詳情請參閱 Cloud NAT 說明文件中的「建立 Cloud NAT 閘道」。

  9. 點選「建立」

gcloud

本節說明如何建立 Cloud NAT 閘道,並將所有設定選項設為預設值。如要進一步瞭解如何自訂閘道設定,請參閱「自訂 Cloud NAT 閘道的設定」。

如要建立 Cloud NAT 閘道,請使用 gcloud compute routers nats create 指令

  1. 在要使用 Cloud NAT 閘道的地區建立 Cloud Router。您需要這個 Cloud Router 才能建立 Cloud NAT 閘道。

  2. 為 IPv6 來源子網路範圍設定 Cloud NAT (搶先版)。

    下列設定會為區域中的所有 IPv6 子網路範圍啟用 NAT,包括僅支援 IPv6 的子網路和雙重堆疊子網路。或者,您也可以使用 --nat64-custom-v6-subnet-ip-ranges 旗標,為特定子網路設定 NAT。

    gcloud compute routers nats create NAT_CONFIG \
        --router=NAT_ROUTER \
        --region=REGION \
        --auto-allocate-nat-external-ips \
        --nat64-all-v6-subnet-ip-ranges
    

    更改下列內容:

    • NAT_CONFIG:NAT 設定的名稱。
    • NAT_ROUTER:您在上一個步驟中建立的 Cloud Router 名稱。
    • REGION:您要使用 Cloud NAT 閘道的區域。

API

如要使用 API 建立 Cloud Router 和 Cloud NAT 閘道,請使用 routers.insert 方法,並設定 nats[] 欄位。

本節說明如何建立 Cloud NAT 閘道,並將所有設定選項設為預設值。如要進一步瞭解如何自訂閘道設定,請參閱「建立 Cloud NAT 閘道」。

如要進一步瞭解如何建立雲端路由器,請參閱「建立雲端路由器,將虛擬私有雲網路連線至對等互連網路」。

下列設定會為該區域中的所有 IPv6 子網路範圍啟用 NAT。您也可以將 sourceSubnetworkIpRangesToNat64 設為 LIST_OF_IPV6_SUBNETWORKS,並在 nats[].nat64Subnetworks[] 欄位中指定子網路,為特定子網路設定 NAT。

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/routers
{
  "name": "ROUTER_NAME",
  "network": "NETWORK",
  "bgp": {
    "asn": "ASN_NUMBER"
  },
  "nats": [
    {
      "name": NAT_CONFIG,
      "sourceSubnetworkIpRangesToNat64": ALL_IPV6_SUBNETWORKS,
      "natIpAllocateOption": AUTO_ONLY
    }
  ]
}

更改下列內容:

  • PROJECT_ID:含有虛擬私有雲網路的專案 ID。
  • REGION:您希望 Cloud Router 和 Cloud NAT 閘道所處的地區。
  • :Cloud Router 的名稱。這個名稱會顯示在 Google Cloud 主控台中,Google Cloud CLI 會使用這個名稱參照 Cloud Router。ROUTER_NAME
  • NETWORK:用於建立 Cloud Router 和 Cloud NAT 閘道的 VPC 網路。
  • ASN_NUMBER:您設定的 Cloud Router 的私人 ASN (64512-655344200000000-4294967294);這個 ASN 可以是您尚未在相同區域和網路中做為對等互連 ASN 使用的任何私人 ASN,例如 65001 Cloud Router 需要您使用私人 ASN,但您的內部部署 ASN 可以是公開或私人。
  • NAT_CONFIG:NAT 設定的名稱。

後續步驟