我在网络中托管了一个Web服务器.它已注册域名.但是,我还为LAN提供DNS服务器.因此,当有人想要访问Web服务器时,它将检查DNS服务器并使用内部地址192.168.x.x. Web服务器的公共地址是203.x.x.x.
当我的电脑工作正常时,我会ping或尝试nslookup www.mydomain.com.两者都指向192.168.x.x,这是内部地址.有时,我或某人无法访问www.mydomain.com.当我检查时,nslookup返回内部地址.但是当我ping时,它会尝试使用这样的公共地址进行连接.
Pinging www.mydomain.com [203.x.x.x] with 32 bytes of data:
如果发生这种情况,修复连接通常会有所帮助.有时,必须重新启动工作站(Win XP).在工作站的DNS设置中,主DNS指向DNS Sserver,辅助DNS指向ISP DNS服务器.
我想知道的是这个问题的原因和预防吗?
或者比我现在更好的解决方案.谢谢
解决方法
您已将客户端配置为针对其主要内部DNS进行查找,将外部DNS服务器作为辅助服务器进行查找?你有竞争条件;如果内部DNS响应太慢,则客户端从公共DNS服务器获得不可用的响应. ping正在使用来自外部DNS服务器的查找的缓存响应,而nslookup发送一个新的请求,从内部DNS服务器获取有效响应.
主服务器和辅助服务器之间的DNS视图不一致必然会导致这样的问题.相反,要么站起来第二个内部DNS服务器并将其用作辅助服务器,要么根本不配置辅助DNS服务器.