建立及更新傳出端點

本頁面說明如何建立、更新傳出端點,以及將傳出端點與轉送區域和 DNS 伺服器政策建立關聯,以便使用虛擬私有雲網路中的私人 IP 位址,直接轉送 DNS 查詢。採用這種做法,您就能更精細地控管傳出流量。如要進一步瞭解傳出端點,請參閱「傳出端點總覽」。

事前準備

  1. 在 Google Cloud 控制台的專案選取器頁面中,選取或建立 Google Cloud 專案。

    選取或建立專案所需的角色

    • 選取專案:選取專案時,不需具備特定 IAM 角色,只要您在專案中獲派角色,即可選取該專案。
    • 建立專案:如要建立專案,您必須具備專案建立者角色 (roles/resourcemanager.projectCreator),其中包含 resourcemanager.projects.create 權限。瞭解如何授予角色。

    前往專案選取器

  2. 確認 Google Cloud 專案已啟用計費功能。

  3. 如果尚未啟用 Cloud DNS、Compute Engine 和 Network Services API,請啟用這些 API。

    啟用 API 所需的角色

    如要啟用 API,您必須具備 serviceusage.services.enable 權限。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。

    啟用 API

請確認您有可連線至地端部署或外部 DNS 名稱伺服器的虛擬私有雲網路。在您打算部署 Outbound Endpoint 的每個區域中,虛擬私有雲網路必須在目標區域中具備一般子網路和僅限 Proxy 子網路。詳情請參閱「建立及管理虛擬私有雲網路」。

此外,請確保地端部署網路有區域性僅限 Proxy 子網路 IP 位址範圍的回傳路徑,並設定地端部署防火牆規則,允許來自區域性僅限 Proxy 子網路 IP 位址範圍的傳入 DNS 查詢 (UDP 和 TCP 通訊埠 53)。

建立傳出端點

如要建立傳出端點,請按照下列步驟操作:

控制台

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

    前往 Cloud DNS

  2. 前往「傳出端點」分頁,然後按一下「建立傳出端點」。

  3. 在「Name」(名稱) 欄位中,輸入端點的專屬名稱。

  4. (選用) 在「Description」(說明) 欄位中,輸入端點說明。

  5. 在「區域」部分,選取目標區域。

  6. 在「網路」清單中,選取虛擬私有雲網路。

  7. 在「Subnet」(子網路) 中,選取所選區域中的一般子網路。

  8. 在「Endpoint IP address」(端點 IP 位址),輸入所選子網路範圍內的有效 IPv4 位址字串。

  9. 在「Proxy-only subnet」(僅限 Proxy 的子網路),控制台會自動偵測所選虛擬私有雲網路和區域中的區域性僅限 Proxy 子網路,用於傳出查詢。如果系統未偵測到僅限 Proxy 的子網路,請點選「保留子網路」建立子網路,然後再繼續操作。

  10. 點選「建立」。

gcloud

執行 gcloud beta dns outbound-endpoints create 指令:

gcloud beta dns outbound-endpoints create ENDPOINT_NAME \
    --project=PROJECT_ID \
    --network=VPC_NETWORK \
    --subnetwork=REGULAR_SUBNET \
    --location=REGION \
    --endpoint-ip=IP_ADDRESS \
    --description=DESCRIPTION

更改下列內容:

  • ENDPOINT_NAME:傳出端點的名稱
  • PROJECT_ID:專案 ID
  • VPC_NETWORK:與傳出端點相關聯的虛擬私有雲網路,例如 projects/PROJECT_ID/global/networks/NETWORK_NAME 或 NETWORK_NAME
  • REGULAR_SUBNET:分配端點內部監聽 IP 位址的一般子網路,例如 projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME 或 SUBNET_NAME
  • REGION:部署端點的區域
  • IP_ADDRESS:來自一般子網路主要 IP 位址範圍的可用內部 IPv4 位址
  • DESCRIPTION:端點說明 (選填)

API

執行 outboundEndpoints.create 方法:

POST https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/locations/REGION/outboundEndpoints?outboundEndpointId=ENDPOINT_NAME
{
    "network": "projects/PROJECT_ID/global/networks/VPC_NETWORK",
    "subnetwork": "projects/PROJECT_ID/regions/REGION/subnetworks/REGULAR_SUBNET",
    "endpointIp": "IP_ADDRESS",
    "description": "DESCRIPTION"
}

更改下列內容:

  • PROJECT_ID:專案 ID
  • REGION:部署端點的區域
  • ENDPOINT_NAME:傳出端點的名稱
  • VPC_NETWORK:與 Outbound Endpoint 相關聯的虛擬私有雲網路
  • REGULAR_SUBNET:分配端點內部監聽 IP 位址的一般子網路
  • IP_ADDRESS:一般子網路主要 IP 範圍內的可用內部 IPv4 位址
  • DESCRIPTION:端點說明 (選填)

更新傳出端點

如要更新傳出端點,請按照下列步驟操作:

控制台

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

    前往 Cloud DNS

  2. 前往「Outbound endpoints」(傳出端點) 分頁,然後按一下要更新的傳出端點名稱。

  3. 按一下「編輯」,更新「說明」欄位,然後按一下「儲存」。

gcloud

執行 gcloud beta dns outbound-endpoints update 指令:

gcloud beta dns outbound-endpoints update ENDPOINT_NAME \
    --project=PROJECT_ID \
    --location=REGION \
    --description=UPDATED_DESCRIPTION

更改下列內容:

  • ENDPOINT_NAME:要更新的傳出端點名稱
  • PROJECT_ID:專案 ID
  • REGION:部署端點的區域
  • UPDATED_DESCRIPTION:端點的更新說明 (選用)

API

執行 outboundEndpoints.patch 方法:

PATCH https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/locations/REGION/outboundEndpoints/ENDPOINT_NAME?updateMask=description
{
    "description": "UPDATED_DESCRIPTION"
}

更改下列內容:

  • PROJECT_ID:專案 ID
  • REGION:部署端點的區域
  • ENDPOINT_NAME:要更新的傳出端點名稱
  • UPDATED_DESCRIPTION:傳出端點的更新說明

將端點與轉送區域建立關聯

控制台

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

    前往 Cloud DNS

  2. 前往「Zones」(區域) 分頁,然後按一下「Create zone」(建立區域),或選取現有的轉送區域,然後按一下「Edit」(編輯)。

  3. 設定區域參數:

    1. 在「Zone type」(區域類型) 中,選取「Private」(私人)。
    2. 在「Zone name」(區域名稱) 輸入區域的專屬 ID。
    3. 在「DNS name」(DNS 名稱) 部分,輸入要轉送的網域字尾。例如:corp.example.com。
    4. (選用) 在「說明」部分輸入說明。
    5. 在「選項」部分,選取「將查詢轉寄到其他伺服器」。
    6. 在「Networks」(網路) 部分,選取有權解析這個區域查詢的虛擬私有雲網路。
  4. 在「目的地 DNS 伺服器」下方,輸入外部/地端部署名稱伺服器的目標 IPv4 位址或完整網域名稱。

  5. 在「轉送路徑」部分,選取「傳出端點」。

  6. 在「傳出端點」下方,選取一或多個端點來處理查詢轉送:

    • 最少選取數量:至少選取一個傳出端點 (如果選取傳出端點做為轉送路徑,則必須選取)。
    • 單一虛擬私有雲限制:所有選取的端點都必須屬於相同的虛擬私有雲網路。
    • 高可用性 (HA) 最佳做法:如要進行跨區域災難復原和自動容錯移轉,請在該虛擬私有雲網路中,設定並選取至少兩個位於不同區域的端點。
  7. 按一下「建立」 (如果是現有區域,則按一下「儲存」)。

gcloud

使用 gcloud beta dns managed-zones update 指令,將端點與轉送區域建立關聯:

gcloud beta dns managed-zones update ZONE_NAME \
    --project=PROJECT_ID \
    --outbound-endpoints=projects/PROJECT_ID/locations/REGION_1/outboundEndpoints/ENDPOINT_NAME_1,projects/PROJECT_ID/locations/REGION_2/outboundEndpoints/ENDPOINT_NAME_2

更改下列內容:

  • ZONE_NAME:要更新的轉送區域名稱
  • PROJECT_ID:專案 ID
  • REGION_1 和 REGION_2:部署端點的區域
  • ENDPOINT_NAME_1:要與轉送區域建立關聯的第一個端點名稱
  • ENDPOINT_NAME_2:要與轉送區域建立關聯的第二個端點名稱

API

執行 managedZones.patch 方法:

PATCH https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/managedZones/ZONE_NAME
{
    "name": "ZONE_NAME",
    "dnsName": "DNS_NAME",
    "description": "DESCRIPTION",
    "visibility": "private",
    "forwardingConfig": {
        "outboundEndpoints": [
              {
                 "name": "projects/PROJECT_ID/locations/REGION_1/outboundEndpoints/ENDPOINT_NAME_1"
              },
              {
                 "name": "projects/PROJECT_ID/locations/REGION_2/outboundEndpoints/ENDPOINT_NAME_2"
              }
        ]
    }
}

更改下列內容:

  • PROJECT_ID:專案 ID
  • ZONE_NAME:要更新的轉送區域名稱
  • DNS_NAME:轉送區域的 DNS 名稱
  • DESCRIPTION:(選用) 轉送區域的更新說明
  • REGION_1 和 REGION_2:端點部署的區域 (forwardingConfig 中列出的所有輸出端點都必須屬於同一個虛擬私有雲網路)
  • ENDPOINT_NAME_1:要與轉送區域建立關聯的第一個端點名稱
  • ENDPOINT_NAME_2:要與轉送區域建立關聯的第二個端點名稱

將端點與 DNS 伺服器政策建立關聯

控制台

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

    前往 Cloud DNS

  2. 前往「DNS 伺服器政策」分頁標籤,然後按一下「建立政策」 (或選取現有的 DNS 伺服器政策,然後按一下「編輯」)。

  3. 設定下列項目:

    1. 在「Policy name」(政策名稱) 部分,輸入伺服器政策的專屬名稱。
    2. (選用) 在「說明」部分輸入說明。
    3. 在「Inbound query forwarding」(傳入查詢轉送) 部分,指定外部用戶端是否會使用傳入端點查詢虛擬私有雲工作負載。
    4. 如為 DNS64,請視需要啟用或停用 IPv6 合成功能。
    5. 在「記錄」部分,視需要啟用或停用 DNS 記錄功能。
    6. 在「VPC networks」(虛擬私有雲網路) 部分,選取要套用伺服器政策的虛擬私有雲網路。
  4. 在「Alternative DNS servers」(替代 DNS 伺服器) 下方,輸入外部或地端部署名稱伺服器的目標 IPv4 位址。

  5. 在「轉送路徑」部分,選取「傳出端點」。

  6. 在「Outbound Endpoints」(傳出端點) 下方,選取一或多個端點,以轉送所有非私人虛擬私有雲查詢:

    • 最低選取數量:至少選取一個傳出端點。
    • 單一虛擬私有雲限制:所有選取的端點都必須屬於同一個虛擬私有雲網路。
    • 高可用性 (HA) 最佳做法:如要進行跨區域災難復原和自動容錯移轉,請在該虛擬私有雲網路中,設定並選取至少兩個位於不同區域的端點。
  7. 按一下「建立」 (如果是現有政策,則按一下「儲存」)。

gcloud

使用 gcloud beta dns policies update 指令,將端點與 DNS 伺服器政策建立關聯:

gcloud beta dns policies update POLICY_NAME \
    --project=PROJECT_ID \
    --outbound-endpoints=projects/PROJECT_ID/locations/REGION_1/outboundEndpoints/ENDPOINT_NAME_1,projects/PROJECT_ID/locations/REGION_2/outboundEndpoints/ENDPOINT_NAME_2

更改下列內容:

  • POLICY_NAME:要更新的 DNS 伺服器政策名稱
  • PROJECT_ID:專案 ID
  • REGION_1 和 REGION_2:部署端點的區域
  • ENDPOINT_NAME_1:要與 DNS 伺服器政策建立關聯的第一個端點名稱
  • ENDPOINT_NAME_2:要與 DNS 伺服器政策建立關聯的第二個端點名稱

API

執行 policies.patch 方法:

PATCH https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/policies/POLICY_NAME
{
    "alternativeNameServerConfig": {
        "outboundEndpoints": [
            {"name": "projects/PROJECT_ID/locations/REGION_1/outboundEndpoints/ENDPOINT_NAME_1"},
            {"name": "projects/PROJECT_ID/locations/REGION_2/outboundEndpoints/ENDPOINT_NAME_2"}
        ]
    }
}

更改下列內容:

  • PROJECT_ID:專案 ID
  • POLICY_NAME:要更新的 DNS 伺服器政策名稱
  • REGION_1 和 REGION_2:部署端點的區域
  • ENDPOINT_NAME_1:要與 DNS 伺服器政策建立關聯的第一個端點名稱
  • ENDPOINT_NAME_2:要與 DNS 伺服器政策建立關聯的第二個端點名稱

查看傳出端點

如要列出或描述某個區域的傳出端點,請按照下列步驟操作:

控制台

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

    前往 Cloud DNS

  2. 前往「Outbound endpoints」(傳出端點) 分頁,查看專案中的所有傳出端點、區域、網路、子網路、IP 位址和健康狀態。

gcloud

如要列出區域中的所有傳出端點,請執行 gcloud beta dns outbound-endpoints list 指令:

gcloud beta dns outbound-endpoints list \
    --project=PROJECT_ID \
    --location=REGION

更改下列內容:

  • PROJECT_ID:專案 ID
  • REGION:部署端點的區域

如要查看特定傳出端點的詳細資料,請執行 gcloud beta dns outbound-endpoints describe 指令:

gcloud beta dns outbound-endpoints describe ENDPOINT_NAME \
    --project=PROJECT_ID \
    --location=REGION

更改下列內容:

  • ENDPOINT_NAME:傳出端點的名稱
  • PROJECT_ID:專案 ID
  • REGION:部署端點的區域

API

如要列出區域中的所有傳出端點,請傳送 GET 要求:

GET https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/locations/REGION/outboundEndpoints

更改下列內容:

  • PROJECT_ID:專案 ID
  • REGION:部署端點的區域

如要查看特定傳出端點的詳細資料,請傳送 GET 要求:

GET https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/locations/REGION/outboundEndpoints/ENDPOINT_NAME

更改下列內容:

  • PROJECT_ID:專案 ID
  • REGION:部署端點的區域
  • ENDPOINT_NAME:傳出端點的名稱

刪除傳出端點

如要刪除傳出端點,必須先取消與參照該端點的轉送區域或 DNS 伺服器政策的關聯。詳情請參閱「管理與傳出端點相關聯的網路資源」。

將傳出端點與所有轉送區域和 DNS 伺服器政策取消關聯後,請按照下列步驟刪除端點:

控制台

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

    前往 Cloud DNS

  2. 前往「傳出端點」分頁。

  3. 選取要刪除的傳出端點,然後按一下「Delete」(刪除)。

gcloud

執行 gcloud beta dns outbound-endpoints delete 指令:

gcloud beta dns outbound-endpoints delete ENDPOINT_NAME \
    --project=PROJECT_ID \
    --location=REGION

更改下列內容:

  • ENDPOINT_NAME:要刪除的傳出端點名稱
  • PROJECT_ID:專案 ID
  • REGION:部署端點的區域

API

使用 outboundEndpoints.delete 方法:

DELETE https://dns.googleapis.com/dns/v1beta2/projects/PROJECT_ID/locations/REGION/outboundEndpoints/ENDPOINT_NAME

更改下列內容:

  • PROJECT_ID:專案 ID
  • REGION:部署端點的區域
  • ENDPOINT_NAME:要刪除的傳出端點名稱

疑難排解

如要瞭解如何診斷及解決與傳出端點相關的錯誤,請參閱「疑難排解」。

後續步驟