NSLookupparsing为本地DNS,但浏览器parsing为公共

问题

当尝试通过使用NSLookup(Windows和Linux / Arch / Debian)的主机名访问内部服务器时,我收到正确的DNS服务器地址,FQDN和目标IP地址。

当我尝试使用浏览器或PING访问同一台服务器时,最终会遇到我们公共的“全部捕获”IP地址。 它应该打我们的内部服务器。 为什么会出现在我们的networking之外?

configuration

  • BIND DNS服务器与域名分配到适当的IP地址。
  • 路由器已启用DNS的DNSMasq,DNS的DNSMasq已closures。
  • 路由器LAN本地DNS服务器被configuration为指向我们的BIND DNS服务器。
  • 路由器已将静态IP分配给BIND DNS服务器

nslookup和你的浏览器/ pingtesting的不同之处在于nslookup会强制进行DNS查询,而其他testing将使用正常的名称parsing查找顺序来parsing名称。

这涉及查看DNScaching以及hosts文件中的静态logging。 您的计算机可能在主机文件(Windows:C:\ windows \ system32 \ drivers \ etc \ hosts,Linux:/ etc / hosts /)中为您的Web服务器提供了静态logging。 如果一个logging在这个文件中,那么这个logging将被使用,并且DNS查找将不被执行。

正如Zoredache所build议的那样,它也可能是一个代理服务器,因为代理服务器将代表您执行DNS查询(这将更有可能parsing公共地址)。 这就是说,ICMP通常不是代理 – 特别是在Windows中,但绝对值得研究。

如果你想排除故障 – build议检查你的主机文件,检查代理服务器设置,如果你仍然画空白,然后刷新你的DNScaching(Windows:ipconfig / flushdns Linux:/etc/rc.d/init .d / nscd restart),然后运行诸如wireshark或tcpdump之类的程序,以确定当您执行Ping /浏览器testing时,您的PC是否实际发送了DNS请求。