You need to enable JavaScript to run this app.
导航

避免解析记录冲突或不生效

最近更新时间2023.04.25 21:23:34

首次发布时间2022.04.25 16:02:10

您在火山引擎云解析(DNS)中创建解析记录时,需要注意以下问题:

  • 同一个域名中的多个解析记录之间可能存在冲突。
  • NS 记录会造成其他记录不生效。

解析记录冲突

在同一个域名中,如果您创建的解析记录和已有的解析记录存在冲突,您无法创建该解析记录。

说明

  • 只有主机记录相同的解析记录才有可能发生冲突。主机记录不同的解析记录不会发生冲突。
  • 解析记录的冲突只可能发生在相同线路中。不同线路中的解析记录不会发生冲突。

说明

根据 RFC 1912,CNAME 不能与其他解析记录共存。云解析 DNS 为了方便您创建多条 CNAME 记录,自动为 CNAME 记录开启负载均衡并默认为 CNAME 记录设置了权重。您无法为 CNAME 记录关闭负载均衡。

  • ✅ 表示不冲突。同一域名下的相同线路中,多个不冲突的解析记录可以共存。例如,example.com 域名下,主机记录为 @ 的 A 记录可以与主机记录为 @ 的 NS 记录共存。

  • ❌ 表示冲突。同一域名下的相同线路中,多个冲突的解析记录不能共存。例如,example.com 域名下,主机记录为 @ 的 CNAME 记录不能与主机记录为 @ 的 A 记录共存。

  • ↔️ 表示可重复。可重复的解析记录属于相同的类型。多个可重复的解析记录不能在同一域名下的相同线路中共存。但是,您可以通过在同一条解析记录中设置多个记录值的方法创建多个可重复的解析记录。例如,您可以在 example.com 域名下创建一条主机名为 @ 的 A 记录,然后在 A 记录中添加多个 IPv4 地址作为记录值。

主机记录是 @ 时

主机记录为 @ 时,同一域名下线路相同的解析记录的冲突情况如下:

记录类型NSCNAMEAMXTXTAAAASRVCAA
NS↔️
CNAME↔️
A↔️
MX↔️
TXT↔️
AAAA↔️
SRV↔️
CAA↔️

主机记录不是 @ 时

主机记录不是 @ 时,同一域名下线路相同且主机记录相同的解析记录的冲突情况如下:

记录类型NSCNAMEAMXTXTAAAASRVCAA
NS↔️
CNAME↔️
A↔️
MX↔️
TXT↔️
AAAA↔️
SRV↔️
CAA↔️

同一域名下的同一条线路中,主机记录相同的 CNAME 记录与 NS 记录可以共存

根据 RFC 1912,CNAME 记录不能与其他解析记录共存。但是,有些网站可能为二级域名和三级域名都设置了 DNS 解析记录。例如,某网站的域名同时包括 www.example.com 和 example.com。两个域名都配置了 DNS 解析和 CDN 加速服务。为了同时给 example.com 配置 DNS 服务器和 CDN 加速服务,网站管理员需要为 example.com 创建以下解析记录:

  • 一条 CNAME 记录,指向 CDN 加速服务提供的 CNAME。
  • 一条 NS 记录,指向火山引擎云解析(DNS)之外的第三方 DNS 服务器。

为了支持这种场景,在云解析 DNS 中,当主机记录为 @ 时,同一域名下的 CNAME 记录与 NS 记录可以在同一线路中共存。对于同时存在 CNAME 记录和 NS 记录的域名,您可以使用 dig NS 命令获取 NS 记录。

例如,您为域名 example.com 创建了以下记录:

@.example.com      600           IN    CNAME    abc.example.com.
@.example.com      600           IN    NS       ns1.example.com.

您可以使用以下命令获取 NS 记录。

dig example.com NS

警告

火山引擎不推荐您在同一个域名下的同一线路中同时创建 CNAME 记录和 NS 记录,因为根据 RFC 1912,CNAME 记录不能与其他解析记录共存。如果您的做法违反了 RFC 1912,您的域名解析可能在某些情况下不工作。

例如,您为域名 example.com 创建了以下记录:

@.example.com      600           IN    CNAME    abc.example.com.
@.example.com      600           IN    NS       ns1.example.com.

您可以使用以下命令获取 NS 记录。

dig example.com NS

同一域名下的同一条线路中,NS 记录会造成其他记录不生效

云解析 DNS 为每个域名自动创建 NS 解析记录和 SOA 解析记录。NS 解析记录包含云解析 DNS 的全部 DNS 服务器。一般情况下,您无需更改这两条记录。因此,云解析 DNS 的控制台不会显示这两条记录。如果您把解析记录 导出为 .zone 文件,您会在 .zone 文件中看到 NS 记录。

例如,您为域名 example.com 创建了以下记录:

www.test.example.com      600           IN    A        1.1.1.1
shop.test.example.com      600           IN    A        2.2.2.2
forum.test.example.com      600           IN    A        3.3.3.3
test.example.com            600           IN    NS       ns1.example.com.

test.example.com 是一条 NS 记录,指向云解析 DNS 之外的 DNS 服务器。www.test.example.com, shop.test.example.com 和 forum.test.example.com 的解析记录都不会生效。

如果您使用以下命令查询域名的 A 记录,您无法得到 A 记录。

dig a example.com