本頁面說明如何設定 DNS 伺服器政策,並搭配虛擬私有雲 (VPC) 網路使用這些政策。使用這個頁面前,請先詳閱 DNS 伺服器政策總覽。
事前準備
Cloud DNS API 會要求您建立 Google Cloud 專案並啟用 Cloud DNS API。
如果您正在建立的應用程式會使用 REST API,則還必須建立一個 OAuth 2.0 用戶端 ID。
- 如果您還沒有 Google 帳戶,請註冊 Google 帳戶。
- 在 Google Cloud 控制台中啟用 Cloud DNS API。您可以選擇現有的 Compute Engine 或 App Engine 專案,也可以建立新的專案。
- 如果您需要向 REST API 發出要求,則必須建立 OAuth 2.0 ID。請參閱「設定 OAuth 2.0」。
- 請注意,在後續步驟中,您必須在專案中輸入下列資訊:
-
用戶端 ID (
xxxxxx.apps.googleusercontent.com
)。 - 要使用的專案 ID。您可以在 Google Cloud 控制台的「總覽」頁面頂端找到這個 ID。您也可以要求使用者提供他們想在應用程式中使用的專案名稱。
-
用戶端 ID (
如果您之前未執行 Google Cloud CLI,請務必執行下列指令,指定專案名稱並透過 Google Cloud 主控台進行驗證:
gcloud auth login
如要選擇先前未選取的專案,請在指令列中指定 --project
選項。
建立 DNS 伺服器政策
每個 DNS 伺服器政策物件都可以定義下列任何伺服器政策:
- 傳入 DNS 伺服器政策,可啟用傳入轉送
- 傳出 DNS 伺服器政策,指定一或多個替代名稱伺服器
- 傳入和傳出 DNS 伺服器政策
- DNS64 伺服器政策 (預先發布版)
每個虛擬私有雲網路最多只能參照一項 DNS 伺服器政策。如果您需要為虛擬私人雲端網路定義傳入和傳出轉送,請建立一項政策,同時定義傳入和傳出政策。您無法使用傳入 DNS 伺服器政策設定 DNS64 (預先發布版)。
建立傳入 DNS 伺服器政策
如要建立傳入 DNS 伺服器政策,請按照下列操作說明進行。Cloud DNS 會根據政策適用的每個 VPC 網路中子網路的主要 IPv4 位址範圍,建立一組傳入轉寄站 IP 位址。建立政策後,您可以列出 Cloud DNS 建立的進入點。
gcloud
如要建立傳入 DNS 伺服器政策,請執行 dns policies
create
指令:
gcloud dns policies create NAME \ --description=DESCRIPTION \ --networks=VPC_NETWORK_LIST \ --enable-inbound-forwarding
更改下列內容:
NAME
:政策名稱DESCRIPTION
:政策說明VPC_NETWORK_LIST
:以半形逗號分隔的清單,列出必須建立傳入轉送位址的 VPC 網路
Terraform
建立傳出 DNS 伺服器政策
如要為虛擬私人雲端網路指定替代名稱伺服器清單,您可以建立傳出 DNS 伺服器政策。
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
:以半形逗號分隔的清單,當中列有查詢替代名稱伺服器的 VPC 網路ALTERNATIVE_NAMESERVER_LIST
:以半形逗號分隔的 IP 位址清單,可用於替代名稱伺服器;私人路由僅適用於具有 RFC 1918 位址的替代名稱伺服器PRIVATE_ALTERNATIVE_NAMESERVER_LIST
:以半形逗號分隔的 IP 位址清單,可用於做為替代名稱伺服器,可透過私人路由存取
Terraform
建立傳入和傳出轉送的 DNS 伺服器政策
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
:以逗號分隔的 VPC 網路清單,其中必須建立傳入轉送位址,且必須查詢替代名稱伺服器ALTERNATIVE_NAMESERVER_LIST
:以半形逗號分隔的 IP 位址清單,可用做替代名稱伺服器。私人路由僅適用於具有 RFC 1918 位址的替代名稱伺服器。PRIVATE_ALTERNATIVE_NAMESERVER_LIST
:以半形逗號分隔的 IP 位址清單,可用於做為私人路由存取的替代名稱伺服器。
Terraform
列出傳入轉寄站進入點
當傳入 DNS 伺服器政策套用至 VPC 網路時,Cloud DNS 會建立一組區域內部 IP 位址,做為內部部署系統或名稱解析器可傳送 DNS 查詢的目的。這些位址是虛擬私人雲端網路名稱解析順序的進入點。
Google Cloud 防火牆規則不會套用至用於傳入轉送器的地區性內部地址。Cloud DNS 會自動接受通訊埠 53
上的 TCP 和 UDP 流量。
每個 inbound forwarder 都會接受並接收來自 Cloud VPN 隧道或 Cloud Interconnect 連結 (VLAN) 的查詢,這些連結位於與區域內部 IP 位址相同的區域。VM 執行個體可透過相同虛擬私有雲網路中的任何內部 IP 位址存取傳入轉送器。如要存取 inbound forwarding,網路介面必須具有外部 IP 位址,或是 NIC 的子網路必須啟用私人 Google 存取權。
gcloud
如要列出可做為傳入轉送入口點的地區性內部 IP 位址組合,請執行 compute addresses
list
指令:
gcloud compute addresses list \ --filter='purpose = "DNS_RESOLVER"' \ --format='csv(address, region, subnetwork)'
更新 DNS 政策
以下各節將說明如何變更 VPC 網路,以及啟用或停用內送轉送。
變更虛擬私有雲網路
下表說明變更 DNS 政策套用至哪些 VPC 網路時會發生的情況:
- 如果政策指定了傳入政策,系統會視需要在 VPC 網路中建立傳入轉送器的進入點。
如果政策指定了傳出政策,則會更新每個虛擬私有雲網路的名稱解析順序,納入指定的替代名稱伺服器。
gcloud
如要修改 DNS 伺服器政策套用的網路清單,請執行 dns policies update
指令:
gcloud dns policies update NAME \ --networks=VPC_NETWORK_LIST
更改下列內容:
NAME
:政策名稱VPC_NETWORK_LIST
:政策適用的 VPC 網路清單,以半形逗號分隔;您指定的 VPC 網路清單會取代先前的清單
啟用或停用傳入轉送
您可以為只定義傳出政策 (替代名稱伺服器) 的 DNS 伺服器政策啟用傳入轉送。您也可以停用現有 DNS 政策的傳入轉送功能。
gcloud
如要為 DNS 伺服器政策啟用傳入轉送功能,請執行 dns policies
update
指令:
gcloud dns policies update NAME \ --enable-inbound-forwarding
如要停用 DNS 伺服器政策的傳入轉送,請執行 dns policies
update
指令:
gcloud dns policies update NAME \ --no-enable-inbound-forwarding
將 NAME
替換為政策名稱。
列出 DNS 政策
gcloud
如要列出專案中的 DNS 伺服器政策,請執行 dns policies
list
指令:
gcloud dns policies list
刪除 DNS 政策
gcloud
如要刪除 DNS 伺服器政策,請執行 dns policies
delete
指令:
gcloud dns policies delete NAME
將 NAME
替換為要刪除的政策名稱。
後續步驟
- 如要找出使用 Cloud DNS 時可能遇到的常見問題解決方案,請參閱「疑難排解」。
- 如要瞭解 Cloud DNS 的總體概況,請參閱 Cloud DNS 總覽。