Wireshark抓包及DNS报文分析
来来来,点我进行5分钟视频学习,冲冲冲
一、抓包整体描述
第一行,帧Frame 2 指的是要发送的数据块,其中,所抓帧的序号为2,捕获字节数等于传送字节数:696字节。
第二行,以太网,有线局域网技术,是数据链路层。源Mac地址为00e04c3639fa;目标Mac地址为a09f109f9088。
第三行,IPV4协议,也称网际协议,是网络层;源IP地址为192.168.16.101;目标IP地址为192.168.16.1。
第四行,UDP协议,是传输层;源端口(61315);目标端口(53)。
第五行,DNS协议,是应用层。
二、以下针对第五行DNS协议进行分析:
第一个是Transaction ID为标识字段,2字节,用于辨别DNS应答报文是哪个请求报文的响应。
第二个是Flags标志字段,2字节,每一位的含义不同,如下图:
:查询/应答标志。0表示这是一个查询报文,1表示这是一个应答报文。
,定义查询和应答的类型。0表示标准查询,1表示反向查询(由IP地址获得主机域名),2表示请求服务器状态。
,授权应答标志,仅由应答报文使用。1表示域名服务器是授权服务器。
,截断标志,仅当DNS报文使用UDP服务时使用。因为UDP数据报有长度限制,所以过长的DNS报文将被截断。1表示DNS报文超过512字节,并被截断。
,递归查询标志。1表示执行递归查询,即如果目标DNS服务器无法解析某个主机名,则它将向其他DNS服务器继续查询,如此递归,直到获得结果并把该结果返回给客户端。0表示执行迭代查询,即如果目标DNS服务器无法解析某个主机名,则它将自己知道的其他DNS服务器的IP地址返回给客户端,以供客户端参考。
,允许递归标志。仅由应答报文使用,1表示DNS服务器支持递归查询。
,这3位未用,必须设置为0。
,4位返回码,表示应答的状态。常用值有0(无错误)和3(域名不存在)。
第三个是Quetions(问题数),2字节,通常为1
如图所示,查询名以一定的格式封装了要查询的主机域名。16位查询类型表示如何执行查询操作,常见的类型有如下几种:
1.类型A,值是1,表示获取目标主机的IP地址
2.类型CNAME,值是5,表示获得目标主机的别名
3.类型PTR,值是12,表示反向查询
第四个是Answer RRs(资源记录数),Authority RRs(授权资源记录数),Additional RRs(额外资源记录数)通常为0,都使用资源记录(Resource Record,RR)格式。
1.32位域名是该记录中与资源对应的名字,其格式和查询问题中的查询名字段相同。16位类型和16位类字段的含义也与DNS查询问题的对应字段相同。
2.32位生存时间表示该查询记录结果可被本地客户端程序缓存多长时间,单位是秒
3.16位资源数据长度字段和资源数据字段的内容取决于类型字段。对类型A而言。资源数据是32位的IPv4地址,而资源数据长度则为4(以字节为单位)
第五个是字段Queries为查询或者响应的正文部分,分为Name、Type、Class
Name(查询名称):这里是ping后的参数,不定长度以0结束
Type(查询类型):2字节,这里是主机A记录
Class(类):2字节,IN表示Internet数据,通常为1