dig - DNS lookup utility
当域名出现访问故障时,可以通过检查域名解析来判断是否是由错误的解析导致的问题。
1.域名解析无结果(不存在或被HOLD(未实名认证等))
2.域名解析到错误的IP(被阻断,被劫持响应错误结果,需要对解析流程做判断)
3.对应CNAME记录的值无法解析
4.部分解析异常(配置多个域名服务器时,多个服务器解析结果不一致,需要确认是否在DNS服务器上配置添加的解析记录一致)
简单使用解析一下结果如下:
可以看到有请求段和应答段,最后解析出的A记录有两条。
dig命令做迭代查询
在命令后加上+trace可以跟踪整个解析流程:
1. 由根域名服务器查找到负责解析.com的顶级域名服务器
2. 由顶级域名服务器查找到的二级域名服务器
3. 由二级域名服务器查找到对应一条CNAME记录www.
4. 再去查找www.对应的A记录
5. 最后返回A记录对应的IP地址
[root@jia3 ~]# dig +trace; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> +trace;; global options: +cmd. 320307 INNSa.root-.. 320307 INNSk.root-.. 320307 INNSi.root-.. 320307 INNSl.root-.. 320307 INNSb.root-.. 320307 INNSe.root-.. 320307 INNSh.root-.. 320307 INNSd.root-.. 320307 INNSg.root-.. 320307 INNSj.root-.. 320307 INNSf.root-.. 320307 INNSm.root-.. 320307 INNSc.root-.;; Received 228 bytes from 202.106.0.20#53(202.106.0.20) in 98 mscom.172800 INNSc.gtld-.172800 INNSl.gtld-.172800 INNSd.gtld-.172800 INNSh.gtld-.172800 INNSm.gtld-.172800 INNSa.gtld-.172800 INNSk.gtld-.172800 INNSb.gtld-.172800 INNSe.gtld-.172800 INNSg.gtld-.172800 INNSj.gtld-.172800 INNSi.gtld-.172800 INNSf.gtld-.;; Received 491 bytes from 192.5.5.241#53(192.5.5.241) in 93 . 172800 INNS.. 172800 INNS.. 172800 INNS.. 172800 INNS.. 172800 INNS.;; Received 201 bytes from 192.48.79.30#53(192.48.79.30) in 501 .1200 INCNAME www... 1200 INNSns1... 1200 INNSns2... 1200 INNSns5... 1200 INNSns3... 1200 INNSns4..;; Received 228 bytes from 220.181.37.10#53(220.181.37.10) in 8 ms
域名不存在时,dig命令如何返回
比如解析 www.not-exists-这个域名,是不存在的。
整个过程如下:
1. 由根域名返回.com顶级域的服务器地址
2. 由.com顶级域查到二级域名不存在,返回一条SOA记录
[root@jia3 ~]# dig www.not-exists- +trace; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> www.not-exists- +trace;; global options: +cmd. 319714 INNSb.root-.. 319714 INNSe.root-.. 319714 INNSh.root-.. 319714 INNSd.root-.. 319714 INNSg.root-.. 319714 INNSj.root-.. 319714 INNSf.root-.. 319714 INNSm.root-.. 319714 INNSc.root-.. 319714 INNSa.root-.. 319714 INNSk.root-.. 319714 INNSi.root-.. 319714 INNSl.root-.;; Received 228 bytes from 202.106.0.20#53(202.106.0.20) in 105 mscom.172800 INNSe.gtld-.172800 INNSc.gtld-.172800 INNSj.gtld-.172800 INNSl.gtld-.172800 INNSk.gtld-.172800 INNSg.gtld-.172800 INNSm.gtld-.172800 INNSa.gtld-.172800 INNSi.gtld-.172800 INNSh.gtld-.172800 INNSb.gtld-.172800 INNSf.gtld-.172800 INNSd.gtld-.;; Received 503 bytes from 192.112.36.4#53(192.112.36.4) in 228 mscom.900INSOAa.gtld-. nstld.verisign-. 1524576381 1800 900 604800 86400;; Received 116 bytes from 192.12.94.30#53(192.12.94.30) in 333 ms
################################################################
nslookup - query Internet name servers interactively
nslookup有交互式和非交互式两种使用方式如下图:
nslookup还可以指定到某个域名服务器做解析命令格式如下:
nslookup 8.8.8.8(域名服务器地址)