Nslookup关于DNS诊断
环境:见《VMware采用NAT连接搭建虚拟局域网》,在Vmware的NAT网络连接模式下,用Ubuntu和Bind9搭建了两个DNS Server,vmware为几台虚拟机分配了以下的IP:
主DNS(ubuntu8.04):192.168.203.134
缓存DNS(ubuntu8.04):192.168.203.133
主机(windows xp):
192.168.37.36
客户机(windows 2000):192.168.203.135
服务器(windows 2003):不重要就没记下来
一、测试主DNS服务器
测试主DNS可用缓存服务器来测试,这时不把它当成缓存服务器,只当作是个普通的linux客户机
修改192.168.203.133的linux主机的/var/resolv.conf为:
seach localdomain
nameserver 192.168.203.134
然后在这台主机上运行:nslookup,先输入example.com看看本地域是否有建立起对应关系(即查看由named.conf指定的db.example.com正向解析区域(可理解为解析的数据文件)中的设置是否生效)
很快就出来结果了,证明配置是正确的,当然你也可以继续用127.0.0.1来证明db.example.com中设置的127.0.0.1到localhost的反向解析也生效了,再用localhost来证明确定是一一对应的关系
可以证明配置是正确的且已生效
二、测试缓存DNS服务器
在windows 2000 server和windows server 2003中把DNS设置为133的,然后用nslookup测试主DNS服务器是否可用。
(1)、如果失败的话会提示:Can’t find server name for address for address xxx:timed out
不过仍可以解析。
windows server 2003:
设置DNS为192.168.203.133后:
windows server 2003:
windows 2000 server: (打错了,应该是203而不是103, )
(2)、若出现
Name: example.com
Address:127.0.0.1
时即说明主DNS服务器生效了,如下图:
常见故障释疑(参考bind9详解)
1在用nslookup查询域的时候出现如下错误
*** Can’t find server name for address *.*.*.*: Non-existent domain
这种情况是没有对域名服务器本身做反向地址解析造成的,给域名服务器增加一条反向地址解析就可以了.
2在用nslookup时出现如下错误:
DNS request timed out.
timeout was 2 seconds.
DNS request timed out.
这种情况一般是在DNS进行递归查询的时候,超时造成的,可能是由于网络速度问题,也可能是路由等其他问题,或者对方域名服务器没有响应造成的.
3在用nslookup时出现如下错误:
*** dns.cbchen.com can’t find www.ite.com: Non-existent domain
这种情况一般是域中没有该地址记录或没有别名记录.
4 在用nslookup时出现如下错误:
***.server failed
一般是配置问题,请检测配置,或者是辅助域无法从主域中得到数据,再请求辅助域的时候会出现这种故障.
注意:
1、如果在更改DNS之前访问过百度,则更改为错误的DNS服务器后访问其他网站都提示:“找不到服务器或发生 DNS 错误”。但百度的搜索在相当长的时间内都可以继续使用,不过仅限于www.baidu.com的服务,其他的就不行了,而且此时nslookup中看百度是无法解析到域名的,看来是本机的缓存,而nslookup看的不是本机的缓存。有可能是IE对DNS也有缓存,因为我关了IE重新开www.baidu.com就不行了。
2、rndc dumpdb 命令能将 named 的 cache 导出到一个 dump 文件(在/var/cache/bind文件夹下,此目录在bind9.3.2的named.conf.option中设置),可通过查看缓存文件得知共查询了哪些域名对应的IP
本文转自gauyanm 51CTO博客,原文链接:http://blog.51cto.com/gauyanm/240707,如需转载请自行联系原作者