DNS 服务器政策

借助 DNS 服务器政策,您可以配置在为 Google Cloud 资源解析域名时使用哪些 DNS 服务器。您可以使用 DNS 服务器政策来控制特定虚拟私有云 (VPC) 网络中的 DNS 解析。DNS 服务器政策指定入站 DNS 转发和/或出站 DNS 转发。入站 DNS 服务器政策允许入站 DNS 转发,而出站 DNS 服务器政策是实现出站 DNS 转发的一种方法。

您还可以配置 DNS64预览版),以便让仅支持 IPv6 的虚拟机实例(预览版)与仅支持 IPv4 的目标进行通信。

仅限 IPv6 的 VPC 子网(预览版)不支持入站 DNS 服务器政策。不过,您可以为仅 IPv6 的虚拟机实例配置出站 DNS 服务器政策(预览版)。

入站服务器政策

每个 VPC 网络都会为具有已连接到 VPC 网络的网络接口 (vNIC) 的虚拟机 (VM) 实例提供 Cloud DNS 名称解析服务。如果虚拟机使用其元数据服务器 (169.254.169.254) 作为域名服务器, Google Cloud 则会按照 VPC 网络名称解析顺序搜索 Cloud DNS 资源。

如需让 VPC 网络的名称解析服务可供通过 Cloud VPN 隧道、Cloud Interconnect VLAN 连接或路由器设备连接到 VPC 网络的本地网络使用,您可以使用入站服务器政策

创建入站服务器政策时,Cloud DNS 会在应用服务器政策的 VPC 网络中创建入站服务器政策入口点。入站服务器政策入口点是从适用 VPC 网络中每个子网的主要 IPv4 地址范围获取的内部 IPv4 地址,但具有特定 --purpose 数据的子网除外,例如某些负载均衡器的仅代理子网以及 Cloud NAT 用于 Private NAT 的子网。

例如,如果您的 VPC 网络包含同一区域中的两个子网和另一个区域中的第三个子网,则在您为 VPC 网络配置入站服务器政策时,Cloud DNS 会将总共三个 IPv4 地址用作入站服务器政策入口点,每个子网一个。

如需了解如何为 VPC 创建入站服务器政策,请参阅创建入站服务器政策

入站查询的网络和区域

如需处理发送到入站服务器政策入口点的 DNS 查询,Cloud DNS 会将查询与 VPC 网络和区域相关联:

  • DNS 查询的关联 VPC 网络是包含 Cloud VPN 隧道、Cloud Interconnect VLAN 连接或路由器设备的网络接口的 VPC 网络,该路由器设备接收 DNS 查询的数据包。

    • Google 建议您在连接到本地网络的 VPC 网络中创建入站服务器政策。这样,入站服务器政策入口点就位于与连接到本地网络的 Cloud VPN 隧道、Cloud Interconnect VLAN 连接或路由器设备位于同一 VPC 网络中。

    • 本地网络可以向其他 VPC 网络中的入站服务器政策入口点发送查询,例如,如果包含 Cloud VPN 隧道、Cloud Interconnect VLAN 连接或连接到本地网络的路由器设备的 VPC 网络也使用 VPC 网络对等互连连接到其他 VPC 网络。不过,我们不建议使用此配置,因为 DNS 查询的关联 VPC 网络与包含入站服务器政策入口点的 VPC 网络不匹配,这意味着无法使用包含入站服务器政策的 VPC 网络中的 Cloud DNS 专用区域和响应政策解析 DNS 查询。为避免混淆,我们建议您改为执行以下配置步骤:

      1. 在 VPC 网络中创建入站服务器政策,该网络使用 Cloud VPN 隧道、Cloud Interconnect VLAN 连接或路由器设备连接到本地网络。
      2. 配置本地系统,以将 DNS 查询发送到上一步中配置的入站服务器政策入口点。
      3. 配置为连接到本地网络的 VPC 网络授权的 Cloud DNS 资源。请使用以下一种或多种方法:

        • 将连接到本地网络的 VPC 网络添加到已为其他 VPC 网络授权的 Cloud DNS 专用区域的授权网络列表中:如果 Cloud DNS 专用区域和连接到本地网络的 VPC 网络位于同一组织的不同项目中,请在授权网络时使用完整的网络网址。如需了解详情,请参阅设置跨项目绑定
        • Cloud DNS 对等互连区域(针对连接到本地网络的 VPC 网络授权):将对等互连区域的目标网络设置为其他 VPC 网络。连接到本地网络的 VPC 网络是否使用 VPC 网络对等互连连接到对等互连区域的目标 VPC 网络并不重要,因为 Cloud DNS 对等互连区域不依赖于 VPC 网络对等互连来实现网络连接。
  • DNS 查询的关联区域始终是包含 Cloud VPN 隧道、Cloud Interconnect VLAN 连接或接收 DNS 查询数据包的路由器设备的网络接口的区域,而不是包含入站服务器政策入口点的子网的区域。

    • 例如,如果 DNS 查询的数据包使用位于 us-east1 区域的 Cloud VPN 隧道进入 VPC 网络,并被发送到 us-west1 区域的入站服务器政策入口点,则 DNS 查询的关联区域为 us-east1
    • 最佳做法是,将 DNS 查询发送到与 Cloud VPN 隧道、Cloud Interconnect VLAN 连接或路由器设备位于同一区域的入站服务器政策入口点的 IPv4 地址。
    • 如果您使用地理位置路由政策,DNS 查询关联的区域非常重要。如需了解详情,请参阅管理 DNS 路由政策和健康检查

入站服务器政策入口点路由通告

由于入站服务器政策入口点 IP 地址是从子网的主要 IPv4 地址范围中获取的,因此当 Cloud VPN 隧道、Cloud Interconnect VLAN 连接或路由器设备的边界网关协议 (BGP) 会话配置为使用 Cloud Router 路由器默认通告模式时,Cloud Router 路由器会通告这些 IP 地址。如果您使用 Cloud Router 路由器自定义通告模式,还可以通过以下任一方式配置 BGP 会话以通告入站服务器政策入口点 IP 地址:

  • 除了自定义前缀之外,您还会通告子网 IP 地址范围。
  • 您在自定义前缀通告中添加了入站服务器政策入口点 IP 地址。

出站服务器政策

您可以通过创建指定备用域名服务器列表的出站服务器政策来修改 VPC 网络的 Cloud DNS 名称解析顺序。如果虚拟机使用其元数据服务器 169.254.169.254 作为域名服务器,并且您为 VPC 网络指定了备用域名服务器,Cloud DNS 会将所有查询发送到备用域名服务器,除非查询与 Google Kubernetes Engine 集群范围响应政策或 GKE 集群范围专用区域匹配。

如果出站服务器政策中存在两个或更多个备用域名服务器,Cloud DNS 会对备用域名服务器进行排名并对其进行查询,如 VPC 名称解析顺序的第一步所述。 重要提示:请仔细查看 VPC 网络解析顺序。使用备用域名服务器会停用许多 Cloud DNS 功能的解析,并且还可能会影响公开 DNS 查询的解析,具体取决于备用域名服务器的配置。如需详细了解其他出站 DNS 转发策略,请参阅 Cloud DNS 概览中的 DNS 转发方法。如需了解如何创建出站服务器政策,请参阅创建出站服务器政策

备用域名服务器类型、路由方法和地址

Cloud DNS 支持三种类型的备用域名服务器,并提供标准或专用路由方法以用于连接。

备用域名服务器类型 标准路由支持 专用路由支持 查询来源地址范围

类型 1 域名服务器

定义出站服务器政策的同一 VPC 网络中的 Google Cloud 虚拟机的内部 IP 地址

仅限 RFC 1918 IP 地址 - 流量始终通过获得授权的 VPC 网络进行路由。 任何内部 IP 地址,例如 RFC 1918 专用地址、非 RFC 1918 专用 IP 地址或者以不公开方式重用的外部 IP 地址,但禁止使用的备用域名服务器 IP 地址除外 - 流量始终通过授权 VPC 网络路由。 35.199.192.0/19

类型 2 域名服务器

本地系统的 IP 地址,该系统使用 Cloud VPN 或 Cloud Interconnect 连接到具有出站服务器政策的 VPC 网络。

仅限 RFC 1918 IP 地址 - 流量始终通过获得授权的 VPC 网络进行路由。 任何内部 IP 地址,例如 RFC 1918 专用地址、非 RFC 1918 专用 IP 地址或者以不公开方式重用的外部 IP 地址,但禁止使用的备用域名服务器 IP 地址除外 - 流量始终通过授权 VPC 网络路由。 35.199.192.0/19

类型 3 域名服务器

可供互联网访问的 DNS 域名服务器的外部 IP 地址或 Google Cloud 资源的外部 IP 地址,例如,另一个 VPC 网络中虚拟机的外部 IP 地址。

仅限通过互联网路由的外部 IP 地址 - 流量始终路由到互联网或 Google Cloud 资源的外部 IP 地址。 专用路由不受支持。 Google 公共 DNS 来源范围

Cloud DNS 提供了两种路由方法来查询备用域名服务器:

  • 标准路由。Cloud DNS 会使用备用域名服务器的 IP 地址确定其类型,然后使用 专用 或 公共路由:

    • 如果备用域名服务器是 RFC 1918 IP 地址,则 Cloud DNS 会将该域名服务器分类为类型 1类型 2 域名服务器,并通过获得授权的 VPC 网络路由查询(专用路由)。
    • 如果备用域名服务器不是 RFC 1918 IP 地址,则 Cloud DNS 会将该域名服务器分类为类型 3,并要求备用域名服务器可从互联网访问。Cloud DNS 通过互联网路由查询(公共路由)。
  • 专用路由。Cloud DNS 会将备用域名服务器视为类型 1类型 2。Cloud DNS 始终通过获得授权的 VPC 网络路由流量,无论备用域名服务器的 IP 地址是什么(无论是否是 RFC 1918)。

禁止使用的备用域名服务器 IP 地址

您不能将以下 IP 地址用于 Cloud DNS 备用域名服务器:

  • 169.254.0.0/16
  • 192.0.0.0/24
  • 192.0.2.0/24
  • 192.88.99.0/24
  • 198.51.100.0/24
  • 203.0.113.0/24
  • 224.0.0.0/4
  • 240.0.0.0/4
  • ::1/128
  • ::/128
  • 2001:db8::/32
  • fe80::/10
  • fec0::/10
  • ff00::/8

备用域名服务器网络要求

备用域名服务器的网络要求因备用域名服务器的类型而异。如需确定备用域名服务器的类型,请参阅备用域名服务器类型、路由方法和地址。然后,请参阅以下某个部分了解网络要求。

类型 1 备用域名服务器的网络要求

Cloud DNS 会将来源于 35.199.192.0/19 IP 地址范围的数据包发送到类型 1 备用域名服务器 IP 地址。Google Cloud 使用 VPC 网络中的本地子网路由为查询路由数据包。确保您未创建任何基于政策的路由,其目标包含类型 1 备用域名服务器 IP 地址。

如需允许在备用域名服务器虚拟机上接收数据包,您必须在防火墙政策中创建入站允许 VPC 防火墙规则或规则,并具有以下特征:

  • 目标:必须包含备用名称服务器虚拟机
  • 来源:35.199.192.0/19
  • 协议:TCPUDP
  • 端口:53

Cloud DNS 要求每个备用域名服务器将响应数据包发回查询发起位置的 35.199.192.0/19 中的 Cloud DNS IP 地址。响应数据包的来源必须与 Cloud DNS 向其发送原始查询的备用域名服务器的 IP 地址一致。如果响应来自意外的 IP 地址来源(例如,备用域名服务器可能会将查询转发到的其他域名服务器的 IP 地址),Cloud DNS 会忽略该响应。

类型 1 备用域名服务器向 35.199.192.0/19 发送响应数据包时,它会使用特殊路由路径

类型 2 备用域名服务器的网络要求

Cloud DNS 会将来源于 35.199.192.0/19 IP 地址范围的数据包发送到类型 2 备用域名服务器。Cloud DNS 依赖于出站服务器政策适用的 VPC 网络中以下类型的路由:

如需允许类型 2 备用域名服务器上的入站数据包,请务必配置适用于备用域名服务器以及具有防火墙功能的任何相关本地网络设备的入站允许防火墙规则。有效的防火墙配置必须允许使用目标端口 5335.199.192.0/19 来源的 TCPUDP 协议。

Cloud DNS 要求每个备用域名服务器将响应数据包发回查询发起位置的 35.199.192.0/19 中的 Cloud DNS IP 地址。响应数据包的来源必须与 Cloud DNS 向其发送原始查询的备用域名服务器的 IP 地址一致。如果响应来自意外的 IP 地址来源(例如,备用域名服务器可能会将查询转发到的其他域名服务器的 IP 地址),Cloud DNS 会忽略该响应。

您的本地网络必须有到 35.199.192.0/19 目标的路由,其中下一个跃点是 Cloud VPN 隧道、Cloud Interconnect VLAN 连接或位于 Cloud DNS 发送查询的同一 VPC 网络和区域的 Cloud Router 路由器。只要下一个跃点满足这些网络和区域要求, Google Cloud 就不需要对称的返回路径。类型 2 备用域名服务器的响应不能使用以下任何下一个跃点进行路由:

  • 互联网上的下一个跃点
  • 位于与查询发起位置不同的 VPC 网络中的下一个跃点
  • 位于同一 VPC 网络中但位于与查询发起区域不同的区域的下一个跃点

如需在本地网络中配置 35.199.192.0/19 路由,请使用 Cloud Router 路由器自定义通告模式,并在将您的 VPC 网络连接到包含类型 2 备用域名服务器的本地网络的相关 Cloud VPN 隧道、Cloud Interconnect VLAN 连接或 Cloud Router 路由器的 BGP 会话中添加 35.199.192.0/19 作为自定义前缀。或者,您也可以在本地网络中配置等效的静态路由。

类型 3 备用域名服务器的网络要求

Cloud DNS 会将来源与 Google 公共 DNS 来源范围匹配的数据包发送到类型 3 备用域名服务器。Cloud DNS 使用公共路由,依赖于 VPC 网络中适用出站服务器政策的任何路由。

如需允许类型 3 备用域名服务器上的传入数据包,请确保适用于备用域名服务器的有效防火墙配置允许来自 Google 公共 DNS 来源范围的数据包。

后续步骤