DNS-多个A记录或1 A记录以及大量CNAME?


29

假设我有一个名为“ www”的网络服务器。www.example.com解析为该计算机的IP地址。然后,我想制作一些虚拟主机,并为它们创建DNS记录,例如webmail.example.com。

对于“ webmail”,我应该在A记录中添加www的IP地址,还是对C做一个CNAME?

什么是“更清洁?”更坚固?更好?

Answers:


26

关于这个问题有两种不同的观点,而这一观点最终将永远存在。我不会发表自己的意见(因为我自己被撕裂了),但是通常每种方式的一般性争论是:

  • 您应该为物理计算机定义A记录,然后在这些计算机上使用CNAME服务。这确实使人很清楚什么是什么,并且在需要重新编号的情况下,没有太多记录需要更改,仅是机器记录。另一方面,它确实会增加您的DNS查找负载,并且“辅助” IP(认为SSL虚拟主机)并不完全适合此模型。

  • “规范名称”(CNAME)的字面含义是定义具有相同名称的严格别名(think mailsmtp),如果在同一台计算机上运行多个服务,则它们都应具有A记录,因为这会减少DNS和某些服务(NS记录,在较小程度上是MX记录)对CNAME的处理并没有留下深刻的印象,因此,如果您无论如何都要以不同的方式处理这些服务,我们也可以为所有事情做。


12
您实际上可以通过将MX指向CNAME来严重破坏/重载DNS服务器。我不介意解释为什么会这样,但是较旧的邮件服务器(那里有很多)会看到MX指向CNAME,并且不知道如何处理它,并且会不断查找并承受巨大压力在您的DNS上,最后,电子邮件永远都无法到达任何地方。不要将MX指向CNAME。永远
马克·亨德森

3
我同意Farseeker的观点,即使将MX指向CNAME也不要将其指向CNAME。如果需要完整的详细信息,请查看Wikipedia(搜索MX记录)或RFC 2181(第10.3节)。
Benoit,

+1摇晃。这个答案也表达了我的观点。+1至Farseeker。MX记录是例外。至于Beoot的参考,绝不应该将Wikipedia用作技术参考,因为存在太多的错误和不准确之处。尽管几乎每个人都喜欢引用RFC,但我们确实需要记住它们不是标准,而仅仅是标准提议的先驱。
约翰·加迪尼尔

对不起,Benoit的名字拼写错误。我该睡觉了。
约翰·加迪尼尔

我一直使用cnames。我的同事采取了多次记录的方法。cname更好的另一个原因是:它使确定哪个记录获得ptr记录变得容易。我从第三位同事那里获得了啤酒。
dmourati

12

使用CNAME可有效地使DNS服务器上的查询加倍。当请求映射到CNAME时,它需要查找CNAME的A记录。

也就是说,CNAME存在是有原因的。它使您的DNS变得非常容易管理,除非您每天要进行成千上万的解析,否则就没关系了...


12

这里有几个依据表明CNAME会增加DNS负载。这让我感到好奇。我启动了Wireshark,检查了对CNAME的请求,至少在我们的环境中,结果以一个记录返回。在这里让Knuth的格言浮现在脑海:“过早的优化是万恶之源”。

我喜欢CNAME,但主要是因为它们具有心理作用。它们鼓励人们(例如像我这样)使服务器名称与服务名称脱钩。

我们的环境在不透明的服务器名称上附加了多个SSL证书(我们已不再这样做)。CNAME在这里的工作要好得多。我在迁移服务的每个地方都将服务器名称与服务紧密联系在一起,这令人头疼。CNAME给出了清晰的概念分隔线。


这需要更多的支持。CNAME记录通常不会增加所需的往返次数,因为结果捆绑在一个响应中。
Nic

4

我认为,如果虚拟主机是www.someotherdomain.com,那么我会将它们视为具有自己的DNS记录集的单独域(如果以后需要拆分,则使它们变得更容易)。但是,如果它只是博客 .example.com,那么我将使用CNAME。

只是我个人的喜好。



2

CNAME增加了DNS系统的负载,而不是您的个人计算机或Internet连接上的负载。我认为这里的某些人在回答时没有做出这种区分。

例如,将A记录用于主要的高流量记录(@和www)。将CNAME用于辅助记录,这些辅助记录将始终映射到与主记录相同的IP。例如,如果您拥有一个域“ member.site.com”,该域名将始终解析为与“ www.site.com”相同的IP,则为方便起见,可以在此处使用CNAME,但如果可以使用A记录,它将更快地解决。


谢谢,我发现答案很清楚,但是您的评论更容易理解:)
karni
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.