DNS - 多条 A 记录或 1 条 A 记录和大量 CNAME?

Ama*_*rus 31 domain-name-system

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

对于“网络邮件”,我应该使用 www 的 IP 地址输入 A 记录,还是应该对 www 进行 CNAME?

什么是“更干净?更健壮?” 更好的?

wom*_*ble 27

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

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

  • “规范名称”(CNAME)的字面意思是定义同名的严格别名(想想mailsmtp),如果你有多个服务在同一台机器上运行,它们应该都有 A 记录,因为它减少了 DNS 和某些服务(NS 记录,以及在较小程度上,MX 记录)对于处理 CNAME 确实没有留下深刻印象,因此如果您无论如何必须以不同的方式处理这些服务,我们不妨为所有事情都这样做。

  • 您实际上可以通过将 MX 指向 CNAME 来严重破坏/重载您的 DNS 服务器。我现在懒得解释为什么,但较旧的邮件服务器(那里有很多)会看到一个指向 CNAME 的 MX 并且不知道如何处理它并且会继续查找并施加巨大压力在您的 DNS 上,最终电子邮件永远不会到达任何地方。不要将 MX 指向 CNAME。曾经。 (12认同)
  • 我同意 Farseeker,即使它可能工作,也不要将 MX 指向 CNAME。如果您需要完整的详细信息,请查看维基百科(搜索 MX 记录)或 RFC 2181(第 10.3 节)。 (3认同)

小智 13

这里有几个依赖表明 CNAME 会增加 DNS 负载。这让我很好奇。我启动了wireshark,检查了一个 CNAME 请求,至少在我们的环境中,结果在一个记录中返回。这让我想起了 Knuth 的格言:“过早的优化是万恶之源”。

我喜欢 CNAME,但主要是因为它们的心理影响。他们鼓励人们(例如像我一样)将服务器名称与服务名称分开。

我们的环境有几个 SSL 证书附加到不透明的服务器名称(我们已经停止这样做)。CNAME 在这里工作得更好。在我工作过的每个地方,在服务器名称与服务紧密耦合的情况下迁移服务都是一件令人头疼的事情。CNAME 给出了清晰的概念分隔线。


Mar*_*son 12

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

也就是说,存在 CNAME 是有原因的。它使您的 DNS 更易于管理,除非您每天进行数万次解析,否则这无关紧要...