本页介绍了如何添加、更新和删除资源记录集。
如需查看支持的资源记录类型列表,请参阅支持的资源记录类型。
准备工作
创建托管式区域。满足创建托管式区域的前提条件,然后创建托管式区域。
选择受支持的资源记录类型。为资源记录集选择资源记录类型。
添加资源记录集
如需添加资源记录集,请按以下步骤操作:
控制台
在 Google Cloud 控制台中,进入 Cloud DNS 区域页面。
点击要在其中添加记录的托管区域的名称。
在区域详情页面上,点击添加标准。
在创建记录集页面的 DNS 名称字段中,输入 DNS 区域的子网域,例如
mail
。结尾处会自动添加结尾句点。如需创建通配符 DNS 记录,请输入星号,例如
*.example.com
。@ 符号不会自动创建顶级域名记录。如需在根域下创建资源记录,请将 DNS 名称字段留空。
选择资源记录类型,例如
MX
。在 TTL 字段中,输入一个数值表示资源记录的生存时间,即该资源记录可缓存的时间期限。此值必须是正整数。
从 TTL 单位菜单中,选择时间单位,例如
minutes
。根据您已选择的资源记录类型,填充剩余字段。
要输入其他信息,请点击添加一项。
点击创建。
gcloud
如需添加资源记录集,请使用 gcloud dns record-sets create
命令:
gcloud dns record-sets create RRSET_NAME \ --rrdatas=RR_DATA \ --ttl=TTL \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE
替换以下内容:
RRSET_NAME
:匹配传入查询的 DNS 名称,并使用此区域的 DNS 名称作为其后缀,例如test.example.com
RR_DATA
:与资源记录集关联的任意值,例如198.51.100.5
;您还可以输入多个值rrdata1
rrdata2
rrdata3
,例如198.51.100.5
10.2.3.4
...TTL
:解析器缓存此资源记录集的 TTL(以秒为单位),例如30
RRSET_TYPE
:此资源记录集的资源记录类型,例如A
。MANAGED_ZONE
:此资源记录集关联的代管区域(例如my-zone-name
);此资源记录集的名称必须以代管区域的 DNS 名称作为其后缀
API
如需添加资源记录集,请使用 resourceRecordSets.create
方法:
POST https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets { "name": RRSET_NAME, "type": RRSET_TYPE, "ttl": TTL, "rrdatas": [[RR_DATA_1, RR_DATA_2]] }
替换以下内容:
PROJECT_ID
:项目的 IDMANAGED_ZONE
:此资源记录集关联的代管区域(例如my-zone-name
);此资源记录集的名称必须以代管区域的 DNS 名称作为其后缀RRSET_NAME
:匹配传入查询的 DNS 名称,并使用此区域的 DNS 名称作为其后缀,例如test.example.com
RRSET_TYPE
:此资源记录集的资源记录类型,例如A
TTL
:解析器缓存此资源记录集的 TTL(以秒为单位),例如30
RR_DATA
:与资源记录集关联的任意值,例如198.51.100.5
;您还可以输入多个值rrdata1
rrdata2
rrdata3
,例如198.51.100.5
10.2.3.4
...
Terraform
在一个事务中添加资源记录集合
您可以通过创建一个事务来指定更改,从而添加多个资源记录集。事务是一组必须作为一个整体应用的一项或多项 DNS 记录更改。事务要么整体成功要么整体失败,确保您的数据绝不会出现不一致问题。您只能使用 gcloud CLI 或 Cloud DNS API 创建事务。
如需创建交易,请按以下步骤操作:
gcloud
如需启动一项事务,请使用
gcloud dns record-sets transaction start
命令:gcloud dns record-sets transaction start \ --zone=MANAGED_ZONE
将
MANAGED_ZONE
替换为您要管理其资源记录集的代管区域的名称,例如my-zone-name
。如需在事务中添加资源记录集,请使用
gcloud dns record-sets transaction add
命令:gcloud dns record-sets transaction add RR_DATA \ --name=DNS_NAME \ --ttl=TTL \ --type=RECORD_TYPE \ --zone=MANAGED_ZONE
替换以下内容:
RR_DATA
:与资源记录集关联的任意值,例如198.51.100.5
;您还可以输入多个值rrdata1
rrdata2
rrdata3
,例如198.51.100.5
10.2.3.4
...DNS_NAME
:要添加的记录集的 DNS 或域名,例如test.example.com
TTL
:记录集的存留时间 (TTL),以秒为单位,例如300
RECORD_TYPE
:记录类型,例如A
。MANAGED_ZONE
:您要管理其资源记录集的代管区域的名称,例如my-zone-name
如需执行事务,请使用
gcloud dns record-sets transaction execute
命令:gcloud dns record-sets transaction execute \ --zone=MANAGED_ZONE
如需添加通配符事务,请使用
gcloud dns record-sets transaction add
命令:gcloud dns record-sets transaction add \ --zone=MANAGED_ZONE \ --name=WILDCARD_DNS_NAME \ --type=RECORD_TYPE \ --ttl=TTL
替换以下内容:
MANAGED_ZONE
:您要管理其资源记录集的代管区域的名称,例如my-zone-name
WILDCARD_DNS_NAME
:要添加的资源记录集的 DNS 或域名,例如*.example.com.
(注意在末尾处使用句点)RECORD_TYPE
:记录类型,例如CNAME
。TTL
:记录集的 TTL,以秒为单位(例如300
)
API
如需使用新资源记录集创建事务,请使用 changes.create
方法:
POST https://dns.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/changes
{ "deletions": [] "additions": [ { "name": DNS_NAME, "type": RECORD_TYPE, "ttl": TTL, "rrdatas": [ RR_DATA ] } ] }
替换以下内容:
PROJECT_ID
:您的项目 IDMANAGED_ZONE
:您的代管区域名称或 IDDNS_NAME
:记录集的 DNS 或域名,例如test.example.com.
(注意在末尾处使用句点)RECORD_TYPE
:记录类型TTL
:记录集的存留时间 (TTL),以秒为单位,例如30
RR_DATA
:与资源记录集关联的任意值,例如198.51.100.5
;您还可以输入多个值rrdata1
rrdata2
rrdata3
,例如198.51.100.5
10.2.3.4
...
如需将电子邮件递送到您的网域,您必须将 MX
记录添加到您的区域。如果您使用 Google Workspace 作为简单邮件传输协议 (SMTP) 提供商,请参阅设置 Google Workspace MX
记录支持页面。否则,请使用提供商提供的 MX
记录详细信息,然后按照为 Google Workspace 描述的设置流程操作。
查看区域的资源记录集
如需查看某个网域的资源记录集,请按以下步骤操作:
控制台
在 Google Cloud Console 中,转到 Cloud DNS 页面。
在区域标签页中,点击要查看资源记录集的区域。
区域详情页面会显示该区域中所有资源记录集的详细信息。
gcloud
如需查看您的区域的 DNS 记录,请使用 gcloud dns record-sets list
命令:
gcloud dns record-sets list \ --zone="ZONE_NAME"
将 ZONE_NAME
替换为项目中某个 DNS 可用区的名称:
该命令将输出前 100 条记录所对应资源记录集的 JSON 响应。您可以指定以下附加参数:
--limit
:需要列出的最大记录集数--name
:仅列出具有此确切域名的资源记录集--type
:仅列出此类型的记录;如果存在,则还必须使用--name
参数
API
如需查看区域的 DNS 记录,请使用 resourceRecordSets.list
方法:
GET https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONErrsets
替换以下内容:
PROJECT_ID
:项目的 IDMANAGED_ZONE
:此资源记录集关联的代管区域(例如my-zone-name
);此资源记录集的名称必须以代管区域的 DNS 名称作为其后缀
查看一个资源记录集的详细信息
此过程假定您已在托管的 Cloud DNS 区域内创建了资源记录集。
要查看现有资源记录集的详细信息,请按以下步骤操作:
控制台
在 Google Cloud 控制台中,进入 Cloud DNS 区域页面。
点击包含资源记录集的区域。
点击要查看详细信息的资源记录集。
资源记录集详情页面会显示资源记录集的详细信息。
gcloud
如需查看现有资源记录集的详细信息,请使用 gcloud dns record-sets describe
命令:
gcloud dns record-sets describe RRSET_NAME \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE
替换以下内容:
RRSET_NAME
:匹配传入查询的 DNS 名称,并使用此区域的 DNS 名称作为其后缀,例如test.example.com
RRSET_TYPE
:此资源记录集的资源记录类型,例如A
。MANAGED_ZONE
:此资源记录集关联的代管区域(例如my-zone-name
);此资源记录集的名称必须以代管区域的 DNS 名称作为其后缀
API
如需获取现有资源记录集的详细信息,请使用 resourceRecordSets.get
方法:
GET https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets/RRSET_NAME/RRSET_TYPE
替换以下内容:
PROJECT_ID
:项目的 IDMANAGED_ZONE
:此资源记录集关联的代管区域(例如my-zone-name
);此资源记录集的名称必须以代管区域的 DNS 名称作为其后缀RRSET_NAME
:匹配传入查询的 DNS 名称,并使用此区域的 DNS 名称作为其后缀,例如test.example.com
RRSET_TYPE
:此资源记录集的记录类型,例如A
。
更新资源记录集
如需修改记录集,请按以下步骤操作:
控制台
要将部分更新应用于现有资源记录集,请按以下步骤操作:
在 Google Cloud 控制台中,转到 Cloud DNS 可用区页面。
点击要为其更新资源记录集的区域。
在区域详情页面上,点击您要更新的资源记录集旁边的edit修改。
完成必要的更新后,点击保存。
gcloud
如需对现有资源记录集应用部分更新,请使用 gcloud dns record-sets update
命令:
gcloud dns record-sets update RRSET_NAME \ --rrdatas=RR_DATA \ --ttl=TTL \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE
替换以下内容:
RRSET_NAME
:匹配传入查询的 DNS 名称,并使用此区域的 DNS 名称作为其后缀,例如test.example.com
RR_DATA
:与资源记录集关联的任意值,例如198.51.100.5
;您还可以输入多个值rrdata1
rrdata2
rrdata3
,例如198.51.100.5
10.2.3.4
...TTL
:解析器缓存此资源记录集的 TTL(以秒为单位),例如30
RRSET_TYPE
:此资源记录集的资源记录类型,例如A
。MANAGED_ZONE
:此资源记录集关联的代管区域(例如my-zone-name
);此资源记录集的名称必须以代管区域的 DNS 名称作为其后缀
API
如需对现有资源记录集应用部分更新,请使用 resourceRecordSets.patch
方法:
PATCH https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets/RRSET_NAME/RRSET_TYPE { "ttl": TTL, "rrdatas": RR_DATA, "update_mask": { "paths": ["rrset.ttl", "rrset.rrdatas"] } }
替换以下内容:
PROJECT_ID
:项目的 IDMANAGED_ZONE
:此资源记录集关联的代管区域(例如my-zone-name
);此资源记录集的名称必须以代管区域的 DNS 名称作为其后缀RRSET_NAME
:匹配传入查询的 DNS 名称,并使用此区域的 DNS 名称作为其后缀,例如test.example.com
RRSET_TYPE
:此资源记录集的资源记录类型,例如A
。TTL
:解析器缓存此资源记录集的 TTL(以秒为单位),例如30
RR_DATA
:与资源记录集关联的任意值,例如198.51.100.5
;您还可以输入多个值rrdata1
rrdata2
rrdata3
,例如198.51.100.5
10.2.3.4
...
删除资源记录集
删除资源记录集后,其 DNS 记录会被永久移除,无法恢复。为防止 DNS 记录丢失,请先导出资源记录集,然后再进行删除。如需了解如何导出资源记录集,请参阅导入和导出资源记录集。
Cloud DNS 公开区域是权威的,域名服务器 (NS
) 和起始授权机构 (SOA
) 记录类型位于区域顶端,即该网域的根。
Cloud DNS 会自动在地区顶点创建 NS
和 SOA
记录。您无法使用 Cloud DNS API 删除这些记录,并且这些记录会在区域被删除时自动删除。如需了解详情,请参阅 RFC 1034。
如需删除资源记录集,请按以下步骤操作:
控制台
在 Google Cloud 控制台中,转到 Cloud DNS 页面。
区域详细信息页面上会列出该区域的记录。
如需删除某个区域中的资源记录集,请点击该区域的名称。
选中要删除的资源记录集旁边的复选框。
点击删除记录集。
gcloud
如需删除现有资源记录集,请使用 gcloud dns record-sets delete
命令:
gcloud dns record-sets delete RRSET_NAME \ --type=RRSET_TYPE \ --zone=MANAGED_ZONE
替换以下内容:
RRSET_NAME
:匹配传入查询的 DNS 名称,并使用此区域的 DNS 名称作为其后缀,例如test.example.com
RRSET_TYPE
:此资源记录集的资源记录类型,例如A
。MANAGED_ZONE
:此资源记录集关联的代管区域(例如my-zone-name
);此资源记录集的名称必须以代管区域的 DNS 名称作为其后缀
API
如需删除现有资源记录集,请使用 resourceRecordSets.delete
方法:
DELETE https://www.googleapis.com/dns/v1/projects/PROJECT_ID/managedZones/MANAGED_ZONE/rrsets/RRSET_NAME/RRSET_TYPE
替换以下内容:
PROJECT_ID
:项目的 IDMANAGED_ZONE
:此资源记录集关联的代管区域(例如my-zone-name
);此资源记录集的名称必须以代管区域的 DNS 名称作为其后缀RRSET_NAME
:匹配传入查询的 DNS 名称,并使用此区域的 DNS 名称作为其后缀,例如test.example.com
RRSET_TYPE
:此资源记录集的资源记录类型,例如A
。
导入和导出资源记录集
如需将资源记录集复制到代管区域中以及从代管区域中复制资源记录集,您可以使用 import
和 export
命令。您可以导入和导出 BIND 格式的区域文件或 YAML 格式的文件。
gcloud
如需导入资源记录集,请使用
dns record-sets import
命令:gcloud dns record-sets import -z=ZONE_NAME
如果您想指定可用区文件的文件格式,请将上一条命令与
--zone-file-format
标志搭配使用。如果省略此标志,则必须提供 YAML 格式的区域文件。将
ZONE_NAME
替换为可用区的新名称。当您将
gcloud dns record-sets import
命令与--replace-origin-ns
标志搭配使用时,该命令会将区域的 NS 记录替换为区域文件中指定的 NS 记录。这些记录必须与由 Cloud DNS 分配用以托管区域的域名服务器相匹配。此外还必须与父级(委派)区域中指定的NS
记录一致。默认情况下,Cloud DNS 不会覆盖NS
记录。如果您使用此标志,则必须验证NS
记录是否正确。将记录集导入为 BIND 格式的区域文件时,请移除表示区域顶点的 @ 符号。在采用 BIND 区域格式的文件中,对于
example.com
等 DNS 名称,@ 符号表示example.com.
。不过,在 Cloud DNS 中,定义记录名称时,系统会按字面意思处理 @ 符号。如需在 Cloud DNS 中为区域的顶级网域创建资源记录集,请使用完整域名,例如example.com.
。in.smtp IN MX 5 gmail-smtp-in.l.google.com in.smtp.example.com. IN MX 5 gmail-smtp-in.l.google.com.example.com.
如需导入区域文件,请在必须是完全限定的任何域名末尾添加一个尾随句点 (
.
)。
如需导出资源记录集,请使用
dns record-sets export
命令。如需将资源记录集导出为 BIND 格式的区域文件,请使用--zone-file-format
标志。例如:example.com. 21600 IN NS ns-gcp-private.googledomains.com. example.com. 21600 IN SOA ns-gcp-private.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300 host1.example.com. 300 IN A 192.0.2.91
如果省略
--zone-file-format
标志,export
会将资源记录集导出为 YAML 格式的记录文件:gcloud dns record-sets export example.zone -z=examplezonename
例如:
--- kind: dns#resourceRecordSet name: example.com. rrdatas: - ns-gcp-private.googledomains.com. ttl: 21600 type: NS --- kind: dns#resourceRecordSet name: example.com. rrdatas: - ns-gcp-private.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300 ttl: 21600 type: SOA --- kind: dns#resourceRecordSet name: host1.example.com. rrdatas: - 192.0.2.91 ttl: 300 type: A
Cloud DNS 支持
ALIAS
记录类型,但该类型不是标准 DNS 记录类型,并且BIND
不支持该类型。如果您要将资源记录集导出到BIND
,系统会跳过ALIAS
记录。如果某个网域具有路由政策,则会作为包含空资源记录数据 (rrdata) 的记录导出。
支持的资源记录类型
适用的记录类型 | 进入 |
---|---|
A |
主机的数字地址,采用 IPv4 点分十进制格式。 |
AAAA |
主机的数字 IP 地址,采用 IPv6 十六进制数字格式。 |
ALIAS ([预览版](/products#product-launch-stages)) |
要为传入地址查询解析的规范名称,例如 |
CAA |
有权为此网域颁发证书的证书授权机构,例如
创建 |
CNAME |
您还可以使用
有时,域名服务器会返回 |
DNSKEY |
解析器用于通过 ZSK 和 KSK 密钥来验证记录真实性的 DNSSEC 公钥 - 例如
您只能在处于 |
DS |
安全委派区域的 DNSSEC 密钥指纹,例如 您只能在公开区域中添加此记录类型。除非您为委派区域启用(和激活)DNSSEC,否则此记录集类型不会为该区域激活 DNSSEC。默认情况下,区域不会启用 DNSSEC。 |
SVCB HTTPS |
服务优先级 ( |
IPSECVPNKEY |
IPSec 公共 VPN 密钥。 您只能在公开区域中添加此记录类型。 |
MX |
代表您的网域接收电子邮件的邮件交换服务器的偏好设置编号和 DNS 名称。SMTP 服务器首选具有较低偏好设置编号的服务器。 例如: 确保偏好设置编号和 DNS 名称之间有一个空格。您输入的 MX 记录必须以英文句点 ( 您可以创建多个具有不同优先级的记录来配置备份邮件服务器,或者使用相同的优先级将负载分配到多个邮件服务器上。 例如,如要将电子邮件定向到您的 Google Workspace 账号,请输入以下内容:
|
NS |
为您的网域或子网域提供 DNS 服务的权威域名服务器的 DNS 名称。您的 |
SPF |
|
SRV |
用于指定特定服务的服务器位置,即主机名和端口号的数据 - 例如 如需了解详情,请参阅 RFC 2782。 |
SSHFP |
SSH 服务器算法编号、指纹类型编号以及密钥指纹 - 例如 如果您已为该区域启用 DNSSEC,请使用此记录类型。 |
TLSA |
基于 DNS 的命名实体认证 (DANE) TLSA 证书关联信息。
TLSA 记录包含用于验证 X.509 证书的信息(例如 HTTPS 使用的证书),而无需依赖于一组预配置的证书授权机构 (CA) 对其进行签名 - 例如 如果您已为该区域启用 DNSSEC,请使用此记录类型。 |
TXT |
文本数据,可包含任意文本,也可用于定义机器能识别的数据,例如安全信息或滥用行为防范信息。 TXT 记录可以包含一个或多个文本字符串;每个字符串的最大长度为 255 个字符。如果记录数据超过 255 字节,请将记录划分为 255 字节的字符串,并将每个字符串用引号引起来 - 例如 邮件代理和其他软件代理会将多个字符串连接在一起。 请用引号括起每个字符串,例如 每条 TXT 记录的长度上限为 1,000 个字符。如果您需要提高此限额,请与 Google Cloud 支持团队联系。 |
后续步骤
- 如需了解用于资源记录集的
gcloud
命令,请参阅gcloud dns record-sets
。 - 如需查看
gcloud
或 API 操作的状态,请参阅监控 DNS 传播。 - 如需了解您在使用 Cloud DNS 时可能会遇到的常见问题的解决方案,请参阅问题排查。
- 如需大致了解 Cloud DNS,请参阅 Cloud DNS 概览。