DNS 记录概览

本页面简要介绍了记录并列出了 Cloud DNS 支持的 DNS 记录类型,包括 Cloud DNS 自定义记录类型 ALIAS。

记录是 DNS 资源和域名之间的映射。每条 DNS 记录都有类型(名称和编号)、到期时间(存留时间)和特定类型的数据。

如需创建和管理资源记录集,请参阅 添加、更新和删除记录

别名记录

ALIAS 记录是 Cloud DNS 自定义记录类型,其行为类似于 CNAME 记录,但只能在区域顶层使用,并且仅响应地址记录(A 或 AAAA)查询。具体而言,ALIAS 记录类型会将别名域名映射到规范名称,并使用规范名称来查找应答。当顶层需要 CNAME 行为时,此记录类型非常有用。您不能将 CNAME 记录置于顶层,因为它不能与任何其他记录类型(包括区域顶层所需的 SOA 记录)共存。

ALIAS 记录特定于 Cloud DNS,并且绝不会向查询 Cloud DNS 区域的外部客户端公开。对于客户端,ALIAS 记录在 DNS 响应中显示为标准 A 或 AAAA 记录。 ALIAS 记录与 DNSSEC 不兼容,因此您无法在具有 ALIAS 记录的区域中启用 DNSSEC。

您可以像管理所有其他记录一样管理 ALIAS 记录。如需了解如何管理记录,请参阅管理记录

查询解析过程

别名记录仅适用于 Cloud DNS 公开区域。

对于 CNAME 记录,解析器负责解析规范名称。对于 ALIAS 记录,Cloud DNS 域名服务器会解析规范名称,并生成合成的 A 或 AAAA 记录以返回给解析器。合成的 A 或 AAAA 记录具有 ALIAS 记录的名称,以及通过解析 ALIAS 记录的目标找到的 IP 地址。Cloud DNS 域名服务器使用 Google 的可用递归解析器来解析别名记录。

如果别名目标解析为具有多个地址的资源记录集 (RRSet),Cloud DNS 会返回所有记录,但会随机排列这些记录,然后返回合成的地址记录。此过程与 Cloud DNS 处理来自自己的域名服务器的应答的方式相同。

在 ALIAS 记录目标解析期间,系统只会合成地址记录。ALIAS 记录的查询不会返回在解析别名记录的目标时找到的任何中间 CNAME 记录。在到达 ALIAS 记录之前通过 CNAME 追踪发现的 CNAME 记录会原样返回。如果 ALIAS 目标解析失败,即返回 NOERROR 以外的响应代码,则 Cloud DNS 域名服务器会向其客户端返回 SERVFAIL 响应。如果解析导致 NODATA 响应(即没有地址记录的 NOERROR 响应),则 Cloud DNS 域名服务器会返回 NODATA 响应。

在解析 ALIAS 记录目标时,Cloud DNS 不会使用客户端提供的 EDNS 客户端子网

存留时间 (TTL) 参数和缓存

随合成地址记录返回的 TTL 值是 ALIAS 记录配置的最小 TTL 值,也是解析 ALIAS 目标时遇到的 TTL 值中的最小值。使用此方法,返回的 TTL 可以小于 ALIAS 记录的配置 TTL,但永远不会大于配置的 TTL。

以下示例演示了如何为合成的地址记录确定 TTL。

假设在 Cloud DNS 代管区域中配置了以下记录:

example.com.    3600    SOA      ns.com.  admin.example.com. (...)
                86400   NS       ns.com.
                6000    ALIAS    test-cname.example.com.
test-cname      3000    CNAME    address.example.com.
address         5000    A        1.2.3.4

对此区域进行 example.com 的 A 记录查询会返回类似于以下内容的响应:

QUESTION SECTION
example.com.                  A

ANSWER SECTION
example.com.        3000      A      1.2.3.4

解析期间遇到的 TTL 为 6000(ALIAS 记录)、3000(CNAME 记录)和 5000(A 记录)。在这些 TTL 中,3000 是最小的,因此在合成的地址记录中返回此 TTL。

为简单起见,此示例展示了同一区域中的所有记录,但在不同区域间跳转的解析的 TTL 逻辑是相同的。

权威应答位

DNS 响应中的权威位基于链中的第一个名称(原始 qname),无论与该名称关联的数据是在服务器上找到还是通过 ALIAS 记录解析检索。

错误处理

为了解析 ALIAS 记录,Cloud DNS 会使用第三方权威域名服务器来确定 DNS 委托并检索外部托管的 DNS 数据。如果 Cloud DNS 无法解析 ALIAS 记录目标(ALIAS 目标解析导致错误 RCODE 值,例如 NXDOMAINREFUSED),则会返回 SERVFAIL 响应。例如,如果 ALIAS 目标不存在或其权威服务器无法访问,Cloud DNS 会返回 SERVFAIL

由于 SERVFAIL 提供的错误信息有限,因此 Cloud DNS 日志记录包含在 ALIAS 记录解析期间遇到的特定 RCODE 值,以帮助您排查错误。如需了解如何使用 Cloud DNS 日志记录,请参阅使用日志记录和监控功能

如果 ALIAS 目标解析导致 NODATA 响应(包含 NOERROR RCODE 的空响应),Cloud DNS 会返回 NODATAALIAS 记录同时匹配 AAAAA 查询,但 ALIAS 目标只能包含一种记录类型。这是预期行为,不会导致响应中出现错误 RCODE 值。

导入和导出记录

您可以在 BIND 区域文件或 YAML 文件中导入和导出记录。

ALIAS 记录类型不是标准 DNS 记录类型,因此 BIND 文件不支持 ALIAS 记录。虽然 Cloud DNS 能够识别这些条目,但其他与 BIND 兼容的 DNS 软件可能无法识别。

ALIAS 记录导出为特定于 Cloud DNS 的 YAML 文件,格式如下:

kind: dns#resourceRecordSet
name: DNS Name
rrdatas: RR Data
ttl: TTL
type: ALIAS

Cloud DNS 可以导入上述格式的 YAML 文件中的 ALIAS 记录。

安全性与隐私权

Cloud DNS 公开域名服务器可代表您解析 ALIAS 目标,但您必须确保正确配置了 ALIAS 目标;错误的 ALIAS 目标可能会导致您的公开记录无法正常使用,或者导致返回不需要的 IP 地址。

监控代管式区域

Cloud DNS 通过 Logging 提供对托管区域的所有查询的日志记录。DNS 查询日志中提供可选字段 alias_query_response_code,用于记录 ALIAS 名称解析的状态信息,因为 DNS 响应中不提供此信息。

如需了解详情,请参阅查看日志

仅当使用 ALIAS 记录解析查询时才会设置 alias_query_response_code。值 NoError 表示 ALIAS 记录已成功解析,任何其他值则表示错误。SERVFAIL 值可以表示以下任意问题:

  • 无法访问目标域名服务器
  • 在找到响应之前目标解析超时
  • DNSSEC 验证失败

日志条目中的 qtype 字段没有 ALIAS 选项。 如果使用 ALIAS 记录应答 A 或 AAAA 查询,则 qtype 字段将保留为 A 或 AAAA。

支持的 DNS 记录类型

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

适用的记录类型 Enter
A

主机的数字 IP 地址,采用 IPv4 点分十进制格式。 A 记录类型将 IPv4 地址映射到域名,并确定将域名请求定向到的目标位置,例如 192.0.2.91

AAAA

主机的数字 IP 地址,采用 IPv6 十六进制数字格式。`AAAA` (AAAA) 记录类型将 IPv6 地址映射到域名,并确定将域名请求定向到的目标位置,例如 2001:db8::8bd:1002AAAA

ALIAS预览版

别名记录(预览版),用于将 别名域名映射到区域顶层的规范名称。别名 记录也称为 ANAME 记录或 CNAME 展平。

您可以使用 gcloud CLI 或 Cloud DNS API 配置别名记录。您无法使用 控制台 Google Cloud 配置别名记录。

别名记录也称为 ANAME 记录或 CNAME 展平。

CAA

有权为此网域颁发证书的证书授权机构 ,例如 ca.example.net

创建 CAA 记录类型,以确保未经授权的 CA 不会向您的网域颁发证书。

CNAME

A 记录的 DNS 别名 - 例如 ftp.example.comwww.example.com 的 DNS 别名。在此示例中, ftp.example.com 是与 www.example.com 位于同一服务器中的服务。指向 ftp.example.com 的链接会收到 www.example.comA 记录。

您还可以使用 CNAME 记录类型指向完全不同的域名 - 例如 altostrat.comwww.example.com 的 DNS 别名。

有时,域名服务器会返回 CNAME 记录和 A 记录引用的 CNAME 值; 这种行为称为 CNAME 追踪

如果您在创建 CNAME 记录时遇到问题,请参阅 在不运行的专用地区中定义的 CNAME 记录

DNSKEY

解析器用于通过 ZSK 和 KSK 密钥来验证记录真实性的 DNSSEC 公钥。

例如,7200 IN DNSKEY 256 3 8 AwEAAarQO0FTE/l6LEKFlZllJIwXuLGd3q5d8S8NH+ntOeIMN81A5wAI

在此示例中,7200 是 TTL,256DNSKEY 标志的十进制值表示,3 是 DNSSEC 的协议指示符,8 是用于密钥的 RSA/SHA-256 加密算法。

您只能在处于 Transfer 状态且已启用 DNSSEC 的公开区域中添加此记录类型 。如需了解详情,请参阅 管理 DNSSEC 配置

DS

安全委派区域的 DNSSEC 密钥指纹。

例如,7200 IN DS 31523 5 1 c8761ba5defc26ac7b78e076d7c47fa9f86b9fba。 在此示例中,7200 是 TTL, 31523 是密钥标记,5 是算法, 以及 1 是摘要类型。

您只能在公开区域中添加此记录类型。除非您为委派区域启用(和激活)DNSSEC,否则此记录集类型不会为该区域激活 DNSSEC。默认情况下,区域不会启用 DNSSEC 。

HTTPS

HTTPS 服务绑定记录,允许来源指示 多个备用端点,每个端点都具有关联的参数。此 记录还会将 HTTP 重定向到 HTTPS。

例如,1 . alpn=h2, h3,其中 1 是服务优先级 (SvcPriority)(别名为 0,服务说明为 1-65535),. 是 TargetName(如果与所有者名称相同,则为“.”),alpn=h2, h3 是服务参数 (SvcParams)(由描述目标端点的键值对组成,以空格分隔)。

HTTPS 记录类型基于较通用的 SVCB 记录类型,并 使用相同的值格式。

IPSECKEY

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

例如,10 1 2 192.0.2.1 AQNRU3mG7TVTO2BkR47usntb102uFJtugbo6BSGvgqt== 其中 10 是优先级(值越小,优先级越高),1 是网关类型,2 是算法类型,192.0.2.1 是网关。

如需了解详情,请参阅 RFC 4025

MX

代表您的网域接收电子邮件的邮件交换服务器的偏好设置编号和 DNS 名称。

例如:1 mail.example.com.,其中 1 是偏好设置编号。

SMTP 服务器首选具有较低偏好设置编号的服务器,您可以输入的最低偏好设置编号为 0

您输入的 MX 记录必须以英文句点 (.) 结尾。

您可以创建多个具有不同优先级的记录 来配置备份邮件服务器,或者使用相同的优先级将负载分配到多个邮件服务器上。

例如,如需将邮件定向到您的 Google Workspace 账号, 请输入以下内容:1 SMTP.GOOGLE.COM.

NAPTR

用于映射动态委派发现系统 (DDDS) 应用所使用的统一资源名称 (URN) 的名称权威指针规则。DDDS 应用使用 NAPTR 记录类型来转换值或将一个值替换为另一个值以寻找 URN。

在示例中,100 10 "u" "sip+E2U" "!^.*$!sip:information@example.com!i ." 100 是必须处理 NAPTR 记录的顺序,10 是 指定记录具有相同 Order 值时的处理顺序的 Preference, "u" 是控制记录中字段的重写和解释方面的标志, ""sip+E2U 是服务, "!^.*$!sip:information@example.com!i" 是正则表达式 (RegEx), 其中包含一个替换表达式,该表达式应用于客户端持有的原始字符串,以构建下一个域名查找。最后, . 是替换,它是要查询的下一个域名, 具体取决于标志字段中找到的潜在值。

如需了解详情,请参阅 RFC 3403

NS

为您的网域或子网域提供 DNS 服务的权威域名服务器的 DNS 名称。您的 NS 记录必须与您的区域的域名服务器(例如 ns-1.example.com)匹配。

PTR

完全限定域名 (FQDN) 或映射到 IP 地址的网域规范名称,例如 server-1.example.com

PTR 记录类型通常用于反向查找。

SOA

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

例如, ns-cloud-c1.googledomains.com. cloud-dns-hostmaster.google.com 1 21600 3600 259200 300 其中 ns-cloud-c1.googledomains.com. 是 MNAME, cloud-dns-hostmaster.google.com 是 RNAME, 1 是 SERIAL,21600 是 REFRESH, 3600 是 RETRY,259200 是 EXPIRE,以及 300 是 MINIMUM。

如需了解详情,请参阅 RFC 1035

SPF

SPF 记录类型已弃用。请改用以 v=spf1 开头的 TXT 记录。SPF 类型的记录不被现代电子邮件软件使用。

SRV

用于指定特定服务的服务器位置(主机名和端口号) 的数据。

例如,0 1 587 mail.example.com,其中 0 是目标主机的优先级,1 是权重,而 587 是端口号。

如需了解详情,请参阅 RFC 2782

SSHFP

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

例如,2 1 123456789abcdef67890123456789abcdef67890 ,其中 2 是 SSH 服务器算法编号,1 是指纹类型编号, 123456789abcdef67890123456789abcdef67890 是指纹。

SVCB

服务绑定记录,允许逻辑服务指示 多个备用端点,每个端点都具有关联的参数。

例如,0 alias-target.example.com,其中 0 是服务优先级 (SvcPriority)(别名为 0,服务说明为 1-65535)。

对于 HTTPS 来源,请参阅 HTTPS 记录类型。

TLSA

基于 DNS 的命名实体认证 (DANE) TLSA 证书关联信息。

TLSA 记录包含 用于验证 X.509 证书的信息(例如 HTTPS 使用的证书), 而无需依赖于一组预配置的证书授权机构 (CA) 对其进行签名。

例如,1 1 2 92003ba34942dc74152e2f2c408d29ec。在此示例中,第一个 1 是 DNSSEC 的协议指示符,第二个 1 是公钥,2 是用于密钥的 RSA/SHA-256 加密算法。

仅当您为区域启用了 DNSSEC 时,才使用此记录类型。

TXT

文本记录,可包含任意文本,也可用于定义机器可读数据,例如安全或滥用行为防范信息。

TXT 记录可以包含一个或多个文本字符串;每个 字符串的最大长度为 255 个字符。如果记录数据超过 255 字节,请将记录划分为 255 字节的字符串,并将每个字符串用引号引起来 - 例如 "String one 255 bytes" "String two 255 bytes"

邮件代理和其他软件代理会将多个字符串连接在一起。

请用引号括起每个字符串,例如 "Hello world" "Bye world"

每条 TXT 记录的长度上限为 1,000 个字符。如果您需要提高此上限,请与Google Cloud 支持团队联系。

后续步骤