当 A 记录存在时,是否将 CNAME 记录添加到 DNS?

当 A 记录存在时,是否将 CNAME 记录添加到 DNS?

我们正在为客户管理 DNS 区域,他们正在对...进行一些更改,不管是什么,都无所谓。为我们的客户进行更改的顾问公司向我们发送了一个请求,要求我们在客户的 DNS 区域添加一堆 CNAME 记录(以及 SPF 更改,我认为这些是针对 DKIM 的),所有这些 CNAME 记录别名都是一些不在我们的 DNS 中的外部域。我们称之为 hostx.externaldomain.com。

但是对于要添加的三个 CNAME 记录,我们的 DNS 中已经有一个现有记录:

  • host1.example.com A(IP 地址)
  • host2.example.com NS(负载均衡器)
  • host3.example.com NS(负载均衡器)

因此,第一个是该 IP 地址背后的实际网页,另外两个则委托给我们的负载均衡器,而负载均衡器又有它们的 A 记录等。我们的 DNS 拒绝添加这三个 CNAME 记录,因为相同名称存在现有的 A 和 NS 记录,我猜这是意料之中的。

但是,现在似乎每个人都不清楚如何继续。如果我只删除 host1 A 记录并添加 CNAME 记录(指向不在我们的 DNS 中的外部主机名的别名),那么https://host1.example.com网站就此停止回答吗?

从基本层面上讲,我理解如果别名也在我们的 DNS 中,CNAME 和 A 将如何工作,例如:

  • example.com A(IP 地址)
  • www.example.comA(与上面相同的 IP 地址)

我可以删除 www A 记录并将其替换为:

这意味着www.example.com将会使用与 example.com 相同的 IP 地址(带有 A 记录)。

那么,这是否意味着,无论谁管理 CNAME 别名指向的外部主机名 (hostx.externaldomain.com) 的 DNS,都应首先向其 DNS 添加一个 A 记录 (hostx.externaldomain.com A (IP 地址)),其中 IP 地址与我们的 host1 IP 地址指向的相同,然后我才能删除我们的 A 记录并将其替换为 CNAME 记录?

然后我再次不确定它将如何工作,因为 hostx.externaldomain.com 已经设置了一些 IP 地址(刚刚用 ping 检查过),我不知道他们如何通过设置指向 host1 IP 地址的 A 记录来改变这一点...而且,我们应该设置的所有其他 CNAME 记录都使用相同的别名。

答案1

CNAME记录必须仅独立存在。您不能具有如下区域数据:

name A xx.xx.xx.xx
name CNAME othername

一些特殊记录可能与 共存CNAME,以证明其真实性。DNSSEC 规范要求使用RRSIGNSEC进行身份验证,它们可以与 共存CNAME,请参阅RFC 4034 第 3 节RFC 4034 第 4 节. 有较旧的规格,RFC 2181,第 10.1 节RFC 2535 第 2.3.5 节SIG,对于、NXT和记录来说,含义相同KEY

所有最终应用程序数据必须附加到作为目标的 RR CNAME;参见RFC1034 第 3.6.2 节(原始 DNS 规范)。

some.name.tld CNAME rec.othername.tld
rec.othername.tld A xx.xx.xx.xx
rec.othername.tld TXT text-rr-data

还要注意,CNAME标签不仅继承了A(地址),还继承了目标标签的许多其他特性,特别是TXT

这个(较旧的)RFC 还包含上述限制的更严格版本,该版本已为 DNSSEC 解除:

如果节点上存在 CNAME RR,则不应存在其他数据;这确保了规范名称和其别名的数据不会有所不同。

如果没有 DNSSEC,这个更严格的限制仍然有效。

相关内容