1.实验目的
通过网络抓包实验,深入了解TCP/IP协议簇中DNS域名系统的使用方法以及报文的具体格式和含义,加强对DNS的理解和应用。
2.相关原则
2.1 DNS 的定义
DNS 是域名系统(DNS)的缩写,由解析器和域名服务器组成。域名服务器是存储网络中所有主机的域名和对应的 IP 地址的服务器,具有将域名转换为 IP 地址的功能。域名必须与 IP 地址对应,但 IP 地址不一定有域名。
域名系统采用类似目录树的层次结构。域名服务器是客户机/服务器模型中的服务器端,主要有两种形式:主服务器和转发服务器。将域名映射到IP地址的过程称为“域名解析”。现实中,域名与IP地址是一对一(或多对一)的,虽然域名便于人们记忆,但机器之间只能相互识别IP地址,它们之间的转换称为域名解析。域名解析需要由专门的域名解析服务器来完成。DNS就是进行域名解析的服务器。DNS命名用于TCP/IP网络中,通过用户友好的名称来查找计算机和服务。
当用户在应用程序中输入 DNS 名称时,DNS 服务可以将此名称解析为其他相关信息,例如 IP 地址。因为你上网时输入的 URL 是通过域名解析系统进行解析,找到对应的 IP 地址,这样你才能上网。其实域名的最终指向就是 IP。
2.2. DNS 组成
在IPV4中,IP是由32位二进制数组成的,把这些32位二进制数分成4组,每组8个二进制数,把这8个二进制数转换成十进制数,就得到了我们看到的IP地址,取值范围是0~255。因为8个二进制数转换成十进制数,最大范围就是0~255。而在已经开始试运行,未来必将取代IPv4的IPV6中,将使用128位二进制数来表示IP地址。
2.3 DNS查询
DNS查询可以有两种解释,一种是客户端向指定的DNS服务器查询资源记录(比如A记录),一种是查询FQDN名称的解析过程。
1.查询DNS服务器上的资源记录
您可以使用平台上的命令行工具输入返回的结果,包括域名对应的IP地址(A记录)和别名(CNAME记录)。除了以上方法,您还可以通过国外、国内等一些DNS查询网站查询域名的DNS信息。
2.查询FQDN名称的解析过程
如果您需要跟踪某个FQDN域名的解析过程,可以在下方输入+trace,返回的结果包括从域名开始,一直到权威域名服务器的递归或迭代过程。
2.4 DNS 消息格式
DNS 消息头:
DNS消息头之后是变量部分,它由四个小部分组成。
问题部分由一组问题记录组成。
DNS 消息的其余三部分分别是应答部分、授权部分和附加信息部分。附加信息包含应答部分和授权部分返回的资源所需的附加信息(如 IP 地址)。这三部分组成一组资源记录,只出现在回复消息中。一个资源记录描述一个域名。
3.基于具体抓包示例的分析
3.1. 协议数据包窗口
从数据包到达的时间、顺序,以及源 IP 地址和目的 IP 地址可以看出,这是一对 DNS 请求和响应消息。下图是数据包 1 和数据包 2 中 DNS 段的消息分析注释,证明了数据包 1 是一个 DNS 请求消息,数据包 2 是对数据包 1 的响应消息。请求和响应消息到达间隔为 0。它们的标识字段均为 0x001,用于互相匹配。
因为DNS请求报文的目的是请求的IP地址,所以数据包1的源IP地址是本机IP,目的IP地址是DNS服务器的IP。数据包2与数据包1相反。
3.2. 协议树窗口
DNS请求报文:
DNS响应消息:
可以看出,DNS请求报文和响应报文的链路层的MAC地址是相反的,请求报文中的源物理地址是本机的物理地址,与IP地址相对应。另外,DNS请求报文和响应报文的传输层UDP的源端口和目的端口也是相反的,其中请求报文UDP的源端口是客户端动态申请的本地端口,目的端口是DNS固有的知名端口53。这两点都体现了DNS请求报文和响应报文之间的请求-响应关系。DNS请求报文和响应报文的协议树窗口显示的协议层次与网络协议的层次对应一致,如下表所示:
3.3 物理层节点
DNS 请求消息
DNS应答消息
上面两张图分别给出了DNS请求和响应消息的时间参数、包个数、长度以及协议层数,这里就不详细介绍了。不过我们可以清楚的看到DNS请求消息的长度为72字节,而响应消息的长度为123字节,比请求消息长很多。这是因为DNS响应消息中多了请求消息所没有的应答部分、授权部分以及附加部分,这些会在后面的响应消息分析中详细讲解。
3.4 数据链路层节点
DNS请求报文:
DNS响应消息:
上图可以看出DNS请求和响应报文的源MAC地址和目的MAC地址是相反的,另外DNS请求和响应报文的以太网协议类型都是IP,也就是DNS协议层次中的网络层协议就是IP,这体现了DNS作为TCP/IP协议簇中协议的特性。
3.5 IP节点
DNS请求报文:
DNS响应报文:
DNS请求与响应报文IP层的相同点:
版本号:IPv4
报头长度:20字节,无其他选项
服务类型:最低优先级的一般服务切片偏移:0,无切片
协议ID:UDP(0x11H)
DNS请求与响应报文在IP层的区别: 数据报长度:上面已经分析过了。
标识符不同是因为请求和响应是两个不同的消息,源机器给出的区分分片的标识符不同。
生存期不同:请求消息中为64小时,响应消息中为60小时。
校验和不同。DNS请求和响应消息的IP层报头不同,所以校验和不同。源IP地址和目标IP地址不同。原因在前面的分析中已经说明。
3.6 UDP节点
DNS请求报文:
DNS响应消息:
DNS请求和响应报文的源端口和目的端口是相反的,其原因在前面的分析中已经说明。
请求报文UDP长度为53字节,响应报文UDP长度为89字节。
3.7 DNS节点
3.7.1 DNS请求报文头:
标识字段:用于匹配请求和响应
标志字段:
QR: 0,用于请求消息
:0000 (0),标准查询(正向解析)
AA:0,该字段只在服务器的响应中有效,在上图中未显示。
TC:0,消息未被截断
RD:1,请求服务器进行递归解析
RA:0,该字段只在服务器的响应中有效,在上图中未显示。
保留位:000
rCode:0000,无错误问题记录数:1
应答记录数:0(DNS请求报文中该字段为0)
授权记录数:0(DNS请求报文中该字段为0)
附加信息记录数:0(DNS请求报文中该字段为0)
问题部分:
查询类型:PTR,值为1,反向解析。
查询类型:IN,值为1,表示协议。
3.7.2 DNS响应报文
首都:
标识字段:用于匹配请求和响应,这里匹配的是DNS请求报文。
标志字段:
QR: 1,用于回复消息
:0000(0),标准查询(正向解析)(同请求报文)
AA:0,应答的服务器是该域的权威服务器
TC:0,消息未被截断
RD:1,请求服务端进行递归解析(与请求报文相同)
RA:1,服务器支持递归解析(响应RD)
3个保留位:000 rCode: 0000,无错误
问题记录数:1
答案数量:1
授权记录数:1 附加信息记录数:0 问题部分:
与请求报文相同,即作为对DNS请求报文的回答,DNS应答报文中的问题部分是请求报文中问题部分的副本。
答题部分:
域名:,指向问题部分的查询名称的指针,具体地址为10(0二进制地址)
类型:PTR,值为1,指针记录,IP到域名的解析。类别:IN,值为1,表示协议。
生存时间:1天
资源数据长度:10字节
资源数据:(DNS缓存服务器)
授权部分:
四、经验总结
通过对DNS域名系统的抓包实验的分析,加深了我们对DNS域名系统的理解和掌握。首先从DNS的含义上讲,DNS是由解析器和域名服务器两部分组成,其中域名服务器是指存储网络中所有主机的域名和对应IP地址并具有将域名转换为IP地址功能的服务器。它主要有主服务器和转发服务器两种形式。在了解了DNS的含义之后,对其具体的组成有了更加深入的了解。本次实验也让我对DNS的理解达到了理论与实践相结合的程度。另外,通过实验我们还初步掌握了软件的使用,也让我们感受到了自己进行实验的乐趣。
请扫描我获取注册证书
联系我们
扫一扫在手机端查看
-
Tags : 域名反向解析命令_对DNS域名系统的抓包分析
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。