文档章节

Dig挖出DNS秘密

亚特兰缇斯
 亚特兰缇斯
发布于 2016/03/31 12:25
字数 1199
阅读 63
收藏 2
点赞 1
评论 0

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,最终统计信息不输出

© 著作权归作者所有

共有 人打赏支持
亚特兰缇斯
粉丝 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
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
marathon部署docker很方便,阶段性学习成果

特意添加了luajit的docker容器, 发现无法使用dig解析到该容器对应的域名. 重启marathon-dns还是不行 检查/etc/resolv.conf里面没有marathon-dns的主机 所以加上,在使用dig测试 dig luajit.t...

testwork
2016/05/26
34
2
DNS配置安装和DNS主从配置

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

运维实战
07/03
0
0
实战:搭建dns服务

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

linux阿慧
2017/05/23
0
0
DNS 服务

DNS服务: FQDN:完全符合规格的域名 正向解析:FQDN---->IP 反向解析:IP----->FQDN DNS查询类型: 递归查询 迭代查询 DNS服务类型: 主从 转发 缓存 指定DNS服务器: /etc/resolv.conf 本地D...

飞马-L
2016/10/10
10
0
CentOS7部署DNS和E-mail服务

配置DNS服务 安装bind包 yum install bind bind-utils 编辑主配置文件,更改如下参数 vi /etc/named.conf listen-on port 53 { any; }; allow-query { any; }; include "/etc/named.rfc1912......

rackie386
2017/10/16
0
0
DNS基础之缓存服务器、主从服务器

DNS 是域名系统 (Domain Name System) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取...

技术小阿哥
2017/11/27
0
0
DNS域名解析服务搭建

环境:CentOS release 6.8 (Final) 安装软件:yum install bind bind-libs bind-utils 说明:本文将简单教学一个DNS服务器的搭建过程,将www.linuxtest.com(该域名实际已被注册)解析成IP1...

一点相思怎堪离丶
2016/10/09
264
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Hbase增删查改工具类

package cn.hljmobile.tagcloud.service.data.repository;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util......

gulf
5分钟前
0
0
详解机器学习中的梯度消失、爆炸原因及其解决方法

前言 本文主要深入介绍深度学习中的梯度消失和梯度爆炸的问题以及解决方案。本文分为三部分,第一部分主要直观的介绍深度学习中为什么使用梯度更新,第二部分主要介绍深度学习中梯度消失及爆...

tantexian
6分钟前
0
0
JavaMail 发送邮件

参考 https://www.cnblogs.com/xdp-gacl/p/4216311.html 发送html格式邮件 package com.example.stumgr;import java.util.Properties;import javax.mail.Message;import javax.mail......

阿豪boy
8分钟前
0
0
Mongodb安装教程

MongoDB是一个基于分布式文件存储的数据库,是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bso...

木筏笔歆
9分钟前
0
0
Hadoop之YARN命令

概述 YARN命令是调用bin/yarn脚本文件,如果运行yarn脚本没有带任何参数,则会打印yarn所有命令的描述。 使用: yarn [--config confdir] COMMAND [--loglevel loglevel] [GENERIC_OPTIONS] [...

舒运
10分钟前
0
0
个推数据统计产品(个数)iOS集成实践

最近业务方给我们部门提了新的需求,希望能一站式统计APP的几项重要数据。这次我们尝试使用的是个推(之前专门做消息推送的)旗下新推出的产品“个数·应用统计”,根据官方的说法,个推的数...

个推
11分钟前
0
0
Git 修改提交的用户名和邮箱名字

在通过git提交代码时,发现提交的用户名是自己mac的账户名,想要修改为其他名字和邮箱。 首先可以通过以下命令查看当前配置下的信息,包括用户名和邮箱: > git config --list 针对单项目的相...

edwardGe
14分钟前
0
0
Object.defineProperty()

Object.defineProperty(obj, props)方法直接在一个对象上定义新的属性或修改现有属性,并返回该对象。 obj 在其上定义或修改属性的对象 props 要定义其可枚举属性或修改的属性描述符的对象 ...

litCabbage
16分钟前
0
0
JEESZ分布式框架--单点登录集成方案(三)

多项目集成单点登录配置 当sso验证完成之后,客户端系统需要接收sso系统返回的结果时,需要定义一个过滤器获取返回结果,然后针对返回结果做相关处理.如果不需要做处理时,此处Filter也可以不...

明理萝
16分钟前
0
1
超简单的利用plist 查看ipa包名及其它信息

1.下载ipa安装包 2.用rar等工具打开 3.将iTunesMetadata.plist文件解压出来 4.用http://www.atool.org/plist_reader.php在线反编译工具 5.在其中中找到softwareVersionBundleId 就是包名...

xiaogg
17分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部