为什么一起使用CNAME和DNAME是不允许的

如果你有一个主域名和一堆类似的域名,你基本上想要performance得完全一样,那么configuration如下是合乎逻辑的:

“可怜的关系”地带:

amazon.co.uk。 DNAME amazon.com。

amazon.co.uk。 CNAME amazon.com。

“爸爸”区:

amazon.com。 A 1.1.1.1

www.amazon.com。 A 1.1.1.1

amazon.com。 MX xyz

…并希望amazon.co.uk和.com的电子邮件都由xyz和1.1.1.1的web服务器处理,以获得不仅amazon.com和www.amazon.com的请求,而且还为amazon.co .uk和www.amazon.co.uk。

但是RFC 6672说:

The owner name of a DNAME can only have one DNAME RR, and no CNAME RRs can exist at that name. These rules make sure that for a single domain name, only one redirection exists; thus, there's no confusion about which one to follow.

我不明白,我的问题是,不允许CNAME与DNAME一起避免的潜在混淆是什么? 我的理解是,除了顶点和CNAME做顶点,DNAME将做所有事情,我错过了什么?

因为这是规则。

似乎答案基本上是,原来的build筑师从来没有想过这将是有用的或者同样短视的东西。

如果在根上允许CNAMElogging,则CNAME将包括NSlogging,使该区域本身无效化为无限循环。

其他的DNS服务器已经“固定”了一个像ANAME这样的东西,它专门将主机的分辨率别名作为Alogging请求的答案。 ANAME不是一个标准。

http://tools.ietf.org/html/rfc1912

http://www.faqs.org/rfcs/rfc1034.html

做其他人做的事情,301你的根域到www子域,无论是你自己还是第三方服务。

由于其定义的方式, CNAME必须是该域唯一的RR。 因此,它只适用于顶点域。

当一个域的所有子域应该被redirect到不同域下的相同结构时,可以使用DNAME代替多个CNAMElogging。 DNAMElogging不redirect它适用的域。 查询通过DNAMEloggingredirect的域的服务器将获得CNAME响应。

如果两个域都由相同的服务器提供服务,则可以通过对两个域使用相同的区域文件来避免redirect。