DNS报文分析

烂漫一生 提交于 2020-02-07 03:06:44

所查询的网址为 login.live.com 。

首先是对查询报文的分析

以太网帧头部、IP报头头部和UDP头部略去,从ID字段开始。

ID字段:ID字段就是对报文的一个编号,没有太多的含义。

标识字段:格式如下,下方数字表示bit个数,

        对于本报文来说就是0x0100,即 0 0000 0 0 1 0 000 0000 . 

       QR:0表示查询报文,1表示响应报文
       Opcode:通常值为0(标准查询),其他值为1(反向查询)和2(服务器状态请求)
       AA:表示授权回答(authoritative answer)
       TC:表示可截断的(truncated)
       RD:表示期望递归
       RA:表示可用递归
       随后3bit为保留字段, 必须为0
       Rcode:返回码,通常为0(没有差错)和3(名字差错)

问题数:此例中为1

回复数:此例中为0,因为是查询报文,自然没有回复。

权威记录个数:域名DNS分两种,一种是权威域名服务器,域名注册商的服务器都为权威域名服务器;另一种就是缓存DNS服务器,比如各地ISP上网设置的DNS服务器,它的作用主要是把域名解析结果缓存到本地,方便你查询。还是因为是查询报文,本例中也为0.

额外记录个数:一些额外的记录,具体是什么,我也不太清楚。本例为0,原因同上。

QNAME 地址字段:要查询的网址。地址是变长的字符串,格式为第一个字节为长度,后跟字符,以0结尾。

查询类型:此外为0001,表示为A类查询。

协议组类型:0001表示网络类型为Internet。

 

然后是对回复报文的分析

ID字段、标识字段、问题数、回复数、权威记录个数、额外记录个数等同上。

回复记录:此处共回复了9个记录,由回复数记录可以看出来。地址字段 0xC0 开头表示下一个字节表示在本报文中的偏移量。这也是为了消除冗余,减小报文长度。第一个回复中类型为 0x0005 ,表示类型为CNAME,相当于用子域名来代替ip地址。这样做的优点是如果ip地址变化,只需要改动子域名的解析,而不需要逐一改变ip地址解析。回复的域名为 login.live.com.nsatc.net ,后面8个记录都是这个域名的IP地址(一个域名对应几个IP地址对这样的大网站来说很平常)。

网络类型同查询报文中的一样都是Internet。

TTL:Time To Live,生存时间,域名DNS的TTL值表示各地的DNS缓存服务器多久去你的权威域名解析服务器(NS)获取一次你域名的解析IP。单位是分钟。

Data Length:数据长度,表示本记录从下个字节起还有多少字节。

返回数据:这就是我们想要的。一般为IP地址,但本记录类型为CNAME,所以返回了一个域名,下面8个都是IP地址。

权威记录:权威记录、查询、回答的格式都是一样的。4条记录的类型都是 0x0002 (表示类型为NS,对应于查询中的A类型)。NS表示 Name Server,权威记录回复的应该是本区域的权威域名服务器的域名(我也不是很确定)。

额外记录:本例中回复的是权威域名服务器的IP地址。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!