名稱解析順序

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 會掃描所有叢集範圍私人代管區域,找出與查詢相符程度最高的記錄,並使用最長尾碼比對功能,在叢集範圍私人區域中尋找記錄。

    1. 如果與查詢相符程度最高的項目是叢集範圍私人區域的區域名稱,Cloud DNS 會使用該區域的記錄資料解析要求。

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

      • 來自轉送目標的回應。
      • 如果轉送目標未回應 Cloud DNS,會傳回 SERVFAIL 回應。
    3. 如果查詢與所有叢集範圍私人區域均不相符,Cloud DNS 會按照虛擬私有雲網路解析順序執行後續程序。

虛擬私有雲網路解析順序

  1. 使用虛擬私有雲網路替代名稱伺服器進行比對。如果虛擬私有雲網路具有傳出伺服器政策,Google Cloud 會將查詢轉送至該政策所定義的其中一個替代名稱伺服器,完成名稱解析程序。

    如果傳出伺服器政策中存在兩個以上的替代名稱伺服器,Cloud DNS 會使用內部演算法,將替代名稱伺服器排序。一開始所有替代名稱伺服器的排名均相同,成功回應率越高 (包括 NXDOMAIN 回應)「且」往返時間越短 (回應延遲時間最短) 的伺服器,排名就會越高。

    Cloud DNS 會將查詢傳送至替代名稱伺服器,並透過下列程序回傳回應。

    • 如果傳出伺服器政策中存在兩個以上的替代名稱伺服器,Cloud DNS 會先將查詢傳送至排名最高的替代名稱伺服器;如果 Cloud DNS「未」收到來自排名最高替代名稱伺服器的「任何」回應,則會將查詢傳送至排名次高的替代名稱伺服器。以此類推,Cloud DNS 會持續依遞減排名順序,查詢替代名稱伺服器,直到查詢完替代名稱伺服器清單上的所有伺服器為止。

    • 如果 Cloud DNS 收到來自替代名稱伺服器的回應,即會傳回該回應。回應內容包括 NXDOMAIN 回應。

    • 如果 Cloud DNS「未」收到來自傳出伺服器政策中「所有」替代名稱伺服器的回應,Cloud DNS 會合成 SERVFAIL 回應。如要排解替代名稱伺服器的連線問題,請參閱「替代名稱伺服器網路條件」。

    如果虛擬私有雲網路「沒有」傳出伺服器政策,Cloud DNS 會繼續執行下一個步驟。

  2. 使用虛擬私有雲網路範圍回應政策中的規則進行比對。Cloud DNS 會掃描所有適用的虛擬私有雲網路回應政策,找出 DNS 名稱屬性與查詢相符程度最高的規則。Cloud DNS 會使用最長尾碼比對功能,掃描虛擬私有雲網路範圍回應政策。

    1. 如果 Cloud DNS 找到相符的回應政策規則,「且」該規則提供本機資料,Cloud DNS 的回應會傳回本機資料,完成名稱解析程序。

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

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

  3. 比對虛擬私有雲網路範圍私人代管區域中的記錄。Cloud DNS 會掃描已取得虛擬私有雲網路授權的所有私人代管區域,找出與查詢相符程度最高的記錄,並使用最長尾碼比對功能來尋找記錄。

    1. 如果與查詢最相符的項目,是虛擬私有雲網路範圍私人區域的區域名稱,Cloud DNS 會使用該區域的記錄資料來解析要求。

      • 如果區域包含與查詢完全相符的記錄,Cloud DNS 會傳回該筆記錄的資料。
      • 如果區域不包含相符的記錄,Cloud DNS 會傳回 NXDOMAIN
    2. 如果與查詢最相符的項目,是虛擬私有雲網路範圍轉送區域的區域名稱,Cloud DNS 會將查詢轉送至其中一個轉送區域的轉送目標,完成名稱解析程序。Cloud DNS 會傳回下列其中一項回應。

      • 來自轉送目標的回應。
      • 如果轉送目標未回應 Cloud DNS,會傳回 SERVFAIL 回應。
    3. 如果與查詢最相符的項目,是虛擬私有雲網路範圍對接區域的名稱,Cloud DNS 會停止目前的名稱解析程序,並從對接區域的目標虛擬私有雲網路角度,開始新的名稱解析程序。

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

  4. 比對 Compute Engine 內部區域中的記錄。Cloud DNS 會掃描所有適用的 Compute Engine 內部 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 虛擬私有雲名稱解析順序的對接區域。

  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 和其子網域,由私人區域 static.example.com 回應,而這個區域已授權 vpc-a 使用。針對 example.com 的查詢會傳回網際網路回應。
    • vpc-a 上的 10.internal
    • peer.com,使用對接區域來查詢。

後續步驟