名稱解析順序

Cloud DNS 會使用下列程序,回答來自 Compute Engine 虛擬機器 (VM) 執行個體和 Google Kubernetes Engine (GKE) 節點的查詢。

對於 GKE 節點以外的 Compute Engine VM,Cloud DNS 會依虛擬私有雲網路解析順序處理收到的查詢。每個 VM 都必須設定為使用中繼資料伺服器 IP 位址 (169.254.169.254) 做為名稱伺服器。

針對 GKE 節點:

  1. Cloud DNS 會先嘗試使用叢集範圍回應政策和私人區域比對查詢。

  2. Cloud DNS 會依虛擬私有雲網路解析順序繼續執行。

叢集範圍的回應政策和私人區

  1. 使用 GKE 叢集範圍回應政策中的規則進行比對。Cloud DNS 會掃描所有適用的 GKE 叢集規模回應政策,找出 DNS 名稱屬性盡可能符合查詢的規則。Cloud DNS 會使用最長後置字串比對功能掃描叢集範圍的回應政策。

    1. 如果 Cloud DNS 找到符合的回應政策規則,且規則提供本機資料,Cloud DNS 就會將本機資料做為回應,完成名稱解析程序。

    2. 如果 Cloud DNS 找到符合的回應政策規則,且規則的行為會略過回應政策,Cloud DNS 就會繼續執行下一個步驟。

    3. 如果 Cloud DNS 找不到相符的回應政策,如果節點沒有適用的叢集層級回應政策,Cloud DNS 會繼續執行下一個步驟。

  2. 比對叢集範圍內的私人區域記錄。Cloud DNS 會掃描所有叢集範圍內的代管不公開區域,找出盡可能與查詢相符的記錄。Cloud DNS 會使用最長尾碼比對功能,找出叢集範圍內的私人區域記錄。

    1. 如果查詢的最佳比對結果是叢集範圍私人區域的區域名稱,Cloud DNS 會使用該區域的記錄資料來解析要求。

      • 如果區域包含與查詢完全相符的記錄,Cloud DNS 會傳回該記錄的資料。
      • 如果區域中沒有符合的記錄,Cloud DNS 會傳回 NXDOMAIN
    2. 如果查詢的最具體相符項目是叢集範圍轉送區域的區域名稱,Cloud DNS 會將查詢轉送至轉送區域的其中一個轉送目標,以完成名稱解析程序。Cloud DNS 會傳回下列其中一個回應。

      • 從轉寄目標收到的回應。
      • 如果轉送目標未回應 Cloud DNS,則會傳回 SERVFAIL 回應。
    3. 如果查詢不符合任何叢集層級私人區域,Cloud DNS 會繼續執行虛擬私人雲端網路解析順序

虛擬私有雲網路解析順序

  1. 使用 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 會繼續執行下一個步驟。

  2. 在 VPC 網路範圍回應政策中使用規則進行比對。Cloud DNS 會掃描所有適用的 VPC 網路回應政策,找出 DNS 名稱屬性盡可能與查詢相符的規則。Cloud DNS 會使用最長後置字串比對功能,掃描虛擬私有雲網路範圍的回應政策。

    1. 如果 Cloud DNS 找到符合的回應政策規則,且規則提供本機資料,Cloud DNS 就會將本機資料做為回應傳回,完成名稱解析程序。

    2. 如果 Cloud DNS 找到符合的回應政策規則,且規則的行為會略過回應政策,Cloud DNS 就會繼續執行下一個步驟。

    3. 如果 Cloud DNS 找不到相符的回應政策,如果沒有適用於 VM 或節點的 VPC 網路範圍回應政策,Cloud DNS 就會繼續執行下一個步驟。

  3. 在虛擬私人雲端網路範圍內的代管私人區域中比對記錄。Cloud DNS 會掃描已取得虛擬私人雲端網路授權的所有代管不公開區域,找出盡可能符合查詢的記錄。Cloud DNS 會使用最長尾碼比對功能來尋找記錄。

    1. 如果查詢的最佳比對結果是 VPC 網路範圍不公開區域的區域名稱,Cloud DNS 會使用該區域的記錄資料解析要求。

      • 如果區域包含與查詢完全相符的記錄,Cloud DNS 會傳回記錄的資料。
      • 如果區域中沒有符合的記錄,Cloud DNS 會傳回 NXDOMAIN
    2. 如果查詢的最佳比對結果是 VPC 網路範圍轉送區域的區域名稱,Cloud DNS 會將查詢轉送至轉送區域的其中一個轉送目標,以完成名稱解析程序。Cloud DNS 會傳回下列其中一項回應。

      • 從轉寄目標收到的回應。
      • 如果轉送目標未回應 Cloud DNS,則會傳回 SERVFAIL 回應。
    3. 如果查詢的最佳比對結果是 VPC 網路範圍對等互連區域的名稱,Cloud DNS 會停止目前的名稱解析程序,並從對等互連區域目標 VPC 網路的角度開始新的名稱解析程序。

    如果查詢不符合私人區域、轉送區域或對等區域,Cloud DNS 會繼續執行下一個步驟。

  4. 比對 Compute Engine 內部區域中的記錄。Cloud DNS 會掃描所有適用的 Compute Engine 內部 DNS 區域,找出盡可能符合查詢的記錄。Cloud DNS 會使用最長尾碼比對方式來尋找記錄。

    1. 如果查詢的結果最符合的值是 Compute Engine 內部 DNS 名稱,Cloud DNS 會傳回 VM 網路介面的內部 IP 位址或其反向查詢指標做為回應,完成名稱解析程序。
  5. 使用公開 DNS 查詢比對記錄。 Google Cloud 會依照起始點授權 (SOA) 記錄查詢可公開存取的區域,包括 Cloud DNS 公開區域。Cloud DNS 會傳回下列其中一項回應。

    • 從權威名稱伺服器收到的回應。
    • 如果記錄不存在,則會傳回 NXDOMAIN 回應。

範例

假設您有兩個 VPC 網路 (vpc-avpc-b) 和一個 GKE 叢集 (cluster-a),以及下列範圍資源:

  1. vpc-a 已獲授權查詢下列不公開區域。請注意每個項目的結尾點:

    • static.example.com.
    • 10.internal.
  2. peer.com. 是對等互連區域,可查詢 vpc-b 的 VPC 名稱解析順序。

  3. vpc-a 與任何傳出伺服器或回應政策無關。

  4. cluster-a 已獲授權查詢名為 example.com 的不公開區域。cluster-a 也不會與任何外送伺服器或回應政策建立關聯。

  5. cluster-a 中的 VM 可查詢:

    • example.com 和子項 (包括 static.example.com),由名為 example.com 的私人區域回答,並授權給 cluster-a
    • vpc-a 使用「10.internal」。
    • peer.com 使用對等區域。
  6. 不在 cluster-a 中的 VM 可以查詢:

    • static.example.com 和子項,由授權給 vpc-a 的私人區域 static.example.com 回答。查詢 example.com 會傳回網際網路回應。
    • vpc-a 使用「10.internal」。
    • peer.com 使用對等區域。

後續步驟