DNS - 多个 A 记录还是 1 个 A 记录和大量 CNAME?

DNS - 多个 A 记录还是 1 个 A 记录和大量 CNAME?

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

对于“webmail”,我应该输入带有 www 的 IP 地址的 A 记录,还是应该对 www 进行 CNAME?

什么是更清洁、更强大、更好?

答案1

这个问题有两种不同的观点,最终将永远被争论。我不会给出我的意见(因为我自己也很难过),但每种观点的一般论点通常是:

  • 您应该为物理机器定义 A 记录,然后将 CNAME 服务添加到这些机器上。这样确实可以清楚地说明什么是什么,如果您需要重新编号,则不需要更改很多记录 - 只需更改机器记录即可。另一方面,它确实会增加您的 DNS 查找负载,并且“辅助”IP(例如 SSL 虚拟主机)不适合此模型。

  • “规范名称”(CNAME) 的字面意思是定义相同名称的严格别名(想想mailsmtp),如果您在同一台机器上运行多个服务,它们都应该具有 A 记录,因为它可以减轻 DNS 上的负载,并且某些服务(NS 记录和在较小程度上是 MX 记录)对处理 CNAME 确实不太感兴趣,所以如果您无论如何都必须以不同的方式处理这些服务,我们也不妨对所有服务都这样做。

答案2

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

我喜欢 CNAME,但主要是因为它的心理效应。它鼓励人们(比如我)将服务器名称与服务名称分开。

我们的环境中有多个 SSL 证书与不透明的服务器名称相关联(我们已经停止这样做了)。CNAME 在这里工作得更好。在我工作过的每个地方,迁移服务器名称与服务紧密耦合的服务都是一件令人头疼的事情。CNAME 提供了清晰的概念分离线。

答案3

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

话虽如此,CNAME 的存在是有原因的。它使你的 DNS 管理变得更加容易,除非你每天要进行数万次解析,否则它不会有什么作用...

答案4

CNAME 会增加 DNS 系统的负载,而不会增加您的个人计算机或互联网连接的负载。我认为这里的一些人在回复时没有做出这种区分。

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

相关内容