4、基于 Wireshark软件的DNS协议分析
目 录实验目的 . .......................................................................................
目 录
实验目的 . .................................................................................................................... 2
1) 熟练地使用Wireshark 软件 ................................................................... 2 2) 运用软件分析网络协议 . ........................................................................... 2 实验任务 . .................................................................................................................... 2
1) 软件要求 ..................................................................................................... 2
2) 网络协议分析要求 .................................................................................... 2 软件介绍 . .................................................................................................................... 2
1) wireshark 软件的发展史: . .................................................................... 2
2) wireshark 的功能及相关知识 . ................................................................ 2
3) wireshark 所不能提供的功能 . ................................................................ 3 4) wireshark 软件运行的主界面 . ................................................................ 3 实验环境 . .................................................................................................................... 4
1) 软件要求....................................................................................................... 4
2) 硬件要求....................................................................................................... 4 实验内容和过程 . ...................................................................................................... 4
1) DNS 基本知识及原理 ................................................................................... 4
◆DNS 解析过程............................................................................................. 4
2) 域服务器报文 .............................................................................................. 5
◆不变部分含有6个定长域,各域分别占2个字节: ............................. 6
◆变化部分含有4个部分: ......................................................................... 6
3) 分析过程....................................................................................................... 7
(一)进入命令提示符中,查看当前的一些信息。 ................................. 7
(二)通过一个ping 实例,来获得域名解析数据包。............................ 8
(三)数据包列表分析 ................................................................................. 9
(四)运用第一个数据包(询问)的协议树分析解析过程: ............... 10
(五)运用第二个数据包(响应)的协议树分析解析过程: ............... 13 总结 ............................................................................................................................ 17
,基于wireshark 软件的分析报告
实验目的
1) 熟练地使用Wireshark 软件
Wireshark 是一个有名的网络端口探测器,是可以在Windows 、Unix 等各种平台运行的网络监听软件,它主要是针对TCP/IP协议的不安全性对运行该协议的机器进行监听。其功能是在一个共享的网络环境下对数据包进行捕捉和分析。
2) 运用软件分析网络协议
本实验的主要的目的就是对用Wireshark 捕获的数据包进行分析,尤其是针对网络协议(DNS )的分析。深入了解其基本原理,学会结合实际的数据来分析其原理。
实验任务
1) 软件要求
熟悉Wireshark 软件的一些基本功能,包括Wireshark 的用户界面如何使用,如何捕捉包,如何查看包,如何过滤包等。
2)网络协议分析要求
对捕获的数据包进行分析,主要是针对网络协议(DNS )的结合实例的分析。 软件介绍
1)wireshark 软件的发展史:
1997年以后,Gerald Combs 需要一个工具追踪网络问题并想学习网络知识。所以他开始开发Ethereal (Wireshark项目以前的名称) 以解决以上的两个需要。Ethereal 是第一版,经过数次开发,停顿,1998年,经过这么长的时间,补丁,Bug 报告,以及许多的鼓励,0.2.0版诞生了。此后不久,Gilbert Ramirez发现它的潜力,并为其提供了底层分析
1998年10月,Guy Harris 正寻找一种比TcpView 更好的工具,他开始为Ethereal 进行改进,并提供分析。
1998年以后,正在进行TCP/IP教学的Richard Sharpe 关注了它在这些课程中的作用。并开始研究该软件是否他所需要的协议。如果不行,新协议支持应该很方便被添加。所以他开始从事Ethereal 的分析及改进。从那以后,帮助Ethereal 的人越来越多,他们的开始几乎都是由于一些尚不被Ethereal 支持的协议。所以他们拷贝了已有的解析器,并为团队提供了改进回馈。 2006年项目Moved House重新命名为:Wireshark 。
2)wireshark 的功能及相关知识
Wireshark 是一个有名的网络端口探测器,是可以在Windows 、Unix 等各种
,平台运行的网络监听软件,它主要是针对TCP/IP协议的不安全性对运行该协议的机器进行监听。Wireshark 是网络包分析工具。网络包分析工具的主要作用是尝试捕获网络包, 并尝试显示包的尽可能详细的情况。你可以把网络包分析工具当成是一种用来测量有什么东西从网线上进出的测量工具,就好像使电工用来测量进入电信的电量的电度表一样。其功能相当于Windows 下的Sniffer ,都是在一个共享的网络环境下对数据包进行捕捉和分析,而且还能够自由地为其增加某些插件以实现额外功能。
Wireshark 是开源软件项目,发布遵循GNU General Public Licence (GPL协议), 所有源代码可以在GPL 框架下免费使用。这也就意味着,为了适合自己的需要,你可以自己对wireshark 进行修改。
3)wireshark 所不能提供的功能
另外,值得注意的是,wireshark 不能提供以下的功能:
①Wireshark 不是入侵检测系统。如果别人在您的网络做了一些他不被允许的奇怪的事情,Wireshark 不会警告您。但是如果发生了奇怪的事情,Wireshark 可能对察看发生了什么会有所帮助
②Wireshark 不会处理网络事务,它仅仅是“测量”(监视) 网络。Wireshark 不会发送网络包或做其它交互性的事情(名称解析除外,但您也可以禁止解析).
4)wireshark 软件运行的主界面
图1为软件运行后的主窗口界面,大多数打开捕捉包以后的界面都是这样子

图1 wireshark运行的主界面
◆主界面介绍
Wireshark 和其它的图形化嗅探器使用基本类似的界面,整个窗口被分成三个部分:
,ⅰ. 最上面为数据包列表,用来显示截获的每个数据包的总结性信息; ⅱ. 中间为协议树,用来显示选定的数据包所属的协议信息;
ⅲ. 最下边是以十六进制形式表示的数据包内容,用来显示数据包在物理层上传输时的最终形式。
实验环境
1)软件要求
该实验在Microsoft Windows XP 操作系统下完成,使用的软件是wireshark-win32-1.4.2版本;
2)硬件要求
奔腾Ⅱ300以上的电脑配置,10M 以上的网卡。
实验内容和过程
1)DNS 基本知识及原理
DNS(Domain Name System) 就是域名服务系统,它的作用就是域名到IP 地址的转换过程。IP 地址是网路上标识您站点的数字地址,为了简单好记,采用域名来代替ip 地址标识站点地址。任何域名都至少有一个DNS ,一般是2个(主DNS ,辅DNS )。因为两个DNS 可以轮回处理,第一个解析失败可以找第二个。这样只要有一个DNS 解析正常,就不会影响域名的正常使用。
◆DNS 解析过程
第一步:客户机提出域名解析请求, 并将该请求发送给本地的域名服务器。
第二步:当本地的域名服务器收到请求后, 就先查询本地的缓存, 如果有该纪录项, 则本地的域名服务器就直接把查询的结果返回。
第三步:如果本地的缓存中没有该纪录, 则本地域名服务器就直接把请求发给根域名服务器, 然后根域名服务器再返回给本地域名服务器一个所查询域(根的子域) 的主域名服务器的地址。
第四步:本地服务器再向上一步返回的域名服务器发送请求, 然后接受请求的服务器查询自己的缓存, 如果没有该纪录, 则返回相关的下级的域名服务器的地址。 第五步:重复第四步, 直到找到正确的纪录。
第六步:本地域名服务器把返回的结果保存到缓存, 以备下一次使用, 同时还将结果返回给客户机。
下面是解析过程的流程图:
,
图2 解析过程流程图
这里值得注意的是,ISP (当地网络接入商)的DNS 缓存是有时间限制的,一般是1个小时。前后2次间隔1个小时的话,它就去域名的DNS 上重新取得数据。这里说的是最前面一次和当前的比较。也就是说如果时间差距较大,就重新去域名的DNS 服务器上找。所以刷新就变的很有必要,否则缓存了一次以后,域名记录改了以后,ISP 就永远不去找新的记录了。
2) 域服务器报文
用户使用应用程序时,首先给出欲通信的对方主机的域名。应用程序在真正开始通信之前,首先必须解析出对方的IP 地址,这是一个域名解析过程。它将域名交给本地解析器软件,该软件首先在本地缓冲区中查找相应的绑定;如果查找不到,本地解析器构造一个询问报文,发往本地服务器,服务器根据响应情况回答一个响应报文。一旦解析器从本地缓冲区或服务器响应中获得信宿机IP 地址,交给应用程序,应用程序便可以开始真正的通信过程。 域服务器报文的格式如表1:


表1 域名服务器报文格式
请求报文与响应报文的格式相同,总的来说,一个域名服务器的报文分为两大部分:不变部分(图二中前三行)与可变部分(图二中后四行);变与不变是相对于长度而言的。
◆不变部分含有6个定长域,各域分别占2个字节:
① 标识(Identification ):用户用来识别其询问对应到哪个相应信息的码。 ② 参数(Parameter ):指出所请求的操作类型及一个响应码。
③ 问题数(Question ):在问题区内,问题信息的数目。
④ 答案数(Answer ):在答案区内,答案的数目,答案是指域名服务器对用
户提出的询问解析后所响应的信息。
⑤ 管理机构数(Authority ):管辖区内管辖信息的数目,管辖数目表示针对
此询问有响应的域名服务器的数目。
⑥ 附加信息数(Additional Information):表示在附加区域内额外的信息数目。
◆变化部分含有4个部分:
(一)问题部分(Question Section):由一组询问组成,各表目格式如表2:

该部分由用户填写。
(二)其余三部分为答案部分(Answer Section )、管理机构部分(Authority
Section )、以及附加信息部分(Additional Information Section)均由一组资源记录(Resource Record)组成。如表3所示:

其中,资源域名(Resource Domain Name)指出本资源记录所涉及的域名,其长度是任意的;
① 类型域(Type )指出资源记录中所含数据类型;
,② 类域(Class )指出数据类;
③ 生存时间域(TTL )包含一个整数,指出本资源记录可被缓冲区保存的时间(以秒计)。
TTL 是IP 协议包中的一个值,它告诉网络路由器包在网络中的时间是否太长而应被丢弃。TTL 的初值通常是系统缺省值,是包头中的8位的域。TTL 的最初设想是确定一个时间范围,超过此时间就把包丢弃。当记数到0时,路由器决定丢弃该包,并发送一个ICMP 报文给最初的发送者。默认情况下,Linux 系统的TTL 值为64或255,Windows NT/2000/XP系统的TTL 值为128,Windows 98系统的TTL 值为32,UNIX 主机的TTL 值为255。一般情况下Windows 系列的系统返回的TTL 值在100-130之间,而UNIX/Linux系列的系统返回的TTL 值在240-255之间。
(三)域名系统资源记录类型:
① A (Address) 记录是用来指定主机名(或域名)对应的IP 地址记录。用户可以将 该域名下的网站服务器指向到自己的web server上。同时也可以设置您域名的二级域名。
②MX (邮件路由记录),用户可以将该域名下的邮件服务器指向到自己的mail server 上,然后即可自行操控所有的邮箱设置。您只需在线填写您服务器的IP 地址,即可将您域名下的邮件全部转到您自己设定相应的邮件服务器上。
③CNAME (别名记录)。这种记录允许您将多个名字映射到同一台计算机。 通常用于同时提供WWW 和MAIL 服务的计算机。
④NS 即名字服务器,域的授权服务器名。
3)分析过程
(一)进入命令提示符中,查看当前的一些信息。
如下所示:
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:Documents and Settings�ministrator>ipconfig/all
Windows IP Configuration
Host Name . . . . . . . . . . . . : 939739AAEB584A0
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Unknown
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
,Ethernet adapter 无线网络连接:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Atheros AR5007EG Wireless Network Ad
apter
Physical Address. . . . . . . . . : 00-17-C4-44-76-DF
Dhcp Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IP Address. . . . . . . . . . . . : 192.168.1.107
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.1.1
DHCP Server . . . . . . . . . . . : 192.168.1.1
DNS Servers . . . . . . . . . . . : 218.2.135.1
61.147.37.1
Lease Obtained. . . . . . . . . . : 2010年11月28日 星期日 15:45:41
Lease Expires . . . . . . . . . . : 2010年11月28日 星期日 17:45:41
Ethernet adapter 本地连接:
Media State . . . . . . . . . . . : Media disconnected
Description . . . . . . . . . . . : Realtek RTL8102E/RTL8103E Family PCI
-E Fast Ethernet NIC
Physical Address. . . . . . . . . : 00-21-70-88-82-61
从无线网络连接中可以发现,当前主机的物理地址MAC 为
00-17-C4-44-76-DF ,IP 地址为192.168.1.107,子网掩码为255.255.255.0,缺省网关为192.168.1.1,域名服务器的IP 为218.2.135.1、61.147.37.1。
(二)通过一个ping 实例,来获得域名解析数据包。
C:Documents and Settings�ministrator>ping www.baidu.com
Pinging www.a.shifen.com [119.75.218.45] with 32 bytes of data:
Request timed out.
Reply from 119.75.218.45: bytes=32 time=23ms TTL=55
Reply from 119.75.218.45: bytes=32 time=34ms TTL=55
Reply from 119.75.218.45: bytes=32 time=230ms TTL=55
Ping statistics for 119.75.218.45:
Packets: Sent = 4, Received = 3, Lost = 1 (25 loss),
Approximate round trip times in milli-seconds:
Minimum = 23ms, Maximum = 230ms, Average = 95ms
,从中可以发现,域名www.baidu.com 的CNAME 为www.a.shifen.com ,其IP 地址为119.75.218.45。在此过程中,wireshark 捕获的数据包如图3所示:

图3 捕获的数据包
(三)数据包列表分析
序号为201及202的数据包列表总结性信息如下:


图4 数据包列表信息
从中我们不难发现,NO201是一条询问报文,源IP 地址为192.168.1.107,目的IP 地址61.147.37.1,即报文是从本地计算机发往本地域名服务器的。这也就是域名解析过程中的第一步:客户机提出域名解析请求, 并将该请求发送给本地的域名服务器。接下来就是本地的域名服务器收到请求后, 查询本地的缓存, 看是否有该纪录项。
从NO202可以知道本地域名服务器向客户机回复了一条报文,则可以推断,本地域名服务器缓存中有该项纪录,故直接把查询的结果返回给客户机。经查询可知,IP 地址段:在119.75.208.0 - 119.75.223.255 之间的记录为北京市 百度公司的,故域名www.baidu.com 首选地IP 地址为119.75.218.45。
,(四)运用第一个数据包(询问)的协议树分析解析过程:
对于NO201数据包的协议树所示的具体的协议属性如下图5所示:

图5 NO201数据包协议树信息
图5中上面的是协议树的内容,用来显示选定的数据包所属的协议信息;下边是以十六进制形式表示的数据包内容,用来显示数据包在物理层上传输时的最终形式。
① 首先看协议树中的第一项:

图6 协议树第一项信息
该帧显示了一些基本信息,包括帧到达时间,各种时间差,帧及捕获的包长,帧中所含有的协议(Ethernet 、ip 、udp 、dns 协议)等信息;
② 协议树的第二项为:

图7 协议树第二项信息