一条记录重复了 CNAME 记录

Jav*_*tte 3 domain-name-system

我的托管公司已经为我的站点设置了 DNS 记录,因此有两个条目www

example.com       A       192.0.2.222
www.example.com   A       192.0.2.222
www.example.com   CNAME   example.com
Run Code Online (Sandbox Code Playgroud)

是否有理由同时拥有A记录和CNAME记录www

我现在希望重定向www到一个完全不同的站点。

我猜我必须删除A记录www并更改CNAME记录www以引用其他站点的 URL。那是对的吗?

Esa*_*nen 9

不,那里没有。这实际上被认为是一个错误,解释如下。

在这种情况下,如果您想将 www 重定向到一个完全不同的站点,您需要删除 theCNAME和 theA并将其替换为另一个类型为Aor 的记录CNAME,但不能同时删除两者。

另请注意,它CNAME仅用作规范名称的别名。它不会执行任何实际的重定向,因为重定向是 HTTP 协议的功能,而不是 DNS。


如果主机名有CNAME记录,则不能有其他类型的其他资源记录。参考:

RFC 1912, 2.4 CNAME 记录

一条CNAME记录不允许与任何其他数据共存。换句话说,如果suzy.podunk.xx是 的别名sue.podunk.xx,则不能同时拥有 的MX记录suzy.podunk.edu,或A记录,甚至TXT记录。尤其不要尝试将CNAMEs 和NS记录结合起来

如果您使用CNAME,DNS 服务器应该返回CNAME记录和它指向A规范主机名的记录。这同样适用于 IPv6AAAA记录。

RFC 1034, 3.6.2别名和规范名称

例如,假设名称服务器正在使用 for 处理查询 USC-ISIC.ARPA,要求类型A信息,并且具有以下资源记录:

USC-ISIC.ARPA   IN      CNAME   C.ISI.EDU

C.ISI.EDU       IN      A       10.0.0.52
Run Code Online (Sandbox Code Playgroud)

这两个 RR 都将在对类型A 查询的响应中返回,而类型CNAME或 * 查询应仅返回CNAME.

唯一的例外是 DNSSEC。

RFC 2181, 10.1 allowed SIG, NXT, 和KEY记录,而当前使用的定义是:

RFC 4035, 2.5对 CNAME 资源记录的更改

如果CNAME资源记录集是在签名区域,相应的出现在名称 RRSIGNSECRRsets在该名称必需。KEY出于安全动态更新目的,该名称的RRset 也是允许的([RFC3007])。其他类型不得以该名称出现。

这是CNAME对 [RFC1034] 中给出的原始定义的修改。的的原始定义CNAMERR没有允许任何其他类型与共存CNAME的纪录,但签名区域需要 NSECRRSIG每一个权威域名的RR。为了解决这个冲突,本规范修改了CNAME 资源记录的定义,以允许它NSECRRSIGRR共存。