何时使用辅助DNS服务器?

问题描述 投票:4回答:2

在我们的路由器上,我们将主DNS设置为本地IP,该IP运行Windows Server 2008和内置DNS服务器。我们使用它来将域解析到本地服务器,如果域未在本地找到,我们将转发器设置为查询外部名称服务器。

路由器上的辅助DNS设置为我们ISP的主DNS,因为本地DNS服务器已关闭。

我们办公室的mac客户端正确地从路由器中获取DNS服务器,但它使用的DNS服务器似乎非常随机。例如,本地站点会加载,但有些图像不会加载。如果我将我的DNS地址硬编码为本地DNS服务器,一切都会正常工作。

所以我的问题是,mac客户端什么时候会使用辅助DNS服务器?我虽然只在主DNS不可用时才使用它?

谢谢!

macos dns router system-preferences
2个回答
4
投票

我用Google搜索了this article,它解释了较新的MacOS DNS搜索顺序。和this one解释如何调整它以获得您想要的结果。

虽然一般的想法是,从来没有打算(在任何操作系统中)第一台服务器是使用的服务器,第二台服务器是备份服务器。 (即使在Windows上,如果第一台服务器由于某种原因没有很快回答,则会查询第二台服务器。)将服务器查询顺序视为未指定是明智的。


1
投票

辅助DNS服务器的一般想法是,如果主DNS服务器没有回复(例如,它是离线,无法访问,重新启动等),系统可以回退到辅助DNS服务器,因此它不会在此期间无法解析DNS名称。不回复意味着“根本没有回复”,当主要人员说名字不明时,它不会询问次要回复。回答一个名字不明的回复。

这里的问题是DNS使用UDP而UDP是无连接的。因此,如果DNS服务器处于脱机状态,系统将不会收到其他人的回复。由于UDP数据包可能会丢失并且往返时间(RTT)未知,因此在最终得出该服务器的结论之前,它必须重新发送请求几次,每次等待几秒钟。死了这意味着如果第一个DNS服务器死亡,最多可能需要一分钟或更长时间来解析DNS名称。

由于这似乎是不可接受的,不同的操作系统开发了不同的策略来更好地处理这个问题。因为两个DNS服务器应该为同一个域提供相同的结果(如果不是,你的设置实际上是有缺陷的,因为辅助服务器应该是主服务器的一对一替换),无论哪一个都是正在使用。有些系统可能会向主要系统发送请求,但如果几秒内没有回复,则它们不会重新发送给它,而是首先尝试使用辅助系统(然后重新发送到主要设备,依此类推)。有些人也可以同时查询两个,赢得一个更快的胜利,然后继续使用那个一段时间(直到他们开始另一场比赛,看看它是否仍然是更快的一个)。有些人可能也更喜欢主要的一种,但是如果主要的查询当前有一定数量的查询,则可以进行某种负载平衡并切换到次要负载。有些人会在他们之间交替作为穷人的负载平衡。所有这一切实际上都是允许的。

但是,在你的情况下,我担心你的主服务器有问题,因为by default, macOS will only use the primary one。如果它不断回落到次要的那个,它可能会认为主要的一个太慢。每次发生这种情况,辅助服务器都成为主服务器,see this older knowlebase articleThis cnet article解释了如何禁用它,但我不确定在当前系统中这仍然是可能的。我无法从头脑中找到任何关于此的参考资料,但是我在WWDC上曾提到过,他们现在更加积极地进行DNS查询,甚至可能尝试以最快的速度同时联系多个DNS服务器在某些情况下获胜但我可能错了(也许这只是iOS左右)。

© www.soinside.com 2019 - 2024. All rights reserved.