nslookup 和 ping 使用的 IP 地址不同

nslookup 和 ping 使用的 IP 地址不同

我在网络中托管了一个 Web 服务器。它已注册域名。但是,我还为 LAN 托管了一个 DNS 服务器。因此,当有人想要访问 Web 服务器时,它会检查 DNS 服务器并使用内部地址 192.168.xx Web 服务器的公共地址是 203.xxx

当我的计算机正常工作时,我会 ping 或尝试 nslookup www.mydomain.com。两者都指向 192.168.xx,这是内部地址。有时,我或其他人无法访问 www.mydomain.com。当我检查时,nslookup 返回内部地址。但是当我 ping 时,它会尝试使用公共地址进行连接,就像这样。

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

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

我想知道这个问题的原因和预防措施是什么?或者比我目前的解决方法更好的解决方法。谢谢

答案1

您是否已将客户端配置为查找内部 DNS 作为其主服务器,并将外部 DNS 服务器作为辅助服务器?您有一个竞争条件;如果内部 DNS 恰好响应速度太慢,则客户端会从公共 DNS 服务器获得不可用的响应。 ping正在使用从外部 DNS 服务器查找中获得的缓存响应,同时nslookup发送一个新请求,该请求会从内部 DNS 服务器获得有效响应。

主服务器和辅助服务器之间 DNS 视图不一致必然会导致此类问题。相反,要么建立第二个内部 DNS 服务器并将其用作辅助服务器,要么在客户端上配置根本不使用辅助 DNS 服务器。

答案2

此问题是由于您在内部网络内使用了 RFC1918 私有地址而导致的。因此,您必须在网络的一端使用一个地址访问服务器,而在另一端使用另一个地址访问服务器。

短期解决方案是实施水平分割 DNS。这为您提供了网络内外一致的 DNS 条目。

对此问题的长期解决方案是实施 IPv6,无论您是内部还是外部,您都将拥有相同的服务器地址。

相关内容