我的托管公司已为我的网站设置了 DNS 记录,因此有两个条目www
:
example.com A 192.0.2.222
www.example.com A 192.0.2.222
www.example.com CNAME example.com
是否有理由同时拥有A
和CNAME
的记录www
?
我现在希望重定向www
到一个完全不同的网站。
我猜我必须删除记录A
,www
然后更改CNAME
记录以www
引用其他网站的 URL。对吗?
答案1
没有。这实际上被视为错误,如下所述。
在这种情况下,你想将 www 重定向到完全不同的网站CNAME
,则需要删除和,A
并用类型为A
或的另一条记录替换CNAME
,但不能同时删除两者。
还请注意,它CNAME
只是作为规范名称的别名。它不会执行任何实际操作重定向因为重定向是 HTTP 协议的功能,而不是 DNS。
如果主机名有CNAME
记录,则它不能有其他类型的资源记录。参考:
RFC 1912, 2.4CNAME 记录
记录
CNAME
不能与任何其他数据共存。换句话说,如果suzy.podunk.xx
是 的别名sue.podunk.xx
,则不能同时拥有MX
的记录suzy.podunk.edu
,或 的A
记录,甚至 的TXT
记录。尤其是不要尝试将CNAME
和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
这两种 RR 都将在对类型查询的响应中返回
A
,而类型CNAME
或 * 查询应该只返回CNAME
。
唯一的例外是 DNSSEC。
RFC 2181, 10.1允许SIG
、NXT
和KEY
记录,而当前使用的定义是:
RFC 4035, 2.5CNAME 资源记录的变更
如果
CNAME
已签名区域中的名称处存在 RRset,则RRSIG
该NSEC
名称处必须存在适当的 RRset。KEY
出于安全动态更新目的,还允许在该名称处使用 RRset ([RFC3007])。该名称处不得存在其他类型。这是对 [RFC1034] 中给出的原始定义的修改
CNAME
。RR 的原始定义CNAME
不允许任何其他类型与CNAME
记录共存,但签名区域要求 每个权威名称都有NSEC
和RRSIG
RR。为了解决这一冲突,本规范修改了资源记录的定义,以允许它与和RRCNAME
共存。NSEC
RRSIG
答案2
拥有这两条记录是错误的。您可以放心地删除 A 记录并编辑 CNAME 以指向另一个站点。