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