nslookup命令详解

导读]Nslookup 是一个监测网络中DNS服务器是否能正确实现域名解析的命令行工具。它在 Windows NT/2000/XP(在以后的windows系统也均可以用的,好比win7,win8等) 中都可使用,但在Windows 98中却没有集成这一个工具。 Nslook... 数据库

Nslookup 是一个监测网络中DNS服务器是否能正确实现域名解析的命令行工具。它在 Windows NT/2000/XP(在以后的windows系统也均可以用的,好比win7,win8等) 中都可使用,但在Windows 98中却没有集成这一个工具。  
         Nslookup 必需要安装了TCP/IP 协议的网络环境以后才能使用。  如今网络中已经架设好了一台 DNS 服务器,主机名称为TEST ,它能够把域名 www.1234.com 解析为 192.168.0.1 的IP地址,这是咱们平时用得比较多的正向解析功能。

         检测步骤以下:
         在 Windows 2000 中单击“开始”->“程序”->“附件”->“命令提示符”,在 C:\> 的后面键入 Nslookup www.123.com ,“回车”以后便可看到以下结果:    
         Server: TEST
         Address: 192.168.0.5    
         Name: www.123.com
         Address: 192.168.0.1    
         以上结果显示,正在工做的 DNS 服务器的主机名为TEST ,它的 IP 地址是192.168.0.5 ,而域名www.1234.com 所对应的 IP 地址为 192.168.0.1 。那么,在检测到 DNS 服务器TEST 已经能顺利实现正向解析的状况下,它的反向解析是否正常呢? 也就是说,可否把IP地址192.168.0.1反向解析为域名www.123.com ?咱们在命令提示符C:\>的后面键入 Nslookup 192.168.0.1 ,获得结果以下:    
         Server:TEST  
         Address: 192.168.0.5    
         Name: www.123.com    
         Address: 192.168.0.1 
         这说明,DNS 服务器 TEST 的反向解析功能也正常。  然而,有的时候,咱们键入Nslookup www.123.com ,却出现以下结果:          Server:TEST
         Address: 192.168.0.5 
         *** TEST can't find www.123.com: Non-existent domain  这种状况说明网络中DNS服务器TEST 在工做,却不能实现域名 **www.123.com的正确解析。此时,要分析DNS服务器的配置状况,看是否 www.1234.com 这一条域名对应的 IP 地址记录已经添加到了DNS的数据库中。  
         还有的时候,咱们键入Nslookup www.123.com ,会出现以下结果:  
         *** Can't find server name for domain: No response from server 
         *** Can't find www.1234.com : Non-existent domain  
         这时,说明测试主机在目前的网络中,根本没有找到可使用的 DNS 服务器。此时,咱们要对整个网络的连通性做全面的检测,并检查DNS服务器是否处于正常工做状态,采用逐步排错的方法,找出 DNS 服务不能启动的根源。  
         配置好DNS服务器,添加了相应的记录以后,只要IP地址保持不变,通常状况下咱们就再也不须要去维护DNS的数据文件了。不过在确认域名解释正常以前咱们最好是测试一下全部的配置是否正常。许多人会简单地使用ping命令检查一下就算了。不过Ping指令只是一个检查网络联通状况的命令,虽然在输入的参数是域名的状况下会经过DNS进行查询,可是它只能查询A类型和CNAME类型的记录,并且只会告诉你域名是否存在,其余的信息一律欠奉。因此若是你须要对DNS的故障进行排错就必须熟练另外一个更强大的工具nslookup。这个命令能够指定查询的类型,能够查到DNS记录的生存时间还能够指定使用那个DNS服务器进行解释。 

        查询IP地址    

        nslookup最简单的用法就是查询域名对应的IP地址,包括A记录和CNAME记录,若是查到的是CNAME记录还会返回别名记录的设置状况。其用法是:
        nslookup 域名    
        如下是A记录的返回状况。   
        nslookup命令会采用先反向解释得到使用的DNS服务器的名称,因为我这里使用的是一个内部的DNS服务器因此没有正确的反向记录,致使结果的前面几行出错。你们能够没必要理会。重点看的是最后的两行这里看到的是www.oray.net的IP地址是61.145.112.212。注意即便www.oray.net的主机没有在线一样可以返回结果。    

        若是目标域名是一个别名记录(CNAME),nslookup就开始显示出和ping命令不一样的地方了,请看查询CNAME记录的结果。因为CNAME和A记录最后都是活的IP地址,因此通常状况下二者是等同看待的,命令的格式相同。
        注意此次nslookup返回了三行信息,前两行显示这是一个CNAME记录,对应的域名和IP地址。最后显示的就是目标域名, 并注明Alias(别名)。若是域名不存在会怎样呢?    看得懂最后以行的英文吗,不懂不要紧记住形状就能够了。若是一个指定类型的域名不存在对应的记录一样也是这种结果。   

        查询其余类型的域名    

        前面两个命令咱们没有加任何参数,因此默认状况下nslookup查询的是A类型的记录。若是咱们配置了其余类型的记录但愿看到解释是否正常。这时候ping就无能为力了。好比咱们配置了MX记录,可是邮件服务器只能发信不能收信,究竟是域名解释问题仍是其余的问题Ping命令的检查只能让你误入歧途。nslookup 这时候能够模拟你的其余碰见服务器进行域名解释的状况。咱们须要在nslookup上加上适当的参数。指定查询记录类型的指令格式以下:    
        nslookup –qt=类型 目标域名   
        注意qt必须小写。    
        类型能够是一下字符,不区分大小写:   
        A 地址记录(Ipv4)    
        AAAA 地址记录(Ipv6)    
        AFSDB Andrew文件系统数据库服务器记录(不懂)       
        ATMA ATM地址记录(不是自动提款机)    
        CNAME 别名记录    
        HINFO 硬件配置记录,包括CPU、操做系统信息    
        ISDN 域名对应的ISDN号码   
        MB 存放指定邮箱的服务器   
        MG 邮件组记录    
        MINFO 邮件组和邮箱的信息记录   
        MR 更名的邮箱记录   
        MX 邮件服务器记录    
        NS 名字服务器记录   
        PTR 反向记录(从IP地址解释域名)   
        RP 负责人记录   
        RT 路由穿透记录(不懂)   
        SRV TCP服务器信息记录(将有大用处)   
        TXT 域名对应的文本信息    
        X25 域名对应的X.25地址记录  
        看看oray.net的邮件服务器记录吧。    
        看看,nslookup把服务器的名称和地址都给出来了,注意preference就是前面所说的优先级,该数值越小则优先级越高。 
        我再看看名字服务器记录是怎么样的。   
        看起来和MX记录的格式差很少,通常状况下服务器会同时返回对应的地址。不过也有不返回的状况。   
        在这里我但愿你们注意一行显示“Non-suthoritativeanswer:”,这一行在前面的例子中都没有显示过。它的出现表明这个结果是从服务器的缓存中获得的。因此提醒你这不是一个受权的答案。前面咱们进行的几回查询过程当中192.168.1.104这台机器就采用了咱们第一篇文章中描述的过程查询了oray.net的域名。在这个过程当中不但缓存了www.oray.net、test.oray.net以及oray.net的MX记录等最终结果。也包括获取的名字服务器等中间结果。隐含的查询了oray.net的NS记录。后面咱们还会介绍这个过程。   

        指定使用的名字服务器   

        在默认状况下nslookup使用的是咱们在本机TCP/IP配置中的DNS服务器进行查询,但有时候咱们须要指定一个特定的服务器进行查询试验。这时候咱们不须要更改本机的TCP/IP配置,只要在命令后面加上指定的服务器IP或者域名就能够了。这个参数在咱们对一台指定服务器排错是很是必要的,另外咱们能够经过指定服务器直接查询受权服务器的结果避免其余服务器缓存的结果。命令格式以下:   
        nslookup [-qt=类型] 目标域名 指定的DNS服务器IP或域名  
        咱们可看看如下的命令结果:   
        这个命令直接从顶级域名服务器查询oray.net的NS记录。全部的二级域名的NS记录都存放在顶级域名服务器中,这是最权威的解释。注意此次没有非受权结果的提示。对于二级域名的NS记录查询来讲这确定是受权结果。顶级域名服务器的名称是a到j.gtld-servers.net共十台服务器。(gtld是Global Top Level Domain的缩写)。当咱们修改域名的NS记录的时候能够经过上述查询知道修改的结果是否是已经在顶级域名服务器上生效。不过即便已经生效也可能不能正常解释,注意我在上一篇文章中提到的缓存时间的问题。    
        那么到底缓存多久呢?    

        检查域名的缓存时间    

        检查域名的缓存时间须要咱们使用一个新的参数:-d   
        格式以下:    
        nslookup –d [其余的参数] 目标域名 [指定的服务器地址]   
        请看范例  
        咱们忽略其余的看看Got answer后面几行,包括了一个ttl数值。这个数值就是域名记录的生存时间。   
        这种查询将整个DNS数据包的全部部分都揭示出来,你们能够看到DNS实际上并非想象中那么简单的东西。具体的各部分解释你们能够去看看相关的标准文档。须要提醒你们的是必定要找到ANSWER:的内容,其余的东西都不是描述最终的结果。上面就不止一个地方又TTL数值   域名解释过程的模拟    
        咱们如今来模拟一下一台DNS服务器接到一个不是本身管理的域的域名解释过程。回忆一下第一篇文章的过程:    
        首先咱们会询问根服务器,而后根服务器会让咱们去找对应的顶级服务器。若是查询的是oray.net,就会要求咱们去找net的服务器。    
        看看下面的范例:    
        这里咱们让21cn.com的服务器解释www.oicp.net的域名,很显然这台服务器不用有这个域,须要询问根服务器。通常状况下DNS服务器会帮咱们完成所有的过程。这种解释方式咱们称之为递归解析,为了让你们看到这个过程我家了一个参数让21cn.com的服务器不要这样作。这个参数是-norecurse。这样理论上21cn.com会让咱们去问根服务器,不过因为它已经缓存了顶级服务器的记录,因此直接返回了管理net的顶级服务器记录。实际上大部分的查询都不须要从根服务器开始。你们看到了全部的顶级域名服务器的地址都被返回。    
        咱们随便选择一个在进行查询。  此次顶级服务器就返回了oicp.net的服务器地址记录的。而后咱们就向这些记录之一进行查询,必定可以获得答案。多是一个地址、一个CNAME记录或者告诉你不存在。    
        nslookup的命令就介绍到这里,其实nslookup还有许多其余参数。不过经常使用的就俄这么几个,另外若是你们不喜欢命令行方式的话。还有几个图形界面的nslookup功能的工具。不过你们仍是须要了解域名解释都有些什么才可以正确使用这些工具。
相关文章
相关标签/搜索