在什么条件下,NSLOOKUP和PING在Windows XP上返回不同的IP地址?

时间:2009-03-20 14:59:16

标签: dns

在我们的防火墙工作中,我的机器经常为我们的某些域解析为错误的IP。我们有一个DNS服务器,它是我们的主DNS,用于将外部域解析为内部IP地址(192.X.X.X而不是公共IP)。

有时我会解析为公共IP,它无法通过我们的防火墙正确路由。发生这种情况时,我会跑:

ipconfig /flushdns
nslookup code.mydomain.com  - I get the right DNS server and the right internal IP
ping code.mydomain.com - I get the wrong external IP address.

当发生这种情况时,Firefox也会解析为错误的IP。这将在一天中间歇性地发生。

5 个答案:

答案 0 :(得分:10)

nslookup仅使用DNS,而ping将首先查看hosts文件。

示例:

nslookup localhost
Server:         208.67.220.220
Address:        208.67.220.220#53

Non-authoritative answer:
Name:   localhost.local.lan
Address: 67.215.65.132  

67.215.65.132表示不存在的域名OpenDNS(hit-nxdomain.opendns.com)

ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
...

答案 1 :(得分:3)

在您的计算机上运行wireshark的副本,并跟踪离开系统的DNS查询,并查看它们之间的不同之处。

请记住,根据定义,nslookup仅查询DNS。其他应用程序将使用替代查找机制(例如hosts文件)。

答案 2 :(得分:2)

下载wireshark是非常有帮助的,但是如果这对某人有帮助,我在Windows网络上遇到了这种问题。 Nslookup将始终返回我想要的IP,但ping不会。我的问题是DNS被设置为将未知域转发到外部DNS服务器。

如果我在没有转发的情况下使用DNS服务器ping了mysite.dev,DNS查找将在第一次失败,然后使用mysite.dev.mydomain.com再次尝试并成功。

如果我使用带转发的DNS服务器ping mysite.dev,它会转发URL(因为它是一个“未知域”)并从转发的DNS服务器获取一些垃圾IP。它返回的IP将您作为404替代品放在某个ask.com搜索页面上。我认为ISP正以某种方式赚钱。这会阻止DNS客户端重新添加我们的域DNS后缀。

请注意,还有另一个与mysite.dev类似的内部网址。在Windows Vista(可能还有Windows 7)上,您可能需要明确配置DNS客户端以尝试将DNS后缀应用于mysite.dev等网址:

http://blogs.technet.com/b/networking/archive/2009/04/16/dns-client-name-resolution-behavior-in-windows-vista-vs-windows-xp.aspx

答案 3 :(得分:0)

从您的ipconfig示例中,我假设您使用的是Windows。

nslookup仅限DNS。

主机将在您的系统上使用正常的解析过程。这可能包括(但不限于:主机,Windows命名和DNS)。

你如何获得Firefox使用的IP地址?如果它出现在URL中,您应该忽略它,很多事情可能会发生在那个级别。

答案 4 :(得分:0)

我知道这是一个老问题,但这篇文章可能会帮助其他需要帮助的人:

http://support.microsoft.com/default.aspx?scid=kb;en-us;320760