背景: 我有一个相对较小的 Active Directory 域(Windows 2003 功能级别),其中有两个域控制器,都运行 DNS 服务器。它们是 LAN 的主 DNS 服务器和辅助 DNS 服务器。没有其他本地 DNS。我没有任何子域或递归。
我的问题: 在 DNS 管理器中,在服务器属性下,转发器选项卡。我应该在这里列出我的 ISP 的 DNS 服务器(或 Google 的 DNS 服务器)吗?还是我应该将转发器选项卡留空并依赖根提示服务器?
我在发帖前搜索了 Google。我读到的建议中大约有一半建议使用 ISP DNS 作为转发器,另一半建议只使用 Root Hints。所以,我不知道哪个对我的设置来说是“最佳”的(我想这对于一家小商店来说很常见)。
答案1
除非您有理由直接从根目录递归,否则我建议使用转发器;Google 或您的 ISP 更有可能在缓存中为查询保留一些内容,因此它将为您的网络内的名称解析提供更好的性能。
就 Google 与 ISP 而言,您可能希望使用 Google 而不是 ISP,原因有二:
- 性能。Google 的系统是任播的,并且使用缓存执行一些有趣的操作;测试一下,看看它们是否比您的 ISP 更快。
- 行为不端的 ISP。一些 ISP 篡改查询,进行诸如 NXDomain 劫持之类的肮脏勾当。
答案2
根据我的经验,最好使用一组知名公司(Google、Microsoft、Verizon)的 DNS 转发器和您当地的 ISP(使用两个以上也不会有什么坏处)。我喜欢这种方法的原因是,本地 ISP 通常没有大型公司那样的基础设施或人力;这意味着如果它们出现故障,我希望能够有另一组 DNS 转发器可以依赖,反之亦然。如果由于某种未知原因 Google 或 Verizon 的 DNS 服务器出现故障,那么我的本地 ISP 可以接管并继续工作。
此外,我曾遇到过本地 ISP 及其缓存时间的问题;它们在不同地区确实有所不同,但 Google 和 Verizon 始终为我和我的客户提供最佳的 TTL 刷新。本质上没有“最佳实践”,只是像我所描述的那样采用不同的方法。
答案3
什么是“最佳”取决于您的情况。处于子域中的用户可能希望将自己的转发器设置为其父域的 DNS 服务器。
或者您可能希望将转发器设置为一组对您组织内部的特定域具有权威性的 DNS 服务器。
或者您可能无法访问互联网,因此 root 提示对您没有帮助。
或者,出于性能原因,您可能更喜欢使用特定的转发器而不是根提示。
或者如果您真的不关心以上任何一点,那么根提示也可以。
答案4
其他答案都没有提到的一件事,也是你做想要使用您的 ISP DNS 作为您的主 DNS 转发器,是因为您的 ISP DNS 允许您访问本地内容分发网络 (CDN)。
CDN 缓存互联网数据,并使用 DNS 魔法将 IP 地址首先指向 CDN。这意味着您正在观看的 YouTube 或 Netflix 视频缓存在 CDN 的服务器上。CDN 地理位置靠近您,因此您可以从几英里外的服务器流式传输视频,而不是几千英里外的服务器。这可以减少延迟并缩短下载时间。
例如,如果您的办公室位于科罗拉多斯普林斯,您的 ISP 将重定向到科罗拉多斯普林斯和丹佛的 CDN。最近的 Google DNS 服务器位于爱荷华州,不知道您的办公室在哪里或最近的 CDN 在哪里。这意味着使用 Google DNS 会通过 Google 的 CDN 或直接将您的浏览请求发送到权威主机,从而增加延迟并降低下载速度。
我建议将您的 ISP DNS 设置为主 DNS 转发器,但始终包含一个公共 DNS 服务器的后备转发器以防万一。唯一的例外是如果 ISP DNS 服务器不可靠,您可以使用 GRC 的 DNS 基准测试进行测试,正如 N.Balauro 在他们的回答中提到的那样。
有各种付费 DNS 服务(例如 OpenDNS)提供自己的 CDN,并且比 Google 的免费 DNS 具有更好的地理覆盖范围。