网络相关的命令工具研究报告——nslookup

一、nslookup的作用?

nslookup,全称是name server lookup,也就是域名查询。nslookup是一个用于查询Internet域名信息或者诊断DNS服务器问题的工具

nslookup可以指定查询的类型,能够查询到DNS记录的生存时间,并且还能够在命令中使用参数指定使用哪个DNS服务器进行解释。在已经安装了TCP/IP协议的电脑上均可以使用这个命令。

总结起来,nslookup命令主要用于查询DNS的记录查看域名解析是否正常在网络故障的时候用来诊断网络问题

 

二、nslookup的应用场景?

一般来说,我们在一台主机上配置好DNS服务器,添加了相应的记录之后,只要IP地址保持不变,一般情况下我们就不再需要去维护DNS的数据文件了。

不过在确认域名解释正常之前我们最好是测试一下所有的配置是否正常。许多人会简单地使用ping命令检查一下就算了。不过Ping指令只是一个检查网络连通情况的命令,虽然在输入的参数是域名的情况下会通过DNS进行查询,但是它只能查询A类型和CNAME类型的记录,而且只会告诉你域名是否存在,其他的信息一概欠奉。

所以如果你需要对DNS的故障进行排错就必须熟练另一个更强大的工具nslookup

 

三、nslookup命令的使用?

3.1 直接查询

nslookup domain [dns-server]

直接查询的使用频率应该是最高的,记得以前计算机网络实习的时候,就经常用这个命令来测试自己的DNS服务器到底配置成功了没有,一看到失败就立马去找哪儿又出错了,实在是痛苦。。

命令中的dns-server是用户指定的DNS服务器。下面给出一个实例:

# nslookup baidu.com
Server:     10.30.7.177
Address:    10.30.7.177#53

Non-authoritative answer:
Name:   baidu.com
Address: 123.125.114.144
Name:   baidu.com
Address: 111.13.101.208
Name:   baidu.com
Address: 180.149.132.47
Name:   baidu.com
Address: 220.181.57.217

 

3.2 查询其他类型的记录

前面两个命令我没有加任何参数,所以默认情况下nslookup查询的是A类型的记录

如果我们配置了其他类型的记录希望看到解释是否正常,这时候ping就无能为力了。

比如我们配置了MX记录,但是邮件服务器只能发信不能收信,到底是域名解释问题还是其他的问题Ping命令的检查只能让你误入歧途。nslookup 这时候可以模拟你的其他遇见服务器进行域名解释的情况。

我们需要在nslookup上加上适当的参数。指定查询记录类型的指令格式:

nslookup -qt=type domain [dns-server]

 其中,type的类型可以是以下这些:

A 地址记录
AAAA 地址记录
AFSDB Andrew文件系统数据库服务器记录
ATMA ATM地址记录
CNAME 别名记录
HINFO 硬件配置记录,包括CPU、操作系统信息
ISDN 域名对应的ISDN号码
MB 存放指定邮箱的服务器
MG 邮件组记录
MINFO 邮件组和邮箱的信息记录
MR 改名的邮箱记录
MX 邮件服务器记录
NS 名字服务器记录
PTR 反向记录
RP 负责人记录
RT 路由穿透记录
SRV TCP服务器信息记录
TXT 域名对应的文本信息
X25 域名对应的X.25地址记录

在默认情况下nslookup使用的是我们在本机TCP/IP配置中的DNS服务器进行查询,但有时候我们需要指定一个特定的服务器进行查询试验。

这时候我们不需要更改本机的TCP/IP配置,只要在命令后面加上指定的服务器IP或者域名就可以了。这个参数在我们对一台指定服务器排错是非常必要的,另外我们可以通过指定服务器直接查询授权服务器的结果避免其他服务器缓存的结果。

 

下面给出查询邮件服务器记录的实例:

# nslookup -qt=mx baidu.com 8.8.8.8
*** Invalid option: qt=mx
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
Name:   baidu.com
Address: 111.13.101.208
Name:   baidu.com
Address: 123.125.114.144
Name:   baidu.com
Address: 180.149.132.47
Name:   baidu.com
Address: 220.181.57.217

 

 3.3 查询更具体的信息

其中一个主要的应用是检查域名的生存时间

这时需要我们使用一个新的参数:-d。其命令格式如下:

nslookup –d [其他的参数] domain [dns-server]

下面给出检查域名生存时间的实例:

C:\>nslookup -d www.ezloo.com 
------------ 
Got answer: 
    HEADER: 
        opcode = QUERY, id = 1, rcode = NOERROR 
        header flags:  response, want recursion, recursion avail. 
        questions = 1,  answers = 1,  authority records = 2,  additional = 2

    QUESTIONS: 
        196.134.191.60.in-addr.arpa, type = PTR, class = IN 
    ANSWERS: 
    ->  196.134.191.60.in-addr.arpa 
        name = tzdns1.tzptt.zj.cn 
        ttl = 11568 (3 hours 12 mins 48 secs) 
    AUTHORITY RECORDS: 
    ->  191.60.in-addr.arpa 
        nameserver = dns-noc.zjhzptt.net.cn 
        ttl = 11537 (3 hours 12 mins 17 secs) 
    ->  191.60.in-addr.arpa 
        nameserver = ns.zjnbptt.net.cn 
        ttl = 11537 (3 hours 12 mins 17 secs) 
    ADDITIONAL RECORDS: 
    ->  dns-noc.zjhzptt.net.cn 
        internet address = 202.96.103.36 
        ttl = 11522 (3 hours 12 mins 2 secs) 
    ->  ns.zjnbptt.net.cn 
        internet address = 202.96.104.18 
        ttl = 11522 (3 hours 12 mins 2 secs)

------------ 
Server:  tzdns1.tzptt.zj.cn 
Address:  60.191.134.196

------------ 
Got answer: 
    HEADER: 
        opcode = QUERY, id = 2, rcode = NOERROR 
        header flags:  response, want recursion, recursion avail. 
        questions = 1,  answers = 1,  authority records = 2,  additional = 0

    QUESTIONS: 
        www.ezloo.com, type = A, class = IN 
    ANSWERS: 
    ->  www.ezloo.com 
        internet address = 70.32.68.136 
        ttl = 2732 (45 mins 32 secs) 
    AUTHORITY RECORDS: 
    ->  ezloo.com 
        nameserver = ns61.domaincontrol.com 
        ttl = 2365 (39 mins 25 secs) 
    ->  ezloo.com 
        nameserver = ns62.domaincontrol.com 
        ttl = 2365 (39 mins 25 secs)

------------ 
Non-authoritative answer: 
------------ 
Got answer: 
    HEADER: 
        opcode = QUERY, id = 3, rcode = NOERROR 
        header flags:  response, want recursion, recursion avail. 
        questions = 1,  answers = 0,  authority records = 1,  additional = 0

    QUESTIONS: 
        www.ezloo.com, type = AAAA, class = IN 
    AUTHORITY RECORDS: 
    ->  ezloo.com 
        ttl = 10800 (3 hours) 
        primary name server = ns61.domaincontrol.com 
        responsible mail addr = dns.jomax.net 
        serial  = 2011032900 
        refresh = 28800 (8 hours) 
        retry   = 7200 (2 hours) 
        expire  = 604800 (7 days) 
        default TTL = 86400 (1 day)

------------ 
Name:    www.ezloo.com 
Address:  70.32.68.136

我们忽略其他的看看Got answer后面几行,包括了一个ttl数值。这个数值就是域名记录的生存时间。
这种查询将整个DNS数据包的所有部分都揭示出来,大家可以看到DNS实际上并不是想象中那么简单的东西,具体的各部分解释大家可以去看看相关的标准文档。

需要提醒大家的是一定要找到ANSWER:的内容,其他的东西都不是描述最终的结果。比如上面的查询结果中就不止一个地方有TTL数值。 

 

四、参考链接

https://skyao.io/learning-dns/dns/tool/nslookup.html

https://www.iteye.com/blog/czmmiao-2124531

https://www.cnblogs.com/Renyi-Fan/p/9045879.html

 

 

 

 

posted @ 2019-11-27 16:08  RichardTAO  阅读(572)  评论(0编辑  收藏  举报