我读了一份文件,说明主机名复杂的主机可以有一个或多个别名。例如,relay1.west-coast.media.com
是规范主机名,而media.com
是别名。它们都通过'A'
记录相互关联,并且DNS系统中的'CNAME'
记录如下:
media.com CNAME relay1.west-coast.media.com
relay1.west-coast.media.com A 210.23.25.32
是什么让我们使用复杂的规范主机名?我们不能通过在DNS系统中添加记录'A'
来简单地将别名与IP地址相关联,如下所示:
media.com A 210.23.25.32
答案 0 :(得分:1)
在单个服务器上运行多个服务时,CNAME条目非常有用。例如,您可以将www.media.com,ftp.media.com和mud.media.com全部发送到relay1.west-coast.media.com。
这样,如果relay1的IP地址......需要更改,那么它将是A记录的单个更新,而不是多个。
答案 1 :(得分:0)
是的,你可以。
首先,正如Lanexbg所解释的那样,您的具体示例是错误的,因为您不能在区域的顶点(根)处拥有CNAME,因为根据定义,CNAME记录不能与其他任何内容共存(我们将忘记这里的除外)和在apex,您需要让您的区域的SOA和NS记录正常工作。
因此,我们只需使用适当的名称来满足配置/文档需求,并讨论www.example.com A
和www.example.com CNAME www.example.net + www.example.net A
www.example.com A
分辨率的最终结果对于最终用户来说是相同的,除了在第一种方法上可以忽略的各种点(如性能问题)。
如果您同时维护example.com
和example.net
的权威名称服务器,则可以自由选择这两种情况。正如Chris Meueur所说,最大的区别在于您需要更改A记录的数据(IPv4地址)。在第一种情况下,您需要多次更改它,因为在第二种情况下,您只需要更改一次,而且CNAME指向www.example.net
的所有其他记录将自动获得更新。
CNAME
也有它们的缺点:它们可以影响性能,你需要避免它们的链,甚至更多的循环,它们不能在任何地方使用,就像A记录中的名字一样。
所以这是妥协。
但还有另一种情况需要考虑:如果您是example.com
的管理员,而不是example.net
的管理员。 ExampleNET Inc.可能是一家大型托管公司,也可能是CDN。您想在www.example.com
网站上使用他们的服务。如果他们给你一个A记录放入你的区域,他们就会遇到这样的问题:如果他们需要,他们基本上永远无法改变它,因为他们所有的客户都会在他们所有的区域文件中硬编码其当前值,所以这是一个大问题反对敏捷,有时你需要能够匆忙地重新计算,就像在DDOS攻击期间一样。
相反,如果他们建议你做一个CNAME,他们可以自由地改变他们的A记录,而不需要做任何事情和结果"立即"适用于每个人。
这是一种非常常见的情况,特别是对于CDN。
在要求www.microsoft.com
:
;; ANSWER SECTION:
www.microsoft.com. 3600 IN CNAME www.microsoft.com-c-3.edgekey.net.
www.microsoft.com-c-3.edgekey.net. 20499 IN CNAME www.microsoft.com-c-3.edgekey.net.globalredir.akadns.net.
www.microsoft.com-c-3.edgekey.net.globalredir.akadns.net. 3600 IN CNAME e13678.dspb.akamaiedge.net.
e13678.dspb.akamaiedge.net. 3600 IN A 23.67.120.106
(当然,高级设置也可以启用负载平衡和/或故障转移和/或根据源的地理位置改变结果。)
这不是唯一的方法(例如,相反,他们可能会要求您更改example.com
区域的权威名称服务器,以便他们可以控制它),并且它也有限制(最重要的一个是开头概述的那个:你不能把CNAME放在顶点,所以如果你想要一个http://example.com/
上的网站(注意缺少www
)你需要其他解决方案)