設定 DNS 伺服器政策

本頁面說明如何設定 DNS 伺服器政策,並搭配虛擬私有雲 (VPC) 網路使用這些政策。使用這個頁面之前,請先詳閱 DNS 伺服器政策總覽。

事前準備

Cloud DNS API 會要求您建立 Google Cloud 專案,並啟用 Cloud DNS API。

如果您建立的應用程式會使用 REST API,還須建立 OAuth 2.0 用戶端 ID。

  1. 如果您還沒有 Google 帳戶,請註冊 Google 帳戶
  2. 在 Google Cloud 控制台中啟用 Cloud DNS API。您可以選擇現有的 Compute Engine 或 App Engine 專案,也可以建立新的專案。
  3. 如需向 REST API 發出要求,必須建立 OAuth 2.0 ID,請參閱「設定 OAuth 2.0」。
  4. 請注意,在專案的後續步驟中,您需輸入下列資訊:
    • 用戶端 ID (xxxxxx.apps.googleusercontent.com)。
    • 要使用的專案 ID。您可以在 Google Cloud 控制台的「Overview」(總覽) 頁面頂端找到這個 ID。此外,也能要求使用者提供想在應用程式中使用的專案名稱。

如果您先前沒有執行過 Google Cloud CLI,請執行下列指令,指定專案名稱並透過 Google Cloud 控制台驗證:

gcloud auth login

如要選擇與先前不同的專案,請在指令列中指定 --project 選項。

建立 DNS 伺服器政策

每個 DNS 伺服器政策物件都可以定義下列任何伺服器政策:

每個虛擬私有雲網路最多只能參照一個 DNS 伺服器政策。如要為虛擬私有雲網路定義傳入及傳出轉送,請建立一個政策,同時定義傳入和傳出政策。您無法使用傳入 DNS 伺服器政策設定 DNS64。

建立傳入 DNS 伺服器政策

如要建立傳入 DNS 伺服器政策,請按照下列說明操作。Cloud DNS 會在政策適用的每個 VPC 網路中,透過子網路的主要 IPv4 位址範圍,建立一組「傳入轉送站 IP 位址」。建立政策後,您可以列出 Cloud DNS 建立的進入點

控制台

  1. 在 Google Cloud 控制台中,開啟「Cloud DNS server policies」(Cloud DNS 伺服器政策) 頁面。

    前往「Cloud DNS server policies」(Cloud DNS 伺服器政策)

  2. 點選「Create policy」(建立政策)

  3. 在「Name」(名稱) 欄位中,輸入要建立的傳入 DNS 伺服器政策名稱,例如 inbound-dns-server-policy

  4. 在「Inbound query forwarding」(傳入查詢轉送) 部分,選取「On」(開啟)

  5. 您可以選擇啟用 DNS64,讓僅支援 IPv6 的工作負載與僅支援 IPv4 的目的地通訊。詳情請參閱「設定 DNS64」。

  6. 您可以在「Logs」(記錄) 部分選擇啟用私人 DNS 記錄,但這可能會導致 Cloud Logging 的費用增加。

  7. 在「Networks」(網路) 清單中,選取要繫結至這項 DNS 伺服器政策的虛擬私有雲網路。

    每個網路只能繫結至單一政策。如果無法從清單中選取網路,表示該網路已用於另一個政策。如要查看政策使用的網路,請在「DNS server policies」(DNS 伺服器政策) 頁面中,查看「In use by」(使用政策的網路) 一欄。

  8. 點選「Create」(建立)

gcloud

如要建立傳入 DNS 伺服器政策,請執行 dns policies create 指令:

gcloud dns policies create NAME \
    --description="DESCRIPTION" \
    --networks="VPC_NETWORK_LIST" \
    --enable-inbound-forwarding

更改下列內容:

  • NAME:政策名稱
  • DESCRIPTION:政策說明
  • VPC_NETWORK_LIST:以半形逗號分隔的虛擬私有雲網路清單,DNS 伺服器政策必須繫結至這些網路

Terraform

resource "google_dns_policy" "default" {
  name                      = "example-inbound-policy"
  enable_inbound_forwarding = true

  networks {
    network_url = google_compute_network.default.id
  }
}

resource "google_compute_network" "default" {
  name                    = "network"
  auto_create_subnetworks = false
}

建立傳出 DNS 伺服器政策

如要為虛擬私有雲網路指定替代名稱伺服器清單,可以建立傳出 DNS 伺服器政策。

控制台

  1. 在 Google Cloud 控制台中,開啟「Cloud DNS server policies」(Cloud DNS 伺服器政策) 頁面。

    前往「Cloud DNS server policies」(Cloud DNS 伺服器政策)

  2. 點選「Create policy」(建立政策)

  3. 在「Name」(名稱) 欄位中,輸入要建立的傳出 DNS 伺服器政策名稱,例如 outbound-dns-server-policy

  4. 在「Inbound query forwarding」(傳入查詢轉送) 部分,選取「Off」(關閉)

  5. 您可以在「Logs」(記錄) 部分選擇啟用私人 DNS 記錄,但這可能會導致 Cloud Logging 的費用增加。

  6. 在「Alternative DNS servers (Optional)」(替代 DNS 伺服器 (選用)) 部分,按一下「Add item」(新增項目),然後在「IP Address」(IP 位址) 欄位中輸入傳出 DNS 伺服器的 IP 位址。

    • 如要強制使用私人轉送功能將項目傳送至傳出 DNS 伺服器,請勾選「Private forwarding」(私人轉送) 核取方塊。
  7. 在「Networks」(網路) 清單中,選取要繫結至這項 DNS 伺服器政策的虛擬私有雲網路。

  8. 點選「Create」(建立)

gcloud

如要建立傳出 DNS 伺服器政策,請執行 dns policies create 指令:

gcloud dns policies create NAME \
    --description="DESCRIPTION" \
    --networks="VPC_NETWORK_LIST" \
    --alternative-name-servers="ALTERNATIVE_NAMESERVER_LIST" \
    --private-alternative-name-servers="PRIVATE_ALTERNATIVE_NAMESERVER_LIST"

更改下列內容:

  • NAME:政策名稱
  • DESCRIPTION:政策說明
  • VPC_NETWORK_LIST:以半形逗號分隔的虛擬私有雲網路清單,這些網路會查詢替代名稱伺服器
  • ALTERNATIVE_NAMESERVER_LIST:以半形逗號分隔的 IP 位址清單,這些位址可設為替代名稱伺服器
  • PRIVATE_ALTERNATIVE_NAMESERVER_LIST:以半形逗號分隔的 IP 位址清單,這些位址可設為替代名稱伺服器,並透過私人轉送功能存取

Terraform

resource "google_dns_policy" "default" {
  name = "example-outbound-policy"

  alternative_name_server_config {
    target_name_servers {
      ipv4_address    = "172.16.1.10"
      forwarding_path = "private"
    }
    target_name_servers {
      ipv4_address = "172.16.1.20"
    }
  }

  networks {
    network_url = google_compute_network.default.id
  }
}

resource "google_compute_network" "default" {
  name                    = "network"
  auto_create_subnetworks = false
}

為傳入和傳出轉送功能 DNS 建立伺服器政策

控制台

  1. 在 Google Cloud 控制台中,開啟「Cloud DNS server policies」(Cloud DNS 伺服器政策) 頁面。

    前往「Cloud DNS server policies」(Cloud DNS 伺服器政策)

  2. 點選「Create policy」(建立政策)

  3. 在「Name」(名稱) 欄位中,輸入要建立的傳入 DNS 伺服器政策名稱,例如 inbound-outbound-dns-server-policy

  4. 在「Inbound query forwarding」(傳入查詢轉送) 部分,選取「On」(開啟)

  5. 您可以在「Logs」(記錄) 部分選擇啟用私人 DNS 記錄,但這可能會導致 Cloud Logging 的費用增加。

  6. 在「Alternative DNS servers (Optional)」(替代 DNS 伺服器 (選用)) 部分,按一下「Add item」(新增項目),然後在「IP Address」(IP 位址) 欄位中輸入傳出 DNS 伺服器的 IP 位址。

    • 如要強制使用私人轉送功能將項目傳送至傳出 DNS 伺服器,請選取「Private forwarding」(私人轉送)
  7. 在「Networks」(網路) 清單中,選取要繫結至這項 DNS 伺服器政策的虛擬私有雲網路。

  8. 點選「Create」(建立)

gcloud

如要為傳入和傳出轉送功能建立 DNS 伺服器政策,請執行 dns policies create 指令:

gcloud dns policies create NAME \
    --description="DESCRIPTION" \
    --networks="VPC_NETWORK_LIST" \
    --alternative-name-servers="ALTERNATIVE_NAMESERVER_LIST" \
    --private-alternative-name-servers="PRIVATE_ALTERNATIVE_NAMESERVER_LIST" \
    --enable-inbound-forwarding

更改下列內容:

  • NAME:政策名稱
  • DESCRIPTION:政策說明
  • VPC_NETWORK_LIST:以半形逗號分隔的虛擬私有雲網路清單,必須在這些網路中建立傳入轉送位址,並查詢替代名稱伺服器
  • ALTERNATIVE_NAMESERVER_LIST:以半形逗號分隔的 IP 位址清單,這些位址可設為替代名稱伺服器
  • PRIVATE_ALTERNATIVE_NAMESERVER_LIST:以半形逗號分隔的 IP 位址清單,這些位址可設為替代名稱伺服器,並透過私人轉送功能存取

Terraform

resource "google_dns_policy" "example_policy" {
  name                      = "example-policy"
  enable_inbound_forwarding = true

  enable_logging = true

  alternative_name_server_config {
    target_name_servers {
      ipv4_address    = "172.16.1.10"
      forwarding_path = "private"
    }
    target_name_servers {
      ipv4_address = "172.16.1.20"
    }
  }

  networks {
    network_url = google_compute_network.network_1.id
  }
  networks {
    network_url = google_compute_network.network_2.id
  }
}

resource "google_compute_network" "network_1" {
  name                    = "network-1"
  auto_create_subnetworks = false
}

resource "google_compute_network" "network_2" {
  name                    = "network-2"
  auto_create_subnetworks = false
}

列出傳入轉送站進入點

將傳入 DNS 伺服器政策套用至虛擬私有雲網路時,Cloud DNS 會建立一組區域性內部 IP 位址做為目的地,供地端部署系統或名稱解析器傳送 DNS 查詢。這些位址是虛擬私有雲網路名稱解析順序的進入點。

Google Cloud 防火牆規則「不會」套用至設為傳入轉送站進入點的區域性內部位址。Cloud DNS 會自動接受通訊埠 53 上的 TCP 和 UDP 流量。

每個傳入轉送站都會接受並接收來自 Cloud VPN 通道或 Cloud Interconnect 連結 (VLAN) 的查詢,這些通道或連結與區域性內部 IP 位址位於相同區域。VM 執行個體可透過相同虛擬私有雲網路中的任何內部 IP 位址,存取傳入轉送站。如要存取傳入轉送功能,網路介面必須有外部 IP 位址,或是 NIC 的子網路必須啟用 Private Google Access。

控制台

查看政策的傳入轉送站進入點清單:

  1. 在 Google Cloud 控制台中,開啟「Cloud DNS server policies」(Cloud DNS 伺服器政策) 頁面。

    前往「Cloud DNS server policies」(Cloud DNS 伺服器政策)

  2. 按一下政策名稱。

  3. 在「Policy details」(政策詳細資料) 頁面中,按一下「In use by」(使用政策的網路) 分頁標籤。

繫結至政策的每個網路,都會列出「Inbound query forwarding IP」(傳入查詢轉送 IP) 位址。

gcloud

如要列出設為所有傳入轉送政策進入點的區域性內部 IP 位址集,請執行 compute addresses list 指令:

gcloud compute addresses list \
    --filter='purpose = "DNS_RESOLVER"' \
    --format='csv(address, region, subnetwork)'

更新 DNS 政策

以下各節提供變更虛擬私有雲網路,以及啟用或停用傳入轉送功能的相關資訊。

變更虛擬私有雲網路

變更 DNS 政策適用的虛擬私有雲網路清單時,會發生下列情況:

  • 如果政策指定了傳入政策,系統會視需要,在虛擬私有雲網路中建立傳入轉送站的進入點。
  • 如果政策指定了傳出政策,系統會更新每個虛擬私有雲網路的名稱解析順序,納入指定的替代名稱伺服器。

控制台

  1. 在 Google Cloud 控制台中,開啟「Cloud DNS server policies」(Cloud DNS 伺服器政策) 頁面。

    前往「Cloud DNS server policies」(Cloud DNS 伺服器政策)

  2. 按一下要變更的政策名稱。

  3. 點選 「Edit policy」(編輯政策)

  4. 在「Networks」(網路) 清單中,勾選或取消勾選虛擬私有雲網路旁的核取方塊。

  5. 按一下「Save」(儲存)

gcloud

如要修改 DNS 伺服器政策適用的網路清單,請執行 dns policies update 指令:

gcloud dns policies update NAME \
    --networks="VPC_NETWORK_LIST"

更改下列內容:

  • NAME:政策名稱
  • VPC_NETWORK_LIST:以半形逗號分隔的虛擬私有雲網路清單,這些網路適用於該政策;您指定的虛擬私有雲網路清單會取代先前的清單

啟用或停用傳入轉送功能

您可以為只定義了傳出政策 (替代名稱伺服器) 的 DNS 伺服器政策,啟用傳入轉送功能,也可以為現有的 DNS 政策停用傳入轉送功能。

控制台

為 DNS 伺服器政策啟用傳入轉送功能:

  1. 在 Google Cloud 控制台中,開啟「Cloud DNS server policies」(Cloud DNS 伺服器政策) 頁面。

    前往「Cloud DNS server policies」(Cloud DNS 伺服器政策)

  2. 按一下要變更的政策名稱。

  3. 點選 「Edit policy」(編輯政策)

  4. 在「Inbound query forwarding」(傳入查詢轉送) 部分,選取「On」(開啟)

  5. 按一下「Save」(儲存)

為 DNS 伺服器政策停用傳入轉送功能:

  1. 開啟「Cloud DNS server policies」(Cloud DNS 伺服器政策) 頁面。
  2. 按一下要變更的政策名稱。
  3. 點選 「Edit policy」(編輯政策)
  4. 在「Inbound query forwarding」(傳入查詢轉送) 部分,選取「Off」(關閉)
  5. 按一下「Save」(儲存)

gcloud

如要為 DNS 伺服器政策啟用傳入轉送功能,請執行 dns policies update 指令:

gcloud dns policies update NAME \
    --enable-inbound-forwarding

如要為 DNS 伺服器政策停用傳入轉送功能,請指定 --no-enable-inbound-forwarding 旗標:

gcloud dns policies update NAME \
    --no-enable-inbound-forwarding

NAME 替換為政策名稱。

列出 DNS 政策

控制台

  1. 在 Google Cloud 控制台中,開啟「Cloud DNS server policies」(Cloud DNS 伺服器政策) 頁面。

    前往「Cloud DNS server policies」(Cloud DNS 伺服器政策)

  2. 系統會列出專案中建立的所有 DNS 伺服器政策。

gcloud

如要列出專案中的 DNS 伺服器政策,請執行 dns policies list 指令:

gcloud dns policies list

刪除 DNS 政策

控制台

如要刪除 DNS 伺服器政策,該政策不得繫結至任何網路。請更新政策,先移除所有網路,再刪除政策。

  1. 在 Google Cloud 控制台中,開啟「Cloud DNS server policies」(Cloud DNS 伺服器政策) 頁面。

    前往「Cloud DNS server policies」(Cloud DNS 伺服器政策)

  2. 找到要刪除的政策,按一下名稱旁的 「Delete」(刪除)

gcloud

如要刪除 DNS 伺服器政策,請執行 dns policies delete 指令:

gcloud dns policies delete NAME

NAME 替換為要刪除的政策名稱。

後續步驟

  • 如要瞭解使用 Cloud DNS 時可能遇到的常見問題解決方案,請參閱這篇文章
  • 如要查看 Cloud DNS 總覽,請參閱這篇文章