文档章节

Dig挖出DNS秘密

亚特兰缇斯
 亚特兰缇斯
发布于 2016/03/31 12:25
字数 1199
阅读 78
收藏 2

dig(Domain Information Groper)类似nslookup,也是DNS查询工具。

一、最简单dig使用方法

$ dig
; <<>> DiG 9.8.3-P1 <<>>
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61897
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13

;; QUESTION SECTION:
;.				IN	NS

;; ANSWER SECTION:
.			268800	IN	NS	k.root-servers.net.
.			268800	IN	NS	g.root-servers.net.
.			268800	IN	NS	e.root-servers.net.
.			268800	IN	NS	m.root-servers.net.
.			268800	IN	NS	j.root-servers.net.
.			268800	IN	NS	b.root-servers.net.
.			268800	IN	NS	l.root-servers.net.
.			268800	IN	NS	d.root-servers.net.
.			268800	IN	NS	a.root-servers.net.
.			268800	IN	NS	i.root-servers.net.
.			268800	IN	NS	h.root-servers.net.
.			268800	IN	NS	f.root-servers.net.
.			268800	IN	NS	c.root-servers.net.

;; ADDITIONAL SECTION:
a.root-servers.net.	459833	IN	A	198.41.0.4
a.root-servers.net.	506943	IN	AAAA	2001:503:ba3e::2:30
b.root-servers.net.	506943	IN	A	192.228.79.201
b.root-servers.net.	506943	IN	AAAA	2001:500:84::b
c.root-servers.net.	506943	IN	A	192.33.4.12
c.root-servers.net.	506943	IN	AAAA	2001:500:2::c
d.root-servers.net.	506943	IN	A	199.7.91.13
d.root-servers.net.	506943	IN	AAAA	2001:500:2d::d
e.root-servers.net.	506943	IN	A	192.203.230.10
f.root-servers.net.	506943	IN	A	192.5.5.241
f.root-servers.net.	506943	IN	AAAA	2001:500:2f::f
g.root-servers.net.	506943	IN	A	192.112.36.4
h.root-servers.net.	506943	IN	A	198.97.190.53

;; Query time: 1 msec
;; SERVER: 202.119.230.8#53(202.119.230.8)
;; WHEN: Thu Mar 31 12:24:27 2016
;; MSG SIZE  rcvd: 496

dig会向默认的上连DNS服务器查询“.”(根域)的NS记录。

二、dig加一个点

$ dig .

; <<>> DiG 9.8.3-P1 <<>> .
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39726
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;.				IN	A

;; AUTHORITY SECTION:
.			8569	IN	SOA	a.root-servers.net. nstld.verisign-grs.com. 2016033001 1800 900 604800 86400

;; Query time: 0 msec
;; SERVER: 202.119.230.8#53(202.119.230.8)
;; WHEN: Thu Mar 31 12:26:25 2016
;; MSG SIZE  rcvd: 92

三、使用Google DNS查询baidu.com的A记录

$ dig @8.8.8.8 www.baidu.com A

; <<>> DiG 9.8.3-P1 <<>> @8.8.8.8 www.baidu.com A
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23814
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.baidu.com.			IN	A

;; ANSWER SECTION:
www.baidu.com.		536	IN	CNAME	www.a.shifen.com.
www.a.shifen.com.	299	IN	A	119.75.218.70
www.a.shifen.com.	299	IN	A	119.75.217.109

;; Query time: 371 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Mar 31 12:27:57 2016
;; MSG SIZE  rcvd: 90

dig的基本命令格式:dig @dnsserver name querytype

如果你设置的dnsserver是一个域名,那么dig会首先通过默认的上连DNS服务器去查询对应的IP地址,然后再以设置的dnsserver为上连DNS服务器。
如果你没有设置@dnsserver,那么dig就会依次使用/etc/resolv.conf里的地址作为上连DNS服务器。
而对于querytype,如果你看过我上一篇有关nslookup命令的讲解,那么你应该对querytype有所了解,你可以设置A/AAAA/PTR/MX/ANY等值,默认是查询A记录。

四、一些常用选

  1. -c,设置协议类型(class),包括IN(默认)、CH和HS。

  2. -f,支持从一个文件中读取内容进行批量查询。

  3. -4和-6,用于设置使用哪种传输协议(IPv4/IPv6)进行查询。

  4. -t,设置查询的类型,默认A。

  5. -x,逆向查询选项,查询IP地址到域名的映射关系。

$ cat querylist //文件内容,共有两个域名需要查询
www.baidu.com
www.sohu.com
$ dig -f querylist -c IN -t A//设置-f参数开始批量查询
 
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.2 <<>> www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.2 <<>> www.sohu.com
;; Got answer:
;; ->>HEADER<</code>

五、dig特有查询选项

1.TCP代替UDP

dig +tcp www.baidu.com

; <<>> DiG 9.8.3-P1 <<>> +tcp www.baidu.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65322
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 5

2.默认追加域

dig +domain=baidu.com image

; <<>> DiG 9.8.3-P1 <<>> +domain=baidu.com image
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26514
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 5

3.跟踪dig全过程

$ dig +trace ww.baidu.com

; <<>> DiG 9.8.3-P1 <<>> +trace ww.baidu.com
;; global options: +cmd
.			267154	IN	NS	d.root-servers.net.
.			267154	IN	NS	h.root-servers.net.
.			267154	IN	NS	e.root-servers.net.
.			267154	IN	NS	i.root-servers.net.
.			267154	IN	NS	b.root-servers.net.
.			267154	IN	NS	k.root-servers.net.
.			267154	IN	NS	m.root-servers.net.
.			267154	IN	NS	g.root-servers.net.
.			267154	IN	NS	f.root-servers.net.
.			267154	IN	NS	a.root-servers.net.
.			267154	IN	NS	c.root-servers.net.
.			267154	IN	NS	l.root-servers.net.
.			267154	IN	NS	j.root-servers.net.
;; Received 496 bytes from 202.119.230.8#53(202.119.230.8) in 4 ms  //从本地DNS查找到根域DNS列表

com.			172800	IN	NS	a.gtld-servers.net.
com.			172800	IN	NS	b.gtld-servers.net.
com.			172800	IN	NS	c.gtld-servers.net.
com.			172800	IN	NS	d.gtld-servers.net.
com.			172800	IN	NS	e.gtld-servers.net.
com.			172800	IN	NS	f.gtld-servers.net.
com.			172800	IN	NS	g.gtld-servers.net.
com.			172800	IN	NS	h.gtld-servers.net.
com.			172800	IN	NS	i.gtld-servers.net.
com.			172800	IN	NS	j.gtld-servers.net.
com.			172800	IN	NS	k.gtld-servers.net.
com.			172800	IN	NS	l.gtld-servers.net.
com.			172800	IN	NS	m.gtld-servers.net.
;; Received 490 bytes from 2001:7fd::1#53(2001:7fd::1) in 10233 ms  //选择了b.root-servers.net这台根域DNS来查找cn.域DNS列表

baidu.com.		172800	IN	NS	dns.baidu.com.
baidu.com.		172800	IN	NS	ns2.baidu.com.
baidu.com.		172800	IN	NS	ns3.baidu.com.
baidu.com.		172800	IN	NS	ns4.baidu.com.
baidu.com.		172800	IN	NS	ns7.baidu.com.
;; Received 200 bytes from 192.55.83.30#53(192.55.83.30) in 422 ms  //选择了c.dns.cn这台cn.域DNS服务器来查找roclinux.cn的DNS列表

ww.baidu.com.		7200	IN	CNAME	ps_other.a.shifen.com.
a.shifen.com.		1200	IN	NS	ns4.a.shifen.com.
a.shifen.com.		1200	IN	NS	ns5.a.shifen.com.
a.shifen.com.		1200	IN	NS	ns1.a.shifen.com.
a.shifen.com.		1200	IN	NS	ns3.a.shifen.com.
a.shifen.com.		1200	IN	NS	ns2.a.shifen.com.
;; Received 232 bytes from 220.181.38.10#53(220.181.38.10) in 40 ms

dig非常著名的一个查询选项就是+trace,当使用这个查询选项后,dig会从根域查询一直跟踪直到查询到最终结果,并将整个过程信息输出出来。

4.精简dig输出

(1)+nocmd,节省输出dig版本信息

(2)+short,输出最简的CHAME和A记录,其他不输出

(3)+nocomment,节省输出dig的详细注释信息

(4)+nostat,最终统计信息不输出

© 著作权归作者所有

共有 人打赏支持
上一篇: CDN工作机制
下一篇: Linux命令教程
亚特兰缇斯
粉丝 13
博文 85
码字总数 48897
作品 0
崇明
私信 提问
dig 命令的基本用法

:em17: 在 unix 和 linux 下,建议大家使用 dig 命令来代替 nslookup。 dig 命令的功能比 nslookup 强大很多,不像 nslookkup 还得 set 来 set 去的,怪麻烦的。下面是 dig 的一些比较常用的...

红薯
2009/05/06
506
0
Windows环境下dig工具的安装及使用

Dig 工具全称为域名信息搜索器(Domain Information Groper),能够显示详细的DNS查询过程,是一个非常强大的DNS故障诊断工具。一般Linux和Unix系统都已内置了该功能,但是在Windows环境中只...

极客乐园
06/26
0
0
DNS配置安装和DNS主从配置

dns介绍 (用来解析域名的) dns==domain name server(域名服务器) DNS 全称domain name system域名系统的缩写,它是一种将IP地址转换成对应的主机名或者将主机名转换成对应的IP的一种服务机...

运维实战
07/03
0
0
Linux下安装配置DNS

yum install -y bind (安装DNS服务) vim /etc/named.conf (编辑DNS配置文件,添加一个zone,如下) zone "123.com" IN { type master; file "123.com.zone"; }; named-checkconf (查看配......

粗粮面包
01/02
0
0
实战:搭建dns服务

前言:DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。 实验要求:实...

linux阿慧
2017/05/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

运维日志维护工具

1. 系统状态查看 1.1 w命令 [fangfc@node10011 ~]$ w 21:18:24 up 54 min, 1 user, load average: 0.00, 0.01, 0.04USER TTY FROM LOGIN@ IDLE JCPU PCPU W......

Fc丶
6分钟前
0
0
babel6升级到7,jest-babel报错:Requires Babel "^7.0.0-0", but was loaded with "6.26.3".

自从将前端环境更新到babel7,jest-babel之前是基于babel6的,执行时候就会报:Requires Babel "^7.0.0-0", but was loaded with "6.26.3". 很烦,因为连续帮好几台电脑修复这个问题,所以记...

曾建凯
今天
1
0
探索802.11ax

802.11ax承诺在真实条件下改善峰值性能和最差情况。 如何改善今天的Wi-Fi? 在决定如何改进当前版本以外的Wi-Fi时,802.11ac,IEEE和Wi-Fi联盟调查了Wi-Fi部署和行为,以确定更广泛使用的障碍...

linuxprobe16
今天
2
0
使用linux将64G的SDCARD格式化为FAT32

一、命令如下: sudo fdisk -lsudo mkfs.vfat /dev/sda -Isudo fdisk /dev/sda Welcome to fdisk (util-linux 2.29.2). Changes will remain in memory only, until you decide to wri......

mbzhong
今天
4
0
深入理解Plasma(四):Plasma Cash

这一系列文章将围绕以太坊的二层扩容框架,介绍其基本运行原理,具体操作细节,安全性讨论以及未来研究方向等。本篇文章主要介绍在 Plasma 框架下的项目 Plasma Cash。 深入理解Plasma(1):...

HiBlock
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部