nslookup和ping使用的IP地址是不同的

我有一个networking服务器托pipe的networking。 它有一个域名注册。 不过,我也为这个局域网提供了一个DNS服务器。 所以,当有人想访问networking服务器时,会检查DNS服务器并使用内部地址192.168.xx。networking服务器的公共地址是203.xxx

当我的电脑工作正常,我会ping或尝试nslookup www.mydomain.com。 都指向192.168.xx这是内部地址。 有时,我或某人无法访问www.mydomain.com。 当我检查时,nslookup返回内部地址。 但是,当我平,它会尝试使用这样的公共地址连接。

Pinging www.mydomain.com [203.xxx] with 32 bytes of data: 

如果发生这种情况,修复连接主要是帮助。 有时,工作站(Win XP)必须重新启动。 在工作站的DNS设置中,主DNS指向DNS服务器,辅助DNS指向ISP DNS服务器。

我想知道的是这个问题的原因和预防呢? 或者比我现在的更好的解决scheme。 谢谢

你已经configuration客户端来查找你的内部DNS作为主服务器,而外部DNS服务器作为辅助服务器? 你有一个竞争条件, 如果内部DNS恰好响应太慢,则客户端从公共DNS服务器收到不可用的响应。 ping使用从外部DNS服务器查找caching的响应,而nslookup发送一个新的请求,从您的内部DNS服务器获得有效的响应。

在主服务器和辅助服务器之间存在不一致的DNS视图必然会导致这样的问题。 相反,要么站起来第二个内部的DNS服务器,并将其作为辅助,或根本没有辅助DNS服务器configuration客户端。

这个问题是由于您在内部networking中使用RFC1918专用地址造成的。 因此,您必须在networking一侧使用一个地址访问服务器,而使用另一个地址访问另一个地址。

短期解决scheme是实现水平分割DNS 。 这为您提供networking中一致的DNS条目,而不提供。

长期的解决scheme是实现IPv6,无论您是内部还是外部,您都将拥有相同的服务器地址。