名称解析顺序

Cloud DNS 按照以下过程响应来自 Compute Engine 虚拟机 (VM) 实例和 Google Kubernetes Engine (GKE) 节点的查询。

对于 GKE 节点以外的 Compute Engine 虚拟机,Cloud DNS 按照 VPC 网络解析顺序来处理收到的查询。每个虚拟机都必须配置为使用元数据服务器 IP 地址 (169.254.169.254) 作为其域名服务器。

对于 GKE 节点:

  1. Cloud DNS 首先尝试使用集群级响应政策和专用区域来匹配查询。

  2. Cloud DNS 按照 VPC 网络解析顺序继续操作。

集群范围的响应政策和专用区域

  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 会返回以下响应之一。

      • 从转发目标收到的响应。
      • SERVFAIL 响应(如果转发目标不响应 Cloud DNS)。
    3. 如果查询与任何集群范围的专用区域都不匹配,Cloud DNS 将继续执行 VPC 网络解析顺序

VPC 网络解析顺序

  1. 使用 VPC 网络备用域名服务器进行匹配。如果 VPC 网络具有出站服务器政策,则 Google Cloud 会将查询转发到该政策中定义的某个备用域名服务器,以完成名称解析过程。

    如果出站服务器政策中存在两个或更多备用域名服务器,则 Cloud DNS 会使用内部算法对备用域名服务器进行排名。从排名相同开始,备用域名服务器的排名会随着成功响应率(包括 NXDOMAIN 响应)的较高和最短的往返时间(最低响应延迟时间)而增加。

    Cloud DNS 将查询发送到备用域名服务器,并使用以下过程返回响应。

    • 如果出站服务器政策中存在两个或多个备用域名服务器,则 Cloud DNS 会首先将查询发送到排名最高的备用域名服务器,然后将查询发送到排名第二的备用域名服务器(如果 Cloud DNS 没有从排名最高的备用域名服务器收到任何响应)。如果 Cloud DNS 未收到来自排名第二的备用域名服务器的任何响应,则 Cloud DNS 会继续按降序查询备用域名服务器,直到用尽备用域名服务器的列表。

    • 如果 Cloud DNS 收到来自备用域名服务器的响应,则 Cloud DNS 会返回该响应。响应包括 NXDOMAIN 响应。

    • 如果 Cloud DNS 没有收到来自出站服务器政策中所有备用域名服务器的响应,则 Cloud DNS 会合成 SERVFAIL 响应。如需排查备用域名服务器连接问题,请参阅备用域名服务器网络要求

    如果 VPC 网络没有出站服务器政策,则 Cloud DNS 会继续执行下一步。

  2. 使用 VPC 网络范围响应政策中的规则进行匹配。Cloud DNS 会扫描所有适用的 VPC 网络响应政策,以查找 DNS 名称属性尽可能与查询匹配的规则。Cloud DNS 使用最长后缀匹配来扫描 VPC 网络范围的响应政策。

    1. 如果 Cloud DNS 找到匹配的响应政策规则,并且该规则传送本地数据,则 Cloud DNS 会返回本地数据作为其响应,以完成域名解析过程。

    2. 如果 Cloud DNS 找到匹配的响应政策规则,并且该规则的行为绕过响应政策,则 Cloud DNS 会继续执行下一步。

    3. 如果 Cloud DNS 找不到匹配的响应政策,或者虚拟机或节点没有适用的 VPC 网络范围响应政策,则 Cloud DNS 会继续执行下一步。

  3. 匹配 VPC 网络级代管式专用区域中的记录。 Cloud DNS 会扫描授权 VPC 网络的所有托管专用地区,以查找与尽可能多的查询匹配的记录。Cloud DNS 使用最长后缀匹配来查找记录。

    1. 如果查询的最具体的匹配项是 VPC 网络范围内的专用地区的地区名称,则 Cloud DNS 会使用该地区的记录数据来解析请求。

      • 如果该区域包含与查询完全匹配的记录,则 Cloud DNS 会返回该记录的数据。
      • 如果该区域不包含匹配的记录,则 Cloud DNS 会返回 NXDOMAIN
    2. 如果查询的最具体的匹配项是 VPC 网络范围转发地区的地区名称,则 Cloud DNS 会将查询转发到转发地区的某个转发目标,以完成名称解析过程。Cloud DNS 返回以下响应之一。

      • 从转发目标收到的响应。
      • SERVFAIL 响应(如果转发目标不响应 Cloud DNS)。
    3. 如果查询的最具体的匹配项是 VPC 网络范围的对等互连区域的名称,则 Cloud DNS 会停止当前名称解析过程,并从对等互连区域的目标 VPC 网络的角度开始新的名称解析过程。

    如果查询与专用区域、转发区域或对等互连区域不匹配,Cloud DNS 会继续下一步。

  4. 匹配 Compute Engine 内部可用区中的记录。 Cloud DNS 会扫描所有适用的 Compute Engine 内部 DNS 区域,以查找与尽可能多的查询匹配的记录。Cloud DNS 使用最长后缀匹配来查找记录。

    1. 如果查询的最具体的匹配项是 Compute Engine 内部 DNS 名称,则 Cloud DNS 会返回虚拟机网络接口的内部 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 名称解析顺序 vpc-b 的对等互连区域。

  3. vpc-a 与任何出站服务器或响应政策无关联。

  4. cluster-a 有权查询名为 example.com 的专用地区。cluster-a 与任何出站服务器或响应政策也无关联。

  5. cluster-a 中的虚拟机可以查询:

    • example.com和儿童(包括 static.example.com)由由授权给 cluster-a 名为 example.com 的专用地区响应。
    • 10.internal 位于 vpc-a 上。
    • 通过使用对等互连地区的 peer.com
  6. 不在 cluster-a 中的虚拟机可以查询:

    • static.example.com 和子节点,由授权给 vpc-a 名为 static.example.com 的专用地区响应。对 example.com 的查询会返回互联网响应。
    • 10.internal 位于 vpc-a 上。
    • 通过使用对等互连地区的 peer.com

后续步骤