一小时后,我仍然从使用Earthlink,Verizon和OpenDNS服务器的桌面获得DNS超时.我测试了其他DNS服务器是否正在回答:@H_502_3@
dig @ns2.example.com www.example.com +short@H_404_5@这很有效.@H_502_3@
我的问题:@H_502_3@
>有没有人得到一个答案,为什么其他DNS服务器即使在TTL过期后也没有打到我们的其他DNS服务器?
> DNS服务器更喜欢域的主DNS服务器(来自SOA记录)吗?
>是否有任何算法用于从可用的NS记录中选择名称服务器?我假设这是特定于实现的,但也许有一些适用于此的标准.@H_502_3@
解决方法
问题是客户端只等待响应这么长时间,服务器等待大约相同的时间.假设您有两个DNS服务器,A和B.说A正在运行而B已经失败.有时候是这样的:@H_502_3@
>客户端连接到名称服务器Z并要求其提供信息. Z选择B并发送查询.
>客户端超时,因为名称服务器Z没有响应.
>客户端尝试命名服务器Y.Y选择B并发送查询.
>名称服务器Z超时并尝试A.它得到正确答案,但客户端不再等待.
>客户端超时,因为名称服务器Y没有响应.
>客户端放弃了,其名称服务器都无法响应.
>名称服务器Y超时并尝试A.它得到正确答案,但客户端不再等待.@H_502_3@
而且没有好的解决方案.等待查看名称服务器是否回复的时间越长,您需要等待的时间越长,因为您等待的名称服务器等待的时间越长.可以说,问题是Y和Z并没有足够快地放弃B.@H_502_3@
从本质上讲,如果你的任何名称服务器都没有出来,一些客户会因为运气不好而超时,因为他们只尝试过那些糟糕的服务器.@H_502_3@
好的一面是,如果你有两个名称服务器,一个名称服务器失败,大约75%的名称服务器将获得答案,而不是0%.@H_502_3@