域名解析系统DNS诊断命令nslookup详解

类别:互联网络 作者:admin 时间:2008年07月25日 10:16:01 阅读:3,680  

(本文图片已删除,图片版文章请查阅:http://www.renhaibo.com/archives/29.html

Nslookup可用来诊断域名解析系统 (DNS) 的基础结构信息,该命令只能用在已安装 TCP/IP 协议后才可以使用。
  使用ping命令可以进行简单的检查,ping指令只是一个检查网络状况的命令,在输入的参数是域名的情况下会通过DNS进行查询,但只能查询A类型和CNAME类型的记录,还会告诉你域名是否存在,其他的信息都是没有的。
  如果你需要对DNS的故障进行排错就必须熟悉另一个强大的命令nslookup,此命令可以指定查询的类型,可以查到DNS记录的生存时间还可以指定使用那个DNS服务器进行解释。
  下面详细解释nslookup命令在命令行下的用法:
  一、查询IP地址

  nslookup可以方便地查询到域名对应的IP地址,包括A记录和CNAME记录,如果查到的是CNAME记录还会返回别名记录的设置情况。
  用法:nslookup 域名
  如图:

  回车后有三种不同的结果:
  1.A记录的返回,如图:

  前面出错的几行可以不必理会,重点是最后的两行是www.tofree.net的IP地址是74.220.207.160,请注意,即使www.tofree.net的主机没有在线也同样能够返回结果。
  2.别名记录(CNAME)的返回情况,如图:

  这就显示出和ping命令不同了,请看查看CNAME记录的结果。由于CNAME和A记录最后都是活的IP地址,所以一般情况下两者是等同看待的,命令的格式相同。
  这次nslookup返回了三行信息,前两行显示这是一个CNAME记录,对应的域名和IP地址。最后显示的就是目标域名, 并注明是Alias(别名)。
  3.域名不存在的情况,如图:

  最后一行的英文表示目标域名不存在,也可能是:non-existent domain。
  你选择不同的域名商或不同的DNS解析系统,返回的结果也可能有差异,但大同小异。我使用的是ENOM的解析系统。

  二、查询其它类型的域名

  我们的域名一般还配置了其他类型的记录,如MX邮件服务器记录,查看解析是否正常,这时候用ping命令就不行了。邮件服务器只能发信不能收信,是域名解析的问题还是其他的问题,Ping命令的检查只能让你误入歧途。nslookup这时候可以模拟你的其他遇见服务器进行域名解析的情况。我们需要在nslookup上加上适当的参数。指定查询记录类型的指令格式如下:
    nslookup –qt=类型 目标域名(注意qt必须小写)
  以下是可以用的类型的格式(不区分大小写),仅提供常用的MX和NS的截图:
  1.A 地址记录(Ipv4)
  2.AAAA 地址记录(Ipv6)
  3.AFSDB Andrew文件系统数据库服务器记录(不懂)
  4.ATMA ATM地址记录(不是自动提款机)
  5.CNAME 别名记录
  6.HINFO 硬件配置记录,包括CPU、操作系统信息
  7.ISDN 域名对应的ISDN号码
  8.MB 存放指定邮箱的服务器
  9.MG 邮件组记录
  10.MINFO 邮件组和邮箱的信息记录
  11.MR 改名的邮箱记录
  12.MX 邮件服务器记录

注意:preference为优先级,该数值越小则优先级越高。
  13.NS 名字服务器记录

  14.PTR 反向记录(从IP地址解释域名)
  15.RP 负责人记录
  16.RT 路由穿透记录
  17.SRV TCP服务器信息记录
  18.TXT 域名对应的文本信息
  19.X25 域名对应的X.25地址记录

  三、指定使用的DNS解析服务

  默认情况下nslookup使用的是我们在本机TCP/IP配置中的DNS服务器进行查询,但有时候我们需要指定一个特定的服务器进行查询试验。此时我们不需要更改本机的DNS配置,只要在命令后面加上指定的服务器IP或者域名就可以了。这个参数在我们对一台指定服务器排错是非常必要的,另外我们可以通过指定服务器直接查询授权服务器的结果避免其他服务器缓存的结果。命令格式如下:
    nslookup [-qt=类型] 目标域名 指定的DNS服务器IP或域名
  如我们使用ENOM的服务器dns1.name-services.com查询tofree.net的NS记录,所有的二级域名的NS记录都存放在顶级域名服务器中,这是最权威的解释。注意这次没有非授权结果的提示。对于二级域名的NS记录查询来说这肯定是授权结果。顶级域名服务器的名称是dns1.name-services.com,dns2.name-services.com,dns3.name-services.com,dns4.name-services.com,dns5.name-services.com等六台服务器。当我们修改域名的NS记录的时候可以通过上述查询知道修改的结果是不是已经在顶级域名服务器上生效。不过即使已经生效也可能不能正常解释,还有缓存时间的问题,详查下文。
  返回如图:

  四、检查域名的缓存时间

  检查域名的缓存时间需要使用一个新的参数:-d
    格式:nslookup –d [其他的参数] 目标域名 [指定的服务器地址]


  我们忽略其他的,看看Got answer后面几行,包括了一个ttl数值。这个数值就是域名记录的生存时间。
  这种查询将整个DNS数据包的所有部分都揭示出来,大家可以看到DNS实际上并不是想象中那么简单的东西。具体的各部分解释大家可以去看看相关的标准文档。需要提醒大家的是一定要找到ANSWER:的内容,其他的东西都不是描述最终的结果。上面就不止一个地方又TTL数值。

  nslookup的命令还有许多其他参数,这里就介绍常用的这么几个,另外如果不喜欢命令行方式的话。还有几个图形界面的nslookup功能的工具。自己去网上搜索一下吧。
  转载请注明,转自:自由博客