Cloud DNS 會使用下列程序,回答來自 Compute Engine 虛擬機器 (VM) 執行個體和 Google Kubernetes Engine (GKE) 節點的查詢。
對於 GKE 節點以外的 Compute Engine VM,Cloud DNS 會依虛擬私有雲網路解析順序處理收到的查詢。每個 VM 都必須設定為使用中繼資料伺服器 IP 位址 (169.254.169.254) 做為名稱伺服器。
針對 GKE 節點:
- Cloud DNS 會先嘗試使用叢集範圍回應政策和私人區域比對查詢。 
- Cloud DNS 會依虛擬私有雲網路解析順序繼續執行。 
叢集範圍的回應政策和私人區
- 使用 GKE 叢集範圍回應政策中的規則進行比對。Cloud DNS 會掃描所有適用的 GKE 叢集規模回應政策,找出 DNS 名稱屬性盡可能符合查詢的規則。Cloud DNS 會使用最長後置字串比對功能掃描叢集範圍的回應政策。 - 如果 Cloud DNS 找到符合的回應政策規則,且規則提供本機資料,Cloud DNS 就會將本機資料做為回應,完成名稱解析程序。 
- 如果 Cloud DNS 找到符合的回應政策規則,且規則的行為會略過回應政策,Cloud DNS 就會繼續執行下一個步驟。 
- 如果 Cloud DNS 找不到相符的回應政策,或如果節點沒有適用的叢集層級回應政策,Cloud DNS 會繼續執行下一個步驟。 
 
- 比對叢集範圍內的私人區域記錄。Cloud DNS 會掃描所有叢集範圍內的代管不公開區域,找出盡可能與查詢相符的記錄。Cloud DNS 會使用最長尾碼比對功能,找出叢集範圍內的私人區域記錄。 - 如果查詢的最佳比對結果是叢集範圍私人區域的區域名稱,Cloud DNS 會使用該區域的記錄資料來解析要求。 - 如果區域包含與查詢完全相符的記錄,Cloud DNS 會傳回該記錄的資料。
- 如果區域中沒有符合的記錄,Cloud DNS 會傳回 NXDOMAIN。
 
- 如果查詢的最具體相符項目是叢集範圍轉送區域的區域名稱,Cloud DNS 會將查詢轉送至轉送區域的其中一個轉送目標,以完成名稱解析程序。Cloud DNS 會傳回下列其中一個回應。 - 從轉寄目標收到的回應。
- 如果轉送目標未回應 Cloud DNS,則會傳回 SERVFAIL回應。
 
- 如果查詢不符合任何叢集層級私人區域,Cloud DNS 會繼續執行虛擬私人雲端網路解析順序。 
 
虛擬私有雲網路解析順序
- 使用 VPC 網路替代名稱伺服器比對。如果 VPC 網路有傳出伺服器政策,Google Cloud 會將查詢轉送至該政策中定義的其中一個替代名稱伺服器,以完成名稱解析程序。 - 如果傳出伺服器政策中存在兩個以上的替代名稱伺服器,Cloud DNS 會使用內部演算法為替代名稱伺服器排序。從相同的等級開始,備用名稱伺服器會根據成功回應率 (包括 - NXDOMAIN回應) 和最短的往返時間 (回應延遲時間最短) 來提高等級。- Cloud DNS 會將查詢傳送至替代名稱伺服器,並使用以下程序傳回回應。 - 如果傳出伺服器政策中存在兩個以上的替代名稱伺服器,Cloud DNS 會先將查詢傳送至排名最高的替代名稱伺服器,然後傳送至排名較低的替代名稱伺服器 (如果 Cloud DNS 未收到來自排名最高的替代名稱伺服器的任何回應)。如果 Cloud DNS 未收到下一個替代名稱伺服器的任何回應,Cloud DNS 會繼續以降序查詢替代名稱伺服器,直到替代名稱伺服器清單用盡為止。 
- 如果 Cloud DNS 收到替代名稱伺服器的回應,就會傳回該回應。回應包括 - NXDOMAIN回應。
- 如果 Cloud DNS「無法」從傳出伺服器政策中的「所有」替代名稱伺服器收到回應,Cloud DNS 會合成 - SERVFAIL回應。如要排解替代名稱伺服器連線問題,請參閱「替代名稱伺服器網路規定」。
 - 如果虛擬私有雲網路「沒有」傳出伺服器政策,Cloud DNS 會繼續執行下一個步驟。 
- 在 VPC 網路範圍回應政策中使用規則進行比對。Cloud DNS 會掃描所有適用的 VPC 網路回應政策,找出 DNS 名稱屬性盡可能與查詢相符的規則。Cloud DNS 會使用最長後置字串比對功能,掃描虛擬私有雲網路範圍的回應政策。 - 如果 Cloud DNS 找到符合的回應政策規則,且規則提供本機資料,Cloud DNS 就會將本機資料做為回應傳回,完成名稱解析程序。 
- 如果 Cloud DNS 找到符合的回應政策規則,且規則的行為會略過回應政策,Cloud DNS 就會繼續執行下一個步驟。 
- 如果 Cloud DNS 找不到相符的回應政策,或如果沒有適用於 VM 或節點的 VPC 網路範圍回應政策,Cloud DNS 就會繼續執行下一個步驟。 
 
- 在虛擬私人雲端網路範圍內的代管私人區域中比對記錄。Cloud DNS 會掃描已取得虛擬私人雲端網路授權的所有代管不公開區域,找出盡可能符合查詢的記錄。Cloud DNS 會使用最長尾碼比對功能來尋找記錄。 - 如果查詢的最佳比對結果是 VPC 網路範圍不公開區域的區域名稱,Cloud DNS 會使用該區域的記錄資料解析要求。 - 如果區域包含與查詢完全相符的記錄,Cloud DNS 會傳回記錄的資料。
- 如果區域中沒有符合的記錄,Cloud DNS 會傳回 NXDOMAIN。
 
- 如果查詢的最佳比對結果是 VPC 網路範圍轉送區域的區域名稱,Cloud DNS 會將查詢轉送至轉送區域的其中一個轉送目標,以完成名稱解析程序。Cloud DNS 會傳回下列其中一項回應。 - 從轉寄目標收到的回應。
- 如果轉送目標未回應 Cloud DNS,則會傳回 SERVFAIL回應。
 
- 如果查詢的最佳比對結果是 VPC 網路範圍對等互連區域的名稱,Cloud DNS 會停止目前的名稱解析程序,並從對等互連區域目標 VPC 網路的角度開始新的名稱解析程序。 
 - 如果查詢不符合私人區域、轉送區域或對等區域,Cloud DNS 會繼續執行下一個步驟。 
- 比對 Compute Engine 內部區域中的記錄。Cloud DNS 會掃描所有適用的 Compute Engine 內部 DNS 區域,找出盡可能符合查詢的記錄。Cloud DNS 會使用最長尾碼比對方式來尋找記錄。 - 如果查詢的結果最符合的值是 Compute Engine 內部 DNS 名稱,Cloud DNS 會傳回 VM 網路介面的內部 IP 位址或其反向查詢指標做為回應,完成名稱解析程序。
 
- 使用公開 DNS 查詢比對記錄。 Google Cloud 會依照起始點授權 (SOA) 記錄查詢可公開存取的區域,包括 Cloud DNS 公開區域。Cloud DNS 會傳回下列其中一項回應。 - 從權威名稱伺服器收到的回應。
- 如果記錄不存在,則會傳回 NXDOMAIN回應。
 
範例
假設您有兩個 VPC 網路 (vpc-a 和 vpc-b) 和一個 GKE 叢集 (cluster-a),以及下列範圍資源:
- vpc-a已獲授權查詢下列不公開區域。請注意每個項目的結尾點:- static.example.com.
- 10.internal.
 
- peer.com.是對等互連區域,可查詢- vpc-b的 VPC 名稱解析順序。
- vpc-a與任何傳出伺服器或回應政策無關。
- cluster-a已獲授權查詢名為- example.com的不公開區域。- cluster-a也不會與任何外送伺服器或回應政策建立關聯。
- cluster-a中的 VM 可查詢:- example.com和子項 (包括- static.example.com),由名為- example.com的私人區域回答,並授權給- cluster-a。
- vpc-a使用「- 10.internal」。
- peer.com使用對等區域。
 
- 不在 - cluster-a中的 VM 可以查詢:- static.example.com和子項,由授權給- vpc-a的私人區域- static.example.com回答。查詢- example.com會傳回網際網路回應。
- vpc-a使用「- 10.internal」。
- peer.com使用對等區域。
 
後續步驟
- 如要找出使用 Cloud DNS 時可能遇到的常見問題解決方案,請參閱「疑難排解」。
- 如要瞭解 Cloud DNS 的總體概況,請參閱 Cloud DNS 總覽。
- 如要瞭解如何設定回應政策,請參閱「管理回應政策和規則」。