DNS 记录概览

本页面简要介绍了记录并列出了 Cloud DNS 支持的 DNS 记录类型。

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

支持的 DNS 记录类型

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

记录类型 说明
A

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

AAAA

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

ALIAS

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

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

CAA

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

CNAME

规范名称记录,用于指定别名。

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

DNSKEY

其他运营商用于确保安全传输的 DNSSEC 密钥。此记录集类型只在“转移”状态下才能添加到已启用 DNSSEC 的地区。

DS

安全委派区域的 DNSSEC 密钥指纹。 除非您为委派地区启用(和激活)DNSEC,否则此记录集类型不会为该可用区激活 DNSEC。

HTTPS

HTTPS 服务绑定记录,允许来源指示多个备用端点,每个端点都具有关联的参数。此记录还会将 HTTP 重定向到 HTTPS。此记录类型基于较通用的 SVCB 记录类型,并使用相同的值格式。

IPSECKEY

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

MX

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

NAPTR

命名授权方指针记录,由 RFC 3403 定义。

NS

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

PTR

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

SOA

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

SPF

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

SRV

服务定位器记录,用于某些 IP 语音 (VoIP)、即时通讯协议和其他应用。

SSHFP

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

SVCB

服务绑定记录,允许逻辑服务指示多个备用端点,每个端点都具有关联的参数。对于 HTTPS 来源,请参阅 HTTPS 记录类型。

TLSA

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

TXT

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

TXT 记录可以包含一个或多个文本字符串;每个字符串的最大长度为 255 个字符。邮件代理和其他软件代理会将多个字符串连接在一起。请用引号括起每个字符串。

如需添加、删除或更新记录,请参阅管理记录

通配符 DNS 记录

Cloud DNS 支持除 NS 记录之外的所有记录类型的通配符记录。

别名记录

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

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

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

查询解析过程

别名记录仅适用于 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 响应。

存留时间 (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 记录解析检索。

错误处理

Cloud DNS 服务器可能无法解析与 ALIAS 记录关联的规范名称。 例如,规范名称可能不存在或其域名服务器可能发生暂时性故障。

如果 ALIAS 目标解析导致 NODATA 响应(具有 OK RCODE 的空响应),则它会向客户端返回 NODATA 响应。ALIAS 记录会响应 A 查询和 AAAA 查询,但 ALIAS 目标可能仅包含其中一种类型,这可能导致对另一类型返回 NODATA 响应。这是符合预期的情况,不应将其视为错误。对于任何其他错误(例如 nonexistentrefused),ALIAS 记录会向客户端返回 SERVFAIL RCODE

由于为所有错误返回 SERVFAIL 是不透明的,为了帮助调试,DNS Cloud Logging 中还提供一个额外的字段来记录在 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。

后续步骤