最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

DNS报文研究 通过抓包分析dig +trace跟踪全过程

IT圈 admin 26浏览 0评论

2024年6月11日发(作者:郭明珠)

从+*************.143.69 抓包分析dig的报文

作者 wujunfeng

DNS报文大小分析

在UDP数据报中的用户数据长度显示为37字节:

12字节为固定长度的报文首部,

21字节为查询名字,

以及用于查询类型和查询类的4个字节。

在DNS报文中无需填充数据。

查询结果中的U DP数据长度: 69字节。为说明这些字节需要知道以下两点:

1) 在返回的结果中包含查询问题。

2) 在返回的结果中会有许多重复的域名,因此使用压缩方式。在这个例子中,域名

出现了三次。

压缩方法:当一个域名中的标识符是压缩的,它的单计数字节(范围由0~6 3)中的最高两

位将被设置为11。这表示它是一个16 bit指针而不再是8 bit的计数字节。

指针中的剩下14 bit说明在该D N S报文中标识符所在的位置(起始位置由标识字段的第一

字节起算)。

只要一个标识符是压缩的,就可以使用这种指针,而不一定非要一个完整的域名压缩时才能

使用。因为一个指针可能指向一个完整的域名,也可能只指向域名的结尾部分(这是因为给

定域名的结尾标识符是相同的)。

显示了在问题部分的域名中各标识符的计数字节。

在这个例子中,每个回答中的指针值为12,表示从DNS首部开始的偏移量。

====================================================

C:Userswjf>+*************.143.69

;<<>>DiG9.3.2<<>>+*************.143.69

; (1 server found)

;; global options: printcmd

. 498578 IN NS .

. 498578 IN NS .

. 498578 IN NS .

. 498578 IN NS .

. 498578 IN NS .

. 498578 IN NS .

. 498578 IN NS .

. 498578 IN NS .

. 498578 IN NS .

. 498578 IN NS .

. 498578 IN NS .

. 498578 IN NS .

. 498578 IN NS .

. 514216 IN RRSIG NS 8 0 518400 20 201

4 8230 . jgMKRM9a9AWVdIMwO7RR0qmXT++dGgvIv9lDt0bFEAMsM6tzSyHpwv80

QyQO

5141EwQxPSjsuQ+P6e3XcozCLxx/kZP2M4iQ9LsaZlWKoYfAqQsh

VmdorU8ZRANfOS9167vgW8K7eCk

KaF82SC0LAwM0vpVmuE0yzPvj715r zqU=

;; Received 913 bytes from 221.131.143.69#53(221.131.143.69) in 70 ms

cn. 172800 IN NS .

cn. 172800 IN NS .

cn. 172800 IN NS .

cn. 172800 IN NS .

cn. 172800 IN NS .

cn. 172800 IN NS .

;; Received 294 bytes from 192.228.79.201#53() in 230 ms

. 86400 IN NS .

. 86400 IN NS .

;; Received 86 bytes from 203.119.29.1#53() in 240 ms

. 43200 IN A 221.178.251.141

. 43200 IN NS .

. 43200 IN NS .

;; Received 134 bytes from 211.103.13.101#53() in 130 ms

经过分析发现,dig +trace,是客户端直接与各个DNS进行报文交互的(并不是通过

221.131.143.69与各个DNS交互),同时会调用本地DNS

使用dig +trace @221.131.143.69中的@221.131.143.6只是为了从221.131.143.69获取到13

个根DNS的域名,

如下是抓包分析192.168.0.115是客户端电脑的IP

如下是dig +trace的第一个请求报文(向dig @指定IP 发起请求)

如下是dig +trace的第二个响应报文

注意在answers中有14条纪录, . 排在第一个,

additional有25条纪录

而additional有25条纪录,有的根DNS除了返回A纪录,另外还多返回一条AAAA纪录

如下是dig +trace的第三个请求报文(向本地DNS 发起请求)

当前本地DNS为192.168.0.1,正好与网关地址一样,如果本地DNS为

114.114.114.114,则目地DNS会变为114.114.114.114

如下是dig +trace的第四个响应报文(本地DNS 响应)

如下是dig +trace的第五个请求报文(向请求)

如下是dig +trace的第六个响应报文 (响应)

如下是dig +trace的第七个请求报文(向本地DNS 发起请求)

如下是dig +trace的第八个响应报文(本地DNS 响应)

如下是dig +trace的第9个请求报文(发给)

如下是dig +trace的第10个响应报文(响应)

后面的报文省略

抓包的原始报文

====================================

DNS UDP or TCP

当名字解析器发出一个查询请求,并且返回响应中的TC(删减标志)比特被设置为1时,

它就意味着响应的长度超过了512个字节,而仅返回前512个字节。

在遇到这种情况时,域名解析器通常使用TCP重发原来的查询请求,它将允许返回的响应超

过512个字节。

客户端转为TCP 53请求

2024年6月11日发(作者:郭明珠)

从+*************.143.69 抓包分析dig的报文

作者 wujunfeng

DNS报文大小分析

在UDP数据报中的用户数据长度显示为37字节:

12字节为固定长度的报文首部,

21字节为查询名字,

以及用于查询类型和查询类的4个字节。

在DNS报文中无需填充数据。

查询结果中的U DP数据长度: 69字节。为说明这些字节需要知道以下两点:

1) 在返回的结果中包含查询问题。

2) 在返回的结果中会有许多重复的域名,因此使用压缩方式。在这个例子中,域名

出现了三次。

压缩方法:当一个域名中的标识符是压缩的,它的单计数字节(范围由0~6 3)中的最高两

位将被设置为11。这表示它是一个16 bit指针而不再是8 bit的计数字节。

指针中的剩下14 bit说明在该D N S报文中标识符所在的位置(起始位置由标识字段的第一

字节起算)。

只要一个标识符是压缩的,就可以使用这种指针,而不一定非要一个完整的域名压缩时才能

使用。因为一个指针可能指向一个完整的域名,也可能只指向域名的结尾部分(这是因为给

定域名的结尾标识符是相同的)。

显示了在问题部分的域名中各标识符的计数字节。

在这个例子中,每个回答中的指针值为12,表示从DNS首部开始的偏移量。

====================================================

C:Userswjf>+*************.143.69

;<<>>DiG9.3.2<<>>+*************.143.69

; (1 server found)

;; global options: printcmd

. 498578 IN NS .

. 498578 IN NS .

. 498578 IN NS .

. 498578 IN NS .

. 498578 IN NS .

. 498578 IN NS .

. 498578 IN NS .

. 498578 IN NS .

. 498578 IN NS .

. 498578 IN NS .

. 498578 IN NS .

. 498578 IN NS .

. 498578 IN NS .

. 514216 IN RRSIG NS 8 0 518400 20 201

4 8230 . jgMKRM9a9AWVdIMwO7RR0qmXT++dGgvIv9lDt0bFEAMsM6tzSyHpwv80

QyQO

5141EwQxPSjsuQ+P6e3XcozCLxx/kZP2M4iQ9LsaZlWKoYfAqQsh

VmdorU8ZRANfOS9167vgW8K7eCk

KaF82SC0LAwM0vpVmuE0yzPvj715r zqU=

;; Received 913 bytes from 221.131.143.69#53(221.131.143.69) in 70 ms

cn. 172800 IN NS .

cn. 172800 IN NS .

cn. 172800 IN NS .

cn. 172800 IN NS .

cn. 172800 IN NS .

cn. 172800 IN NS .

;; Received 294 bytes from 192.228.79.201#53() in 230 ms

. 86400 IN NS .

. 86400 IN NS .

;; Received 86 bytes from 203.119.29.1#53() in 240 ms

. 43200 IN A 221.178.251.141

. 43200 IN NS .

. 43200 IN NS .

;; Received 134 bytes from 211.103.13.101#53() in 130 ms

经过分析发现,dig +trace,是客户端直接与各个DNS进行报文交互的(并不是通过

221.131.143.69与各个DNS交互),同时会调用本地DNS

使用dig +trace @221.131.143.69中的@221.131.143.6只是为了从221.131.143.69获取到13

个根DNS的域名,

如下是抓包分析192.168.0.115是客户端电脑的IP

如下是dig +trace的第一个请求报文(向dig @指定IP 发起请求)

如下是dig +trace的第二个响应报文

注意在answers中有14条纪录, . 排在第一个,

additional有25条纪录

而additional有25条纪录,有的根DNS除了返回A纪录,另外还多返回一条AAAA纪录

如下是dig +trace的第三个请求报文(向本地DNS 发起请求)

当前本地DNS为192.168.0.1,正好与网关地址一样,如果本地DNS为

114.114.114.114,则目地DNS会变为114.114.114.114

如下是dig +trace的第四个响应报文(本地DNS 响应)

如下是dig +trace的第五个请求报文(向请求)

如下是dig +trace的第六个响应报文 (响应)

如下是dig +trace的第七个请求报文(向本地DNS 发起请求)

如下是dig +trace的第八个响应报文(本地DNS 响应)

如下是dig +trace的第9个请求报文(发给)

如下是dig +trace的第10个响应报文(响应)

后面的报文省略

抓包的原始报文

====================================

DNS UDP or TCP

当名字解析器发出一个查询请求,并且返回响应中的TC(删减标志)比特被设置为1时,

它就意味着响应的长度超过了512个字节,而仅返回前512个字节。

在遇到这种情况时,域名解析器通常使用TCP重发原来的查询请求,它将允许返回的响应超

过512个字节。

客户端转为TCP 53请求

发布评论

评论列表 (0)

  1. 暂无评论