DNS在Wireshark下的抓包分析

  1. DNS报文格式(借了个图):
    .

###1. 标识(Trunsaction ID):DNS的ID标识。用来区分DNS应答报文对应的请求报文。该字段,在请求报文和相应的应答报文是一致的。

###2. 标志(Flag) :DNS中的标志字段。

标志格式如图:

wireshark dns解析过程 wireshark抓包dns报文分析_网络协议

通过请求|响应报文,来分析标志字段:

wireshark dns解析过程 wireshark抓包dns报文分析_网络_02


在请求报文中出现了QR|Opcode|TC|RD|Z 字段

QR(query response): 查询/响应报文的标志位,1为响应,0为查询.

Opcode(operation code)0表示标准查询,1表示反向查询,2表示服务器状态请求。通常情况下都是 standard query(标准查询)

TC(Truncated):表示是否被截断,1表示响应已超过512字节已被截断。

RD(recursion desired ): 表示期望递归,在查询报文中设置,并在响应报文中返回。

Z(zero):保留字段

wireshark dns解析过程 wireshark抓包dns报文分析_网络_03


在上面已述的字段出现情况下,又出现了AA|RA|rcode

AA(authoritative): 授权回答的标志位。该位在响应报文中有效,1表示名字服务器是权限服务器

RA(recursion available): 只能在响应报文中置为1,表示可以得到递归响应

rcode(reply code ):返回码,表示响应的差错状态,通常为0和3,各取值含义如下:

0 无差错

1 格式差错

2 问题在域名服务器上

3 域参照问题

4 查询类型不支持

5 在管理上被禁止

6 – 15 保留

###3. 问题数、资源记录数、授权资源记录数和额外资源记录数

这四个字段都是两字节,分别对应下面的查询问题、回答、授权和额外信息部分的数量。一般问题数都为1,DNS查询报文中,资源记录数、授权资源记录数和额外资源记录数都为0.

wireshark dns解析过程 wireshark抓包dns报文分析_wireshark_04


###4. 查询问题部分

查询问题格式如图:

wireshark dns解析过程 wireshark抓包dns报文分析_wireshark dns解析过程_05


查询名部分长度不定,一般为要查询的域名(也会有IP的时候,即反向查询)

查询类型:

1 A IPv4地址。

2 NS 名字服务器。

5 CNAME 规范名称。定义主机的正式名字的别名。

6 SOA 开始授权。标记一个区的开始。

11 WKS 熟知服务。定义主机提供的网络服务。

12 PTR 指针。把IP地址转化为域名。

13 HINFO 主机信息。给出主机使用的硬件和操作系统的表述。

15 MX 邮件交换。把邮件改变路由送到邮件服务器。

28 AAAA IPv6地址。

252 AXFR 传送整个区的请求。

255 ANY 对所有记录的请求。

查询类(2字节):通常为1,指Internet数据

wireshark dns解析过程 wireshark抓包dns报文分析_网络_06


###5. 回答字段,授权字段和附加信息字段均采用资源记录RR(Resource Record)的相同格式

资源记录格式:

wireshark dns解析过程 wireshark抓包dns报文分析_网络协议_07


域名字段(2字节):记录中资源数据对应的名字

生存时间(4字节):该字段表示资源记录的生命周期(以秒为单位),一般用于当地址解析程序取出资源记录后决定保存及使用缓存数据的时间。

资源数据长度(2字节):表示资源数据的长度

资源数据:表示按查询段要求返回的相关资源记录的数据。

wireshark dns解析过程 wireshark抓包dns报文分析_网络_08


###6 附带一个请求|响应报文下DNS 详细内容:

请求报文::

wireshark dns解析过程 wireshark抓包dns报文分析_网络协议_09


响应报文::

wireshark dns解析过程 wireshark抓包dns报文分析_网络_10


wireshark dns解析过程 wireshark抓包dns报文分析_网络协议_11