为什么我们在DNS系统中使用规范主机名?

时间:2018-02-08 12:28:20

标签: dns alias hostname canonical-link

我读了一份文件,说明主机名复杂的主机可以有一个或多个别名。例如,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

2 个答案:

答案 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 Awww.example.com CNAME www.example.net + www.example.net A

之间的区别

www.example.com A分辨率的最终结果对于最终用户来说是相同的,除了在第一种方法上可以忽略的各种点(如性能问题)。

如果您同时维护example.comexample.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)你需要其他解决方案)