建立 VM 執行個體的 PTR 記錄

可設定的 PTR 記錄可讓您定義與 VM 執行個體外部 IP 位址相關聯的反向 DNS 記錄,使依賴於這些記錄的應用程式可以正常運作。

一些應用程式需要反向 DNS 記錄 (PTR 記錄) 來將 IP 位址解析為網域名稱。例如,使用 SMTP 的應用程式需要指向傳送電子郵件之來源網域的 PTR 記錄。若沒有這個記錄,垃圾郵件篩選器可以將電子郵件標示為聲譽不佳,進而導致電子郵件最終產生垃圾郵件資料夾,或根本不會傳送。

您只能將 PTR 記錄新增至 VM 執行個體的主要網路介面。這不適用於負載平衡器或其他靜態 IP。

事前準備

定價

適用 Compute Engine 機器類型定價。 將 PTR 記錄與您的執行個體搭配使用不需支付額外費用。

驗證您的網域擁有權

在您建立具有自訂 PTR 記錄的 VM 之前,請驗證您是否擁有網域名稱。驗證擁有權是一項安全措施,可向 Google 證明您是網域擁有者。

  1. 開啟網站管理員中心,並使用您要用來將 PTR 記錄新增至執行個體的 Google Cloud 帳戶登入。您可以使用多個帳戶驗證網域擁有權。
  2. 按一下 [Add a property] (新增屬性)
  3. 輸入 PTR 網域名稱。
  4. 按一下 [繼續]
  5. 按照操作說明進行操作,並按一下 [驗證詳細資料]

驗證網域擁有權後,網站管理員中心會列出驗證嘗試與已驗證擁有者。

如果您的網域名稱並未立即驗證,請使用建議的方法來取得驗證。

建立具有 PTR 記錄的執行個體

當您建立新執行個體時,可以指定 PTR 記錄。如果您想將 PTR 記錄新增至現有執行個體,請參閱更新執行個體以啟用 PTR 記錄一文。

透過 Google Cloud Platform 主控台gcloud 工具API 建立具有 PTR 記錄的新執行個體。

主控台

透過 Google Cloud Platform 主控台建立具有 PTR 記錄的新執行個體:

  1. 開啟建立執行個體頁面。

    前往建立執行個體頁面

  2. 按一下 [Management, security, disks, networking, sole tenancy] (管理、安全性、磁碟、網路、單獨租用),展開執行個體的進階設定。
  3. 按一下 [Networking] (網路),選取執行個體網路設定。
  4. 建立一或多個網路介面以與這個執行個體搭配使用。或者,您也可以使用預設網路介面。
  5. 在「Network Interfaces」(網路介面) 選單中,按一下您想與 PTR 記錄建立關聯的第一個網路介面中的編輯工具。只有預設網路介面可以擁有 PTR 記錄。
  6. 按一下 [Enable Public DNS PTR Record] (啟用公開 DNS PTR 記錄)
  7. 在 PTR 網域名稱欄位中輸入您的網域名稱。
  8. 按一下 [Done] (完成),確認網路介面設定。
  9. 為您需要的新介面設定剩餘屬性。
  10. 在建立執行個體頁面底部,按一下 [Create] (建立) 以建立執行個體。

在執行個體啟動之後,對您執行個體的外部 IP 位址執行反向 DNS 查詢以確認 PTR 記錄如預期般運作。

gcloud

使用 gcloud instances create 指令建立具有關聯 PTR 記錄的新執行個體。

gcloud compute instances create [INSTANCE_NAME] \
    --image-family [IMAGE_FAMILY] \
    --image-project [IMAGE_PROJECT] \
    --public-ptr --public-ptr-domain [DOMAIN_NAME]

其中:

  • [INSTANCE_NAME] 是新 VM 執行個體的名稱。
  • [IMAGE_FAMILY]可用映像檔系列的其中一個。
  • [IMAGE_PROJECT] 是映像檔系列所屬的映像檔專案
  • [DOMAIN_NAME] 是您要新增至這個執行個體的網域名稱。

API

在 API 中,建構 POST 要求來建立執行個體 (具有 PTR 記錄)。針對指定網路存取權設定,新增 setPublicPtrpublicPtrDomainName 參數。

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

     {
       "machineType": "zones/[ZONE]/machineTypes/[MACHINE_TYPE]",
       "name": "[INSTANCE_NAME]",
       "disks":
    [
      {

       "initializeParams":
      {

       "sourceImage": "projects/debian-cloud/global/images/family/debian-9"
      },
       "boot": true
      }
     ],
      "networkInterfaces":
     [
      {
       "network": "[NETWORK]",
       "accessConfigs":
     [
      {
       "publicPtrDomainName": "[DOMAIN_NAME]",
       "setPublicPtr": true,
       "type": "ONE_TO_ONE_NAT",
       "name": "External IP"
      }
     ]
    }
   ]
  }

其中:

  • [PROJECT_ID] 是您的專案 ID。
  • [ZONE] 是您的執行個體與新磁碟所在的區域。
  • [MACHINE_TYPE] 是機器類型。
  • [INSTANCE_NAME] 是虛擬機器執行個體的名稱。
  • [NETWORK] 是指向您網路資源的網址。
  • [DOMAIN_NAME] 是您要新增至這個執行個體的網域名稱。

外部 IP 位址會解析為自訂網域名稱。

更新執行個體以啟用 PTR 記錄

如果您的 VM 執行個體使用主要網路介面,則可以針對 VM 執行個體,更新主要網路介面「nic0」上的存取權設定,來啟用或停用 PTR 記錄。

如果未設定您的網路存取權,請新增存取權設定,然後在網路介面選單內啟用 PTR 記錄。

主控台

透過 Google Cloud Platform 主控台,更新存取權設定或將存取權設定新增至您的執行個體:

  1. 前往 VM 執行個體頁面。

    前往 VM 執行個體頁面

  2. 按一下您要編輯的執行個體。
  3. 按一下頂端選單中的 [編輯] 工具。
  4. 點選主要網路介面旁邊的編輯工具。
  5. 按一下 [外部 IP] 下拉式選單。
  6. 設定 [外部 IP] 以啟用 PTR 記錄。
  7. 勾選「公開 DNS PTR 記錄」的 [啟用] 方塊。
  8. 輸入您的網域名稱。
  9. 按一下 [完成]
  10. 點選頁面底部的 [儲存],儲存您的設定。

gcloud

使用 gcloud 工具更新現有存取權設定:

使用 gcloud compute instances updateAccessConfig 指令,將 PTR 記錄新增至現有存取權設定。

gcloud compute instances update-access-config [INSTANCE_NAME]
    --public-ptr --public-ptr-domain [DOMAIN_NAME]

使用 gcloud instances updateAccessConfig 指令,透過移除 PTR 記錄更新現有存取權設定。

gcloud compute instances update-access-config [INSTANCE_NAME]
    --no-public-ptr

如果您的執行個體沒有存取權設定,您可以使用 gcloud instances addAccessConfig 指令新增具有 PTR 記錄的存取權設定。

gcloud compute instances add-access-config [INSTANCE_NAME]
    --public-ptr --public-ptr-domain [DOMAIN_NAME]

其中:

  • [INSTANCE_NAME] 是虛擬機器執行個體的名稱。
  • [DOMAIN_NAME] 是您要新增至這個執行個體做為 PTR 記錄的網域名稱。

API

在 API 中,對 updateAccessConfig 方法建構 POST 要求,針對「A」或「PTR」記錄啟用公開 DNS 支援。這個要求會保留現有外部 IP 位址,但會針對指定網路存取權設定新增 setPublicPtrpublicPtrDomainName 參數。

POST https://www.googleapis.comm/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/updateAccessConfig?networkInterface=nic0

{
  "setPublicPtr": true,
  "publicPtrDomainName": "[DOMAIN_NAME]"
}

其中:

  • [PROJECT_ID] 是您的專案 ID。
  • [ZONE] 是您的執行個體與新磁碟所在的區域。
  • [INSTANCE_NAME] 是這個要求的執行個體名稱。
  • [DOMAIN_NAME] 是您要新增至這個執行個體做為 PTR 記錄的網域名稱。

或者,如果您的執行個體沒有具有存取權設定的網路介面,請使用 addAccessConfig 方法建構類似的 POST 要求,來針對您的網路介面建立新的存取權設定。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Compute Engine 說明文件