概览

本页面简要介绍了 Cloud DNS 的特性和功能。要开始使用 Cloud DNS,请参阅快速入门

简介

Cloud DNS 是一种高性能、高弹性的全球域名系统 (DNS) 服务,也是将您的域名发布到全球 DNS 的一种经济实惠的方式。

概念

DNS 是一个分布式分层数据库,可供您存储 IP 地址和其他数据,以及按名称查找这些内容。借助 Cloud DNS,您可以在 DNS 中发布地区和记录,而无需管理自己的 DNS 服务器和软件。

常规 DNS 概念

如需常规 DNS 术语的列表,请参阅 RFC 7719

Cloud DNS 提供公开和专用的托管 DNS 地区。公开地区在公共互联网上可见,而专用地区仅在您指定的一个或多个 VPC 网络中可见。

使用专用地区可以创建水平分割 DNS 配置,因为您可以针对您的 VPC 网络创建一个带有不同 DNS 记录集的专用地区。

Cloud DNS 概念

Cloud DNS API 是围绕项目、托管地区、记录集和记录集更改而构建的。

项目
您可以将 Google Cloud Platform Console 项目作为一个资源容器,也可以将其作为一个访问权限控制网域,还可以将其作为供配置和汇总帐单的地方。每个 Cloud DNS 资源都位于项目中,每项 Cloud DNS 操作都必须指定要使用的项目。
托管地区
托管地区会容纳具有相同 DNS 名称后缀(例如 example.com)的 DNS 记录。一个项目可以有多个托管地区,但这些地区必须分别采用独一无二的名称。在 Cloud DNS 中,托管地区是对 DNS 地区建模的资源。托管地区中的所有记录都托管在由 Google 运营的同一域名服务器上。这些域名服务器会根据托管地区的配置方式响应针对该地区的 DNS 查询。一个项目可以包含多个托管地区。 每个托管地区的费用按该地区的存在时间每天累计。托管地区支持标签,您可以借助标签来整理您的帐单。如需了解如何管理地区内的记录,请参阅管理地区
公开地区

公开地区在互联网上可见。Cloud DNS 具有公开的权威域名服务器,它们可以响应任意位置对公开地区的查询。您可以在公开地区中创建 DNS 记录,以将您的服务发布到互联网上。例如,您可以在公开地区 example.com 中为您的公开网站 www.example.com 创建以下记录。

DNS 名称 类型 TTL(秒) 数据
www.example.com A 300 [public_ip_address]

创建公开地区时,Cloud DNS 会分配一组域名服务器。要使公开地区中的 DNS 记录可通过互联网解析,您必须在注册商处更新网域注册的域名服务器设置

专用地区

通过专用地区,您可以管理虚拟机、负载平衡器和其他 GCP 资源的自定义域名,而无需将底层 DNS 数据暴露给公共互联网。专用地区用于存放只能供您授权的一个或多个 VPC 网络查询的 DNS 记录。

专用地区只能供定义了该地区的同一项目中的资源查询。您授权的 VPC 网络必须位于专用地区所属的同一项目中。您可以通过设置与其他网络的 DNS 对等互连来替换此限制。

您可以在创建或更新专用地区时指定获得授权的 VPC 网络(可以查询您的专用地区)列表。只有授权网络才允许查询您的专用地区;如果您没有指定任何授权网络,则无法查询该专用地区。

您可以在共享 VPC 中使用专用地区。如需了解有关在共享 VPC 网络中使用专用地区的重要信息,请参阅本页面中的专用地区和共享 VPC

专用地区不支持 DNS 安全扩展 (DNSSEC)。

针对专用地区中 DNS 记录的请求必须通过元数据服务器 (169.254.169.254) 提交,该服务器是基于 Google 提供的映像创建的虚拟机的默认内部域名服务器。您可以从任何使用授权 VPC 网络的虚拟机向此域名服务器提交查询。

例如,您可以为 dev.gcp.example.com 创建一个专用地区,以此托管实验性应用的内部 DNS 记录。下表显示了该地区中的示例记录。数据库客户端可以使用其内部 DNS 名称(而不是其 IP 地址)连接到数据库服务器 (db-01.dev.gcp.example.com)。数据库客户端会使用虚拟机上的主机解析器解析此内部 DNS 名称,该解析器会将 DNS 查询提交到元数据服务器 (169.254.169.254)。元数据服务器充当递归解析器,用于对您的专用地区执行查询。

DNS 名称 类型 TTL(秒) 数据
db-01.dev.gcp.example.com A 5 10.128.1.35
instance-01.dev.gcp.example.com A 50 10.128.1.10
转发地区

转发地区是一种由 Cloud DNS 托管的专用地区,它会将对于该地区的请求发送至其转发目标的 IP 地址。如需了解详情,请参阅 DNS 转发

对等互连地区

对等互连地区是一种由 Cloud DNS 托管的专用地区,这些地区遵循另一个 VPC 网络的名称解析顺序,可用于解析此 VPC 网络中定义的名称。

地区操作

您对 Cloud DNS 托管地区所做的任何更改都会记录在操作集合中,该集合列出了托管地区更新(对说明、DNSSEC 状态或配置进行修改)。

注册商

域名注册商是一个管理互联网域名预留的组织。注册商必须经通用顶级网域 (gTLD) 域名注册管理机构或国家/地区代码顶级网域 (ccTLD) 域名注册管理机构认可。

内部 DNS

即便您不使用 Cloud DNS,GCP 也会自动为虚拟机创建内部 DNS 名称。如需详细了解内部 DNS,请参阅内部 DNS 文档

委派子地区

DNS 允许地区所有者使用 NS 记录将子网域委派给不同的域名服务器。解析器会按照这些记录,将对子网域的查询发送到委派中指定的目标域名服务器。

资源记录集集合

资源记录集集合包含构成托管地区的 DNS 记录的当前状态。您可以读取此集合,但不能直接对其进行修改。要修改托管地区中的资源记录集,您可以在更改集合中创建一个 Change 请求。资源记录集集合会立即反映您所做的全部更改。但是,在 API 中进行的更改要经过一段延迟才会在您的权威 DNS 服务器上生效。如需了解如何管理记录,请参阅管理记录

资源记录更改

如果要更改资源记录集集合,您需要提交一个包含添加或删除操作的 Change 请求。您可以通过一项原子化事务来执行批量添加和删除操作,使所做更改在各个权威 DNS 服务器中同时生效。

例如,如果您的 A 记录如下所示:

www  A  203.0.113.1 203.0.113.2

您运行了如下命令:

DEL  www  A  203.0.113.2
ADD  www  A  203.0.113.3

执行批量更改后,您的记录将如下所示:

www  A  203.0.113.1 203.0.113.3

ADD 和 DEL 同时发生。

SOA 序列号格式

随着使用 gcloud dns record-sets transaction 命令对地区记录集进行一次次事务性更改,在 Cloud DNS 托管地区中创建的 SOA 记录的序列号会单调递增。您可以随时将 SOA 记录的序列号手动更改为任意数字,但是,务必要包含 RFC 1912 中建议的 ISO 8601 格式的日期。例如,在以下 SOA 记录中:

ns-gcp-private.googledomains.com. cloud-dns-hostmaster.google.com. [serial number] 21600 3600 259200 300

您可以直接在 Google Cloud Platform Console 中更改序列号,只需将所需值输入记录的第三个空格分隔字段即可。

DNS 服务器政策

借助 DNS 服务器政策,您可以在带有入站转发功能的 VPC 网络中访问 GCP 提供的名称解析服务,或者通过出站转发功能更改 VPC 名称解析顺序

网域、子网域和委派

大多数子网域只是父网域托管地区中的记录。如果子网域是通过在其父网域的地区中创建 NS(域名服务器)记录委派的,则子网域还需要拥有自己的地区。 请先在 Cloud DNS 中为父网域创建托管地区,然后再为委托的子网域创建任何地区。即使父网域托管在其他 DNS 服务上也是如此。如果您有多个子网域地区,但没有创建父地区,那么日后若想创建父地区以将其迁移到 Cloud DNS,此过程可能会非常复杂

DNSSEC

域名系统安全扩展 (DNSSEC) 是一套针对 DNS 的互联网工程任务组 (IETF) 扩展,用于验证对域名查找的响应。DNSSEC 不会为这些查找提供隐私保护,但会阻止攻击者操控对 DNS 请求的响应或对该响应进行投毒攻击。

DNSKEY 集合

DNSKEY 集合包含用于对启用了 DNSSEC 的托管地区进行签名的 DNSKEY 记录的当前状态。您只能读取此集合;对 DNSKEY 的所有更改均由 Cloud DNS 完成。DNSKEY 集合包含网域注册商激活 DNSSEC 所需的全部信息。

VPC 名称解析顺序

每个 VPC 网络会为使用该网络的虚拟机实例提供 DNS 名称解析服务。当虚拟机使用其元数据服务器 (169.254.169.254) 作为域名服务器时,GCP 会按照以下顺序搜索 DNS 记录:

  1. 如果已为 VPC 网络配置 DNS 政策,并且该政策指定了用于出站转发的备用域名服务器,则 GCP 会将所有 DNS 查询只转发到该服务器。如需了解详情,请参阅使用备用域名服务器进行出站 DNS 转发
  2. GCP 利用最长后缀匹配原则按顺序查询以下 GCP 名称解析服务:
    • GCP 会查询已针对 VPC 网络授权的所有 Cloud DNS 托管专用转发地区,将请求发送到转发目标的 IP 地址。
    • GCP 会在已针对 VPC 网络授权的所有 Cloud DNS 托管专用地区中查询这些地区中的记录。
    • GCP 会搜索为项目自动创建的 Compute Engine 内部 DNS 记录。
  3. GCP 按照适当配置的起始授权机构 (SOA) 查询公开可用的地区,其中包括 Cloud DNS 公开地区。

在专用地区中使用 PTR 记录

RFC 1918 地址的 PTR 记录

根据 VPC 名称解析顺序中描述的最长前缀匹配原则,要对 RFC 1918 地址的自定义 PTR 记录执行反向查询,您必须创建一个至少与以下几项之一同样具体的 Cloud DNS 专用地区:

  • 10.in-addr.arpa.
  • 168.192.in-addr.arpa.
  • 16.172.in-addr.arpa.17.172.in-addr.arpa.31.172.in-addr.arpa.

如果您为 RFC 1918 地址创建了 Cloud DNS 专用地区,则您在该地区创建的虚拟机实例的自定义 PTR 记录会被 Compute Engine 内部 DNS 自动创建的 PTR 记录所替换。这是因为 Compute Engine 内部 DNS PTR 记录是在之前的、指定范围更窄的地区列表中创建的。

例如,假设您为 in-addr.arpa. 创建托管专用地区,针对 IP 地址为 10.1.1.1 的虚拟机实例提供以下 PTR 记录:

1.1.1.10.in-addr.arpa. -> test.example.domain

PTR 对 1.1.1.10.in-addr.arpa. 的查询将由更加具体的 10.in-addr.arpa. Compute Engine 内部 DNS 地区应答。系统将忽略您的 Cloud DNS 专用地区中针对 test.example.domain 的 PTR 记录。

要替换针对虚拟机自动创建的 Compute Engine 内部 DNS PTR 记录,请务必在至少和本部分给出的其中一个地区一样具体的专用地区中创建您的自定义 PTR 记录。例如,如果您在某个专用地区中为 10.in-addr.arpa. 创建以下 PTR 记录,则您的记录会替换自动生成的记录:

1.1.1.10.in-addr.arpa. -> test.example.domain

如果只需要替换一部分网络块,您还可以创建更加具体的反向 Cloud DNS 专用地区。例如,对于 IP 地址范围为 10.5.0.0/16 的虚拟机,您可以使用 5.10.in-addr.arpa. 的专用地区来保留 PTR 记录,以替换任何自动创建的 Compute Engine 内部 DNS PTR 记录。

非 RFC 1918 地址的 PTR 记录

非 RFC 1918 地址的 PTR 记录与系统自动创建的 Compute Engine 内部 DNS PTR 记录不冲突。

根据 VPC 名称解析顺序,在执行查询时,系统会优先查询专用地区,然后才查询互联网上的公开可用地区。

例如,假设在公共互联网上,查询 PTR IN 2.2.0.192.in-addr.arpa 时会返回 example.com,但您希望为一个或多个 VPC 网络中的虚拟机实例替换此设置。为此,您可以创建 DNS 名称为 in-addr.arpa 的专用地区,并向其添加以下 PTR 记录:

2.2.0.192.in-addr.arpa -> test.com

位于 VPC 网络中的虚拟机获得在此专用地区中查询的授权后,在查询 PTR IN 2.2.0.192.in-addr.arpa 时,它们将收到响应 test.com(而非 example.com)。

在公共地区中使用 PTR 记录

要在 Cloud DNS 公共地区中查询非 RFC 1918 地址,您必须将由 root 用户委派的 in-addr.arpa 空间中对应于您的 IP 块的部分委派给 Cloud DNS 域名服务器。

要详细了解配置反向 DNS 的常规信息,请参见此处。但请注意,配置反向 DNS 的具体步骤根据注册表运营商的不同而有所不同。

支持的 DNS 记录类型

Cloud DNS 支持以下类型的记录:

记录类型 说明
A

地址记录,用于将主机名映射到其 IPv4 地址。

AAAA

IPv6 地址记录,用于将主机名映射到其 IPv6 地址。

CAA

证书授权机构 (CA) 授权,用于指定允许哪些 CA 为网域创建证书。

CNAME

规范名称记录,用于指定别名。
Cloud DNS 不支持跨不同的托管专用地区以递归方式解析 CNAME(CNAME 循环)。如需了解详情,请参阅问题排查

IPSECKEY

支持 IPSEC 的客户端的 IPSEC 隧道网关数据和公钥,用于实现随机加密

MX

邮件交换记录,用于将请求路由到邮件服务器。

NAPTR

域名授权机构指针记录(由 RFC 3403 定义)。

NS

域名服务器记录,用于将 DNS 地区委托给权威服务器。

PTR

指针记录,通常用于反向 DNS 查找。

SOA

起始授权机构记录,用于指定有关 DNS 地区的权威信息。创建托管地区时,系统会为您创建一条 SOA 资源记录。您可以根据需要修改此记录(例如,您可以将序列号更改为任意数字以支持基于日期的版本控制)。

SPF

发件人政策框架记录,此记录类型已被弃用,以前用于电子邮件验证系统(请改用 TXT 记录)。

SRV

服务定位器记录,用于某些 IP 语音、即时消息传递协议和其他应用。

SSHFP

SSH 客户端的 SSH 指纹,用于验证 SSH 服务器的公钥

TLSA

TLS 客户端的 TLS 身份验证记录,用于验证 X.509 服务器证书

TXT

文本记录,可包含任意文本,也可用于定义机器能识别的数据,例如安全或滥用行为防范信息。TXT 记录可以包含一个或多个文本字符串;每个字符串的最大长度为 255 个字符。邮件代理和其他软件代理将会把多个字符串连接在一起。请用引号括起每个字符串。例如:


"Hello world" "Bye world"

管理记录介绍如何使用 DNS 记录。

通配符 DNS 记录

NS 记录外,其他所有记录类型都支持通配符记录。

DNSSEC

Cloud DNS 支持托管 DNSSEC,可保护您的网域免遭欺骗攻击和缓存中毒攻击。当您使用像 Google 公共 DNS 之类的验证解析器时,DNSSEC 会为网域查找提供增强式身份验证(但不会加密)。

您可以使用以下命令为托管地区启用 DNSSEC:

gcloud dns managed-zones update my-zone --dnssec-state on

新创建的地区也可以启用 DNSSEC:

gcloud dns managed-zones create my-zone \
    --description "Signed Zone" --dns-name myzone.example --dnssec-state=on

如果默认设置不适合您的部署,则还可以指定许多 DNSSEC 参数。

DNS 转发

您可以在非 GCP 域名服务器和 GCP 内部域名服务器之间设置 DNS 转发。通过配置双向转发功能,您的 VPC 网络中的实例可以在本地网络或多云网络中查询主机的地址,而关联网络上的主机也可以在您的 VPC 网络中查询资源的地址。

GCP 通过以下方式支持 DNS 转发:

  • VPC 网络利用 DNS 服务器政策支持入站和出站 DNS 转发。入站请求必须来自通过 Cloud VPN 隧道或 Cloud Interconnect 连接至 VPC 的网络中的系统,如本地数据中心。

  • Cloud DNS 专用托管地区通过转发地区支持出站 DNS 转发。

以下示例展示了两个已配置 DNS 转发功能的 VPC 网络(proddev):

使用本地 DNS 服务器进行 DNS 转发(点击可放大)
使用本地 DNS 服务器进行 DNS 转发(点击可放大)
  • dev 网络使用动态路由通过 Cloud VPN 隧道连接到位于欧洲的本地数据中心。
  • prod 网络使用动态路由通过 Cloud VPN 隧道连接到位于亚洲、欧洲和美国的本地数据中心。
  • 所有网络均已配置为使用全局动态路由
  • 所有三个数据中心相互连接。每个本地网络和 VPC 网络使用的 IP 地址是 RFC 1918 IP 地址,这些地址不重叠。
  • 本地 BIND 服务器位于各个本地数据中心,这些域名服务器以冗余的方式进行配置,用于为 corp.example.com 地区提供服务。
  • 您已为 devprod Cloud VPN 网络创建 DNS 政策,以启用通往本地域名服务器的出站转发功能。
  • GCP 中的虚拟机使用其元数据服务器 (169.254.169.254) 解析 GCP 内部 DNS、devprod 网络各自的任何授权 Cloud DNS 专用地区、公开 DNS 地区和您的本地 corp.example.com 地区。

DNS 服务器政策

DNS 服务器政策允许您为 VPC 网络配置入站和出站 DNS 转发功能。每个 VPC 网络可以应用一项 DNS 服务器政策。

如需查看分步说明,请参阅使用 DNS 服务器政策

入站 DNS 转发

每个 VPC 网络会为使用该网络的虚拟机实例提供 DNS 名称解析服务。如果虚拟机使用其元数据服务器 (169.254.169.254) 作为域名服务器,GCP 会按照 VPC 名称解析顺序搜索 DNS 记录。

默认情况下,VPC 网络的名称解析服务在该网络以外不可用。您可以创建 DNS 政策以启用通往 VPC 网络的入站 DNS 转发功能,从而使通过 Cloud VPN 或 Cloud Interconnect 连接的本地网络中的系统可以使用该服务。启用后,已连接网络中的系统可以按顺序查询您的 VPC 网络中的内部 IP 地址,以利用其名称解析服务。

如需了解如何配置 DNS 政策以允许通往您的 VPC 网络的入站转发功能 ,请参阅创建用于启用入站 DNS 转发功能的 DNS 政策。配置后,GCP 会在您的 VPC 网络子网中(区域中)分配内部 IP 地址,以充当入站 DNS 请求的代理。您可以指定一个区域,也可以让 GCP 自动选择一个区域。入站 DNS 转发功能的每个 DNS 政策会为入站请求分配一个代理 IP 地址;然而,该 IP 地址只作为 VPC 网络名称解析服务的入口点。然后,您可以根据需要将您的本地域名服务器配置为转发到代理地址。

使用备用域名服务器进行出站 DNS 转发

您可以通过创建用于指定备用域名服务器列表的 DNS 政策来更改 VPC 名称解析顺序。执行此操作后,GCP 将在备用域名服务器中查询 VPC 内的虚拟机使用元数据服务器 (169.254.169.254) 提交的所有 DNS 请求。

如需了解如何配置出站转发功能的 DNS 政策,请参阅创建用于启用备用域名服务器的 DNS 政策。如果您指定使用 RFC 1918 IP 地址的备用域名服务器,则这些 IP 地址必须是您的 VPC 网络中其他 GCP 虚拟机的内部 IP 地址,或者是使用 Cloud VPN 或 Cloud Interconnect 连接到您的 VPC 网络的本地网络中系统的内部 IP 地址。如果备用域名服务器是使用公共 IP 地址指定的,则这些服务器必须可通过互联网访问。

DNS 转发地区

除了备用域名服务器,通过定义转发地区可获得另一种形式的出站 DNS 转发。该方法与设置专用地区类似,因为转发地区与 DNS 名称相关联,并且可以绑定到多个网络。但是,转发地区不包含任何记录。转发地区的所有匹配查询将改为转发到一组目标 DNS 服务器。与备用域名服务器一样,目标是 IP 地址列表。

系统会尝试通过所有目标域名服务器解析名称。在上方示例中,匹配的查询转发到所有 172.16.1.28172.16.4.34172.16.8.50 或者其中一部分。请注意,考虑到服务器的响应能力和不断变化的网络状况,系统可能会更改解析策略。

当多个转发地区的转发条件相互重叠时,与查询最为匹配的地区优先于其他地区。例如,假设 DNS 服务器包含三个转发地区:

  • 转发地区 1:onprem.example.com,目标:172.16.8.40
  • 转发地区 2:dev.onprem.example.com,目标:172.16.8.50
  • 转发地区 3:prod.onprem.example.com,目标:172.16.8.60

mysvc.onprem.example.com 的查询根据地区 1 转发到 172.16.8.40;对 mysvc.dev.onprem.example.com 的查询根据地区 2 转发到 172.16.8.50;对 mysvc.prod.onprem.example.com 的查询根据地区 3 转发到 172.16.8.60

如需相关说明,请参阅创建转发地区

DNS 对等互连

借助 DNS 对等互连功能,您可以将对于一个地区的命名空间内记录的请求发送至另一个 VPC 网络。

要提供 DNS 对等互连功能,您必须创建一个 Cloud DNS 对等互连地区,并将其配置为在包含该地区命名空间的记录的 VPC 网络内执行 DNS 查找。DNS 对等互连地区从中执行查找的 VPC 网络就称为 DNS 生产者网络

要使用 DNS 对等互连功能,您必须授权网络使用对等互连地区。经授权可以使用对等互连地区的 VPC 网络称为 DNS 使用者网络

获得授权后,DNS 使用者网络中的 GCP 资源即可查找该对等互连地区的命名空间内的记录,就像这些资源位于 DNS 生产者网络中一样。在对等互连地区的命名空间中查找记录时,需要遵循 DNS 生产者网络的名称解析顺序。因此,DNS 使用者网络中的 GCP 资源可以在地区命名空间内查找来自 DNS 生产者网络中如下来源的记录:

  • 由 DNS 生产者网络授权使用的 Cloud DNS 托管专用地区
  • 由 DNS 生产者网络授权使用的 Cloud DNS 托管转发地区
  • DNS 生产者网络中的 Compute Engine 内部 DNS 名称
  • 备用域名服务器(如果已在 DNS 生产者网络中配置出站 DNS 政策)

配置 DNS 对等互连时请注意以下几点:

  • DNS 对等互连是一种单向关系。它允许 DNS 使用者网络中的 GCP 资源在对等互连地区的命名空间内查找记录,就像这些 GCP 资源位于 DNS 生产者网络中一样。
  • DNS 生产者网络与 DNS 使用者网络必须均为 GCP VPC 网络。
  • DNS 对等互连和 VPC 网络对等互连是不同的服务。DNS 对等互连可与 VPC 网络对等互连结合使用,但 VPC 网络对等互连并非使用 DNS 对等互连的前提条件。

要创建对等互连地区,您必须具有包含 DNS 生产者网络的项目的 DNS Peer IAM 角色。

使用场景

SaaS 示例

某 SaaS 提供商(生产者)希望为其 SaaS 客户(使用者)提供访问托管在对等互连网络中的服务的权限。生产者会创建一个托管相应服务的网络,然后将该网络与使用者网络对等互连。生产者还希望提供使用者用来访问服务的 DNS 名称。

使用者可以向生产者授予使用服务帐号的权限,生产者可以使用该服务帐号在使用者网络中创建对等互连地区。生产者还会在其网络中向该服务帐号授予 dns.peer 角色,以便来自对等互连地区的请求可以发送到解析器地区。或者,生产者可以向使用者说明如何执行正确的设置。

组织内部设置

您可以授权 Cloud DNS 托管的专用地区供同一项目内的多个 VPC 网络使用。但是,您可能需要在组织内的多个项目之间共享一个 DNS 地区。

为了满足这项需求,您可以利用 DNS 对等互连:创建单一托管式专用地区,并将其授权给一个生产者网络。随后,为授权给不同项目内各使用者网络的相同命名空间创建足够数量的对等互连地区。将各对等互连地区配置为使用相同的生产者网络,从而保证使用者网络中的 GCP 资源能够遵循生产者网络的名称解析顺序。这让这些 GCP 资源能够解析授权给生产者网络中任何托管专用地区的命名空间内的记录。

关于对等互连地区的后续步骤

如需了解相关说明,请参阅配置对等互连地区

专用地区和共享 VPC

要将专用地区与共享 VPC 一起使用,您必须在宿主项目中创建专用地区,并且必须将相应的共享 VPC 网络添加到该地区的授权网络列表中。

重叠地区

一个项目可以有多个托管地区。如果一个地区的来源域名与另一个地区的来源相同,或者前者是后者的子网域,那么这两个地区彼此重叠。例如,dev.gcp.example.com 和 gcp.example.com 即为重叠地区。

同一 Cloud DNS 域名服务器上不得存在重叠的公开地区。创建重叠地区时,Cloud DNS 会尝试将这些地区放在不同的域名服务器上。如果此操作不可行,则将无法创建重叠地区。

公开地区与专用地区之间可以重叠。

位于不同 VPC 网络范围内的专用地区可以彼此重叠。例如,两个 VPC 网络在地区 gcp.example.com 中可以分别包含一个名为 database.gcp.example.com 的数据库虚拟机。根据为各个 VPC 网络定义的地区记录,对 database.gcp.example.com 的查询将会收到不同的响应。如需了解详情,请参阅水平分割 DNS

具有重叠地区的查询解析

有权通过同一 VPC 网络访问的两个专用地区不能具有相同的来源,除非一个地区是另一个地区的子网域。元数据服务器利用最长后缀匹配原则来决定从哪个来源查询给定地区中的记录。

以下示例说明了查询 DNS 记录时元数据服务器使用的顺序。对于每个示例,假设您已创建两个专用地区(gcp.example.comdev.gcp.example.com),并且已授权通过同一 VPC 网络访问它们。然后,GCP 处理来自 VPC 网络中虚拟机的 DNS 查询:

  • 元数据服务器使用公开域名服务器解析 myapp.example.com,因为 example.com 没有专用地区。
  • 元数据服务器使用专用地区 gcp.example.com 解析 myapp.gcp.example.com,因为 gcp.example.com 是所请求的 DNS 记录和可用专用地区之间的最长公共后缀。如果 gcp.example.com 专用地区中未定义 myapp.gcp.example.com 的记录,则系统会返回 NXDOMAIN(即使公开域名服务器中已定义 myapp.gcp.example.com 的记录也是如此)。
  • 同样,对 myapp.dev.gcp.example.com 的查询会根据专用地区 dev.gcp.example.com 中的记录进行解析。如果 dev.gcp.example.com 地区中没有 myapp.dev.gcp.example.com 的记录,则系统会返回 NXDOMAIN(即使另一个专用或公开地区中存在 myapp.dev.gcp.example.com 的记录也是如此)。
  • myapp.prod.gcp.example.com 的查询会根据专用地区 gcp.example.com 中的记录进行解析,因为 gcp.example.com 是所请求的 DNS 记录和可用专用地区之间的最长公共后缀。

水平分割 DNS

您可以在水平分割 DNS 配置中使用公开地区和专用地区的组合。在专用地区中,当查询来自授权 VPC 中的虚拟机时,您可以为针对同一记录的查询定义不同响应。如果您的开发、公司和生产 VPC 网络各不相同,水平分割 DNS 非常有用:

  • 您可以定义专用地区,并授权通过开发 VPC 网络进行访问,以使该网络中虚拟机对该地区中 DNS 记录的查询定向到同一网络中的其他虚拟机。
  • 您可以定义第二个专用地区,用于以不同应答处理相同的 DNS 记录(名称),授权通过公司网络进行访问。
  • 您可以定义第三个公开地区,用于以适合生产环境的相应公开应答处理相同的 DNS 记录。

例如,假设您为 gcp.example.com 创建了公开地区和专用地区,您已将 gcp.example.com 的注册商配置为使用 Cloud DNS 域名服务器,以使您的公开地区可通过互联网访问,并且您已授权通过您的 VPC 网络访问专用地区。

在专用地区中,您创建一条记录:

DNS 名称 类型 TTL(秒) 数据
foo.gcp.example.com A 5 10.128.1.35

在公开地区中,您创建两条记录:

DNS 名称 类型 TTL(秒) 数据
foo.gcp.example.com A 5 104.198.6.142
bar.gcp.example.com A 50 104.198.7.145

以下示例说明了如何解析对 DNS 记录的查询:

  • 来自您的 VPC 网络中虚拟机的 foo.gcp.example.com 查询返回 10.128.1.35
  • 来自互联网的 foo.gcp.example.com 查询返回 104.198.6.142
  • 来自您的 VPC 网络中虚拟机的 bar.gcp.example.com 查询返回 NXDOMAIN 错误,因为专用地区 gcp.example.com 中没有 bar.gcp.example.com 的记录。
  • 来自互联网的 bar.gcp.example.com 查询会返回 104.198.7.145

访问权限控制

常规访问权限控制

您可以在 Google Cloud Platform Console 的“IAM 和管理”页面上管理可以更改 DNS 记录的用户。要授权用户进行更改,您必须在 GCP Console 的“权限”部分中将其列为 editorowner。查看者权限级别授予对 Cloud DNS 记录的只读访问权限。

这些权限还适用于您在管理 DNS 服务时使用的服务帐号。

针对托管地区的访问权限控制

具有项目所有者或项目编辑者角色的用户可以管理或查看其所管理的特定项目中的托管地区。

具有 DNS 管理员或 DNS 读取者角色的用户可以管理或查看其有权访问的所有项目中的托管地区。

项目所有者、编辑者、DNS 管理员和读取者可以查看当前项目中任何 VPC 网络采用的专用地区列表。

性能和时间

Cloud DNS 使用 Anycast 从全球多个位置为您的托管地区提供服务,以实现高可用性。请求会自动路由到最近的位置,从而为用户减少延迟,并提升权威名称查找性能。

传播更改

更改将分两部分进行传播。首先,您通过 API 或命令行工具发送的更改必须推送到 Cloud DNS 的权威 DNS 服务器。其次,DNS 解析器必须在其缓存的记录过期时拾取这些更改。

DNS 解析器的缓存通过您为记录设置的生存时间 (TTL) 值控制,该值以秒为单位指定。例如,如果将 TTL 值设置为 86400(即 24 小时内的秒数),这就指示 DNS 解析器将记录缓存 24 小时。某些 DNS 解析器会忽略 TTL 值,或使用自己的值来延迟记录的完整传播。

如果要对服务进行短暂更改,则可能需要在进行更改之前将 TTL 更改为较短的值。这种方法可以帮助缩短缓存期,并确保更快地切换到新的记录设置。更改后,您可以将值改回其先前的 TTL 值,以减少 DNS 解析器上的负载。

后续步骤

要开始使用 Cloud DNS,请参阅快速入门

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
Cloud DNS 文档