请有经验的 DNS 管理员帮助我理解...
我在开发环境中运行一个小型 DNS 服务器,该服务器一次运行最多 5 个域名的解析。我的问题源于这里的讨论:有什么区别......
我的问题是这样的:
- 当我有一个域名和至少一个指向该域的子域时,我应该使用什么?
一个答案是这样的:
- 我认为对此的适当解决方案是使用 Cnames。这将允许我更改一次 IP 地址并同时影响多个主机名(cnames)。这将帮助我保持简单。这也将使管理 TTL 记录更加直接和可靠。我很容易犯错,所以这也会限制我犯错的机会。
另一个答案是这样的:
- 其他人则认为使用 A Name 记录可以加快查询速度(我不一定反对这一事实)。
我知道这两种方法都可以,但是基于 RFC 的 DNS 采用的标准让我相信我们应该正确使用 Cnames 和 A Names 并且是适当的。规则可以被打破,但如果你不能依赖它们,那又有什么意义呢。
如果您运行大型 DNS 服务器或有这样做的经验,请仅回答此问题。否则不要指望你的意见会改变我的看法。有人告诉我,这完全是个人喜好问题,我希望不这样。
如果您认为我在阐述一个非常古老的观点,请原谅我。
好的,答案隐藏在您的问题中:
通常 DNS 查找很少进行,并且无论如何都缓存在应用程序或请求系统上。因此,这种“加速”论点只是假设性的。
我运行相当大的 DNS 基础设施,在本地为数千台主机提供 300 多个不同域的服务。
我将 A 记录保持在最低限度,并尽可能在合乎逻辑的情况下使用 CNAME。经验法则是:仅针对节点的主接口的记录,以及需要反向解析的记录。其他一切(如服务器上运行的服务)都是 CNAME。
没有多个 A 的原因也是您希望(虽然不是要求!!)有相应的 PTR。但是,如果您只有 1 个 IP,则不能。
换句话说:
可以,但是
不是这样(事实上你并不真的想要最后一个条目!)
但话又说回来,这真的是常识和偏好的问题,没有硬性规定。
记录
A
服务器的主要(或“基础设施”)主机名。然后,托管在其上的网站应使用
CNAME
指向该主机名的记录。例外情况是,如果您希望“裸”域名(即没有
www.
或类似前缀)工作。DNS 规则意味着您通常不能将 aCNAME
用于那些,不幸的是,这意味着这些记录必须是A
记录,即:你想要凭证?查看我的资料...
我不确定您对“大型”DNS 系统的定义是什么。我已经在大约 30 个和大约 50 个中的一个上工作过。
我会说你不能为所有设置准确地回答这个问题。您的性能概况、可用资源、更新 IP 地址所需的频率以及您可用的工具都会影响此决定。
例如,管理员试图从一个很少更改 IP 或有权访问工具以轻松进行广泛更改的系统中榨取最后一滴性能,这与具有更多性能而不是时间的管理员会有不同的答案。您管理的 IP 地址和/或主机数量可能会产生影响。您的客户的需求可能会产生影响。
就个人而言,当只涉及几台机器和大量域时,我使用 CNAME。当我每台服务器的域相对较少时,我更喜欢 A 记录。因此,尽管您暗示可以明确回答,但我认为这在很大程度上取决于情况、资源和(是的)个人偏好。