DNS课程设计.docx
《DNS课程设计.docx》由会员分享,可在线阅读,更多相关《DNS课程设计.docx(27页珍藏版)》请在冰豆网上搜索。
DNS课程设计
课程设计(论文)
题目名称DNS网络协议分析及实现
课程名称网络协议分析课程设计
学生姓名
学号
系、专业信息工程系、网络工程专业
指导教师
年月日
1课程设计目的
1.1课程设计实际的意义
DNS是基本的TCP/IP网络服务之一,用数字表示IP地址不仅难以记忆,而且不够形象、不够直观,于是产生了域名方案,即为联网了的计算机赋予有意义的名称。
Internet上的域名及IP地址之间是一一对应的,计算机之间通过IP地址进行通信,将域名转换为IP地址称为域名解析,DNS(DomainNameServer)就是专门进行域名解析的服务器。
要正确部署DNS服务器,理解区域(Domain)的关系就非常的重要。
对企业用户来说,还可以通过域名来反映自己的品牌和服务内容,以提升企业形象。
总之,DNS在TCP/IP网络中具有非常重要的地位,所以本次课程设计是具有实际意义的。
1.2DNS服务器配置的目的
1)掌握DNS服务器的概念
DNS是域名服务器(DomainNameServer)的缩写,在TCP/IP网络中是一种很重要的网络服务,它用于将易于记忆的域名和不易记忆的IP地址进行转化。
2)掌握DNS服务器工作原理及功能
DNS通过在网络中创建不同的区域,并采用一个分布式数据系统进行主机名和地址的查询。
当在客服机的浏览器中键入要访问的主机名时就会触发一个IP地址的查询请求,请求会自动发送到默认的DNS服务器,DNS服务器就会从数据库中查询该主机所对应的IP地址,并将找到IP地址作为查询结果返回。
浏览器得到IP地址后,就根据IP地址在Internet中定位所要访问的资源。
3)掌握DNS的组成及查询
1 域名空间
2 域名服务器
3 解析器
4)DNS服务器的类型
1 主域名服务器(masterserver)
2 辅助域名服务器(slaveserver)
3 缓存域名服务器(cachingonlyserver)
1.3DNS的重要性
从技术角度看:
DNS解析是互联网绝大多数应用的实际寻址方式,域名技术的再发展、以及基于域名技术的多种应用,丰富了互联网的应用和协议。
而从资源角度看,域名是互联网上的身份标识,是不可重复的唯一标识资源,互联网的全球化使得域名成为标识一国主权的国家战略资源。
我们此次课程设计就是为了加深对DNS协议的理解,以及掌握流量分析工具的使用,学习基本的流量分析方法。
2课程设计的任务和内容
2.1课程描述
DNS服务器是计算机域名系统(DomainNameSystem或DomainNameService)的缩写,由解析器和域名服务器组成。
域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。
其中域名必须对应一个IP地址,而IP地址不一定有域名。
域名系统采用类似目录树的等级结构。
域名服务器为客户机/服务器模式中的服务器方,它主要有两种形式:
主服务器和转发服务器。
将域名映射为IP地址的过程就称为“域名解析”。
DNS采用客户/服务器机制,实现名称及IP地址的转换。
DNS服务器上提供域名解析库,响应客户端的域名查询请求,DNS客户端也称解析程序,用来查询服务器获取名称解析信息。
DNS是基本的TCP/IP网络服务之一,用数字表示IP地址难以记忆,而且不够形象、直观,于是就产生了域名方案,即为联网计算机赋予有意义的名称。
在Internet上域名及IP地址之间是一一对应的,计算机之间通过IP地址进行通信,将域名转换为IP地址称为域名解析,DNS(DomainNameServer)就是专门进行域名解析的服务器。
2.2设计内容
理解域名及域名解析的基本概念,且熟练掌握Windows下的DNS服务器的配置,能使用Wireshark抓取DNS的数据包并进行具体的分析。
3网络协议分析环境和分析工具
3.1协议分析环境
1)安装Windows2000/2003Server/XP操作系统的PC计算机一台。
2)每台PC具有一块以太网卡,通过双绞线及局域网相连。
3)每台PC运行网络协议分析软件Ethereal。
(Wireshark)
由于本次课程设计我们是关于DNS的分析及实现,需要Wireshark这个网络分析工具,Wireshark是一个抓取网络数据包的工具,这对分析网络问题是非常重要的,当我们的电脑中没有此网络分析工具时,我们可以通过下面方式下载、安装。
首先在如下电脑上下载“Wireshark”并在电脑上安装;
其次打开安装好Wireshark程序,会看到如下图所示界面:
图3.1.1Wireshark主界面
然后打开“Capture”->“Options”,打开后界面如下:
图3.1.2抓包选项
CaptureFilter这一栏是抓包过滤,一般情况下可以不理会,留为空。
随后我们就可以点击Start了,如下图:
图3.1.3正在抓包
现在已经在抓包,抓包结束后点击上图中红框的按钮停止抓包。
这样我们就抓到了数据包。
再打开“File”->“Save”,出现下面界面:
图3.1.4保存文件
选择好保存路径和文件名后,点击保存。
这样我们就完成了一次抓包并保存,剩下的就是要去分析所抓取的数据包中的内容,发现网络中的故障并且能做出相应的处理。
3.2网络拓扑图
DNS服务器主模块包含三个子模块,分别如下:
1)命令行参数处理模块:
该模块用来处理通过命令行提示符来启动这个DNS服务器时所输入的命令行参数,管理员通过设置不同的参数可以使DNS服务器显示不同程度的提示和调试信息。
所以这模块主要是依照输入的参数设置标志数据,以控制最后的各种信息的输出。
2)本地解析模块:
本模块是在本DNS服务器本地保存的曾经解析过的或者需要屏蔽额域名和其对应IP信息文件中查找从应用程序来的请求解析的域名,在这个文件中查到需要的域名后取出对应的IP地址,并构造DNS应答数据包返回给发送此DNS域名解析请求的应用程序。
3)外部DNS服务器解析模块:
当本地解析失败时,本DNS服务器会调用外部DNS服务器解析模块。
此模块将应用程序发送的DNS请求报文转发给外部DNS服务器然后接收外部服务器返回的应答信息,并根据这个信息给予应用程序相应的DNS应答。
三个模块及主模块的关系图如下:
图3.2.1主模块调用这三个并列的模块,而本地解析模块调用文件查找子模块
图3.2.2DNS域名解析拓扑图
3.3协议分析工具
Wireshark是世界上最流行的网络分析工具之一。
这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息。
及很多其他网络工具一样,Wireshark也使用pcapnetworklibrary来进行封包捕捉。
可以破解局域网内QQ、邮箱、msn、账号等的密码!
在使用Wireshark分析工具时,我们需要了解Wireshar在工作时的一些基本知识:
因为Wireshark的协议会有很多种,例如:
IP,arp,rarp,decnet,http,,tcpandudp等。
如果没有特别指明它是什么协议,则默认使用所有支持的协议;Wireshark的方向也会有不同,可能的值有:
src,dst,srcanddst,srcordst,如果没有特别指明来源或目的地,则默认使用"srcordst"作为关键字;Wireshark的主机Host(s)也会有相应的规则,可能的值有:
net,port,host,portrang。
如果没有指定此值,则默认使用"host"关键字。
LogicalOperations(逻辑运算)可能的值:
not,and,or,否("not")具有最高的优先级。
或("or")和及("and")具有相同的优先级,运算时从左至右进行。
使用Wireshark所需要注意的事项:
当使用关键字作为值时,需要使用反斜杠“\”,"etherproto\IP"(及关键字"IP"相同)。
这样写将会以IP协议作为目标;"IPproto\icmp"(及关键字"icmp"相同)。
这样写将会以ping工具常用的icmp作为目标。
可以在"IP"或"ether"后面使用"multicast"及"broadcast"关键字。
当想排除广播请求时,"nobroadcast"就会非常有用。
4网络协议分析设计及实现过程
当我们需要对具体的一个协议进行分析及实现时,我们需要了解它的报文格式以及一些及之相关的问题,本次课程设计我们主要分析的是DNS协议,所以我们需要了解此协议的基本知识。
4.1DNS简介
DNS是由解析器以及域名服务器组成的。
域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址,并具有将域名转换为IP地址功能的服务器的服务器。
其中域名必须对应一个IP地址,而IP地址不一定会有域名。
将域名映射为IP地址的过程就称为“域名解析”。
在Internet上域名及IP地址之间是一对一(或者多对一)的,域名和IP地址之间的转换过程就称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。
DNS命名用于Internet等TCP/IP网络中,通过用户友好的名称查找计算机和服务。
域名的最终指向是IP。
DNS是因特网的一项核心服务,作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
4.2DNS域名结构
通常Internet主机域名的一般结构为:
主机名---三级域名---二级域名---顶级域名。
Internet的顶级域名由Internet网络协会域名注册查询负责网络地址分配的委员会进行登记和管理,它还为Internet的每一台主机分配唯一的IP地址。
全世界现有三个大的网络信息中心:
位于美国的Inter-NIC,负责美国及其他地区;位于荷兰的RIPE-NIC,负责欧洲地区;位于日本的APNIC,负责亚太地区。
4.3DNS解析器
解析通常需要遍历多个名称服务器,找到所需要的信息。
然而,一些解析器的功能更简单地只用一个名称服务器进行通信。
这些简单的解析器依赖于一个递归名称服务器(称为“存根解析器”),为他们寻找信息的执行工作。
4.4DNS报文格式
标识
参数
问题数
回答数
管理机构数
附加信息数
问题区
回答区
管理机构区
附加信息区
图4.4.1DNS报文格式以及各参数比特位含义
DNS报文首部的4个数量标识字段及随后的4个区域对应,指明了每个区域包含的记录数量。
比如在进行域名查询时,可以同时请求解析多个名字。
如果同时需要解析四个名字,则问题区包含4个问题,相应的问题数为4.2中DNS查询报文中每个查询问题的格式:
查询域名
查询类型
查询类
图4.4.2问题区报文格式
查询域名:
要查找的名字,指明请求解析的域名,长度可变。
表示域名时采用“长度+字符串”的形式,域名中的每个标号之前都有1字节的长度字段,用于指示标号长度。
域名结束则用0表示。
查询类:
通常值为1,表示是互联网的地址,也就是IP协议族的地址。
查询类型:
有很多种查询类型,一般最常用的查询类型是A类型(表示查找域名对应的IP地址)和PTR类型(表示查找IP地址对应的域名)。
4.5DNS响应报报文中的资源记录格式
图4.5.1DNS相应报文格式
域名:
记录中资源数据对应的名字,它的格式和查询名字段格式相同。
类型:
类型说明RR的类型码,类通常为1,指Internet数据。
生存时间:
客户程序保存该资源记录的秒数。
资源数据长度:
说明后面资源数据的数量以及该数据的格式依赖于类型字段的值,对于类1(A记录)记录数据是4字节的IP地址。
资源数据:
服务器端返回给客户端的记录数据。
4.6数据包DNS查询(DNSquery)
4.7数据包DNS响应(DNSResponse)
5DNS协议分析及实现过程
5.1进入CMD运行界面,
在电脑上点击“开始”―>“运行”,输入cmd,进入命令提示符中,查看当前的一些信息,在界面中输入ipconfig/all命令,可得到如图所示:
图5.1.1cmd运行界面
从无线网络的连接中,通过上述截图我们可以发现,当前主机的物理地址MAC为80-56-F2-EC-B8-1D,IP地址为172.19.95.158,子网掩码为255.255.255.0,默认网关是172.19.95.254,域名服务器的IP地址为59.51.78.210。
5.2通过一个ping实例,来获得域名解析数据包
图5.2.1pingXX域名界面
当ping完XX网址后,在Wireshark网络分析界面点击红色按钮停止抓包,我们可以对DNS协议的数据包进行简单的分析,在Wireshark界面中的filter中输入DNS我们可以过滤掉其他的包,减少我们的工作量,以下就是我们所捕捉到的数据包:
图5.2.2DNS数据包
下图为两个DNS数据包:
图5.2.3DNS请求及响应包
从中我们不难发现,NO15632是一条询问报文,源IP地址为172.19.95.158,目的IP地址为59.51.78.210,即报文是从本地计算机发往本地域名服务器的。
这也就是域名解析过程中的第一步:
客户机提出域名解析请求,并将该请求发送给本地的域名服务器。
接下来就是本地的域名服务器收到请求后,查询本地的缓存,看是否有该记录项。
由No15646可以知道本地域名服务器向客户机回复了一条报文,源IP地址是59.51.78.210,目的地址是172.19.95.158,即此报文是域名服务器发送给计算机的。
对于NO15632数据包的协议树所示的具体协议属性如下图所示:
图5.2.4协议树中所有协议
5.3请求包协议分析
上图是协议树的内容,用来显示选定的数据包所属的协议信息;下边是以16进制形式表示的数据包的内容,用来显示数据包在物理层上传输时的最终形式。
1)首先看协议树中的第一项:
图5.3.1协议树中的第一项
该帧显示了一些基本信息,包括帧到达时间,各种时间差,帧及捕获的包长,帧中所含的协议(Ethernet,IP,udp,dns协议)等信息;
2)协议树的第二项:
图5.3.2协议树中的第二项
这是Ethernet协议的信息,原物理地址MAC为20:
1a:
06:
42:
2f:
95,目的物理地址MAC为:
00:
46:
4b:
d5:
81:
f1,类型IP(0x0800)表示上一层使用的是IP协议数据报。
3)协议树的第三项为:
图5.3.3协议树中的第三项
这是IP协议的信息,而IP数据报的格式如下表所示:
图5.3.4IP数据包格式
由上述截图可知,源IP地址及目的IP地址分别为172.19.95.158、59.51.78.210,且当前IP协议的版本号为“4”长度为4比特。
头标长度为20字节,所谓头标长是一个4比特的域,指出以32比特字长为单位的包头长度。
服务类型为区分服务,总长59字节,整个IP数据包长度为59字节。
该标志字段为0x66d5(26325)。
标志位为0,片偏移为0,生存时间为64,即数据报可以经过的最多的路由器数为128个,协议是udp协议,也就是说,IP层所封装的上层协议为udp。
4)协议树的第四项为:
图5.3.5协议树中的第四项
这是Udp协议的相关信息,Udp报文格式如图所;
图5.3.6UDP报文格式
由上面协议树信息可以知道,源端口为55472,目的端口为53,数据包长度为39字节,及校检验和为0x95ef。
5)协议树的最后一项:
图5.3.7协议树中的第五项
这是DNS协议的信息,且是条询问报文,答复在NO15646随机产生一个校验数0xf106,注意:
TransactionID是随机产生的,DNS服务器返回DNS应答信息时,使用的TransactionID必须和你询问时使用的一致,才会被机器接受。
域名服务器报文参数域及各位意义:
这次询问属于标准询问,报文没有被截断,且报文希望能够递归,报文保留。
在问题区内,问题信息的数目为1,而在答案区内答案的数目为0,表示域名服务器对用户提出的询问解析后所相应的信息数为0,管理机构数及附加信息数为0。
问题部分:
图5.3.8询问域名
表示询问域名,询问类型为A即希望能够回答所对应的机器名IP地址,类型域值为0x0001表示Internet数据。
5.4运用第二个数据包(响应)的协议树分析解析过程
分析NO15646数据包的信息,协议树信息如图所示:
图5.4.1NO15646数据包协议树信息
1)协议树的第一项为:
图5.4.2协议树中的第一项
Frame15646显示了一些基本信息,包括帧到达时间,各种时间差,帧及捕获的包长,帧中所含的协议(Ethernet,IP,udp,dns协议)等信息。
2)协议树的第二项为:
图5.4.3协议树中的第二项
这是Ethernet协议的信息,原物理地址MAC为00:
46:
4b:
d5:
81:
f1,目的物理地址MAC为,20:
1a:
06:
42:
2f:
95,类型IP(0x0800)表示上一层使用的是IP协议数据报。
3)协议树的第三项为:
图5.4.4协议树中的第三项
由图可知,目的地址及源IP地址分别为172.19.95.158、59.51.78.210,且当前的IP协议的版本号为“4”长度为4比特。
头标长度为20字节,所谓的头标长是一个4比特的域,指出以32比特字长为单位的包头长度。
服务类型为区分服务,总长118字节,即整个IP数据包的长度为118字节,该标志字段为0x3cf0(15600)。
标志位为0,片偏移为0,生存时间为56,即数据报可以经过的最多的路由器数为56个,协议是udp协议,也就是说,IP层所封装的上层协议为udp。
4)协议树的第四项为:
图5.4.5协议树中的第四项
由上面协议树信息可以知道,源端口为53,目的端口为55472,则数据包的长度为98字节,及校检验和为0x8c9e。
5)协议树的最后一项为:
图5.4.6协议树中的第五项
这是DNS协议信息,是对NO的答复,可见此处随机产生的校验数为0xf106,及询问时的一致,故能够被接受。
由域名服务器参数域各位意义可知,该报文是条标准响应询问,不是权威性的回答,报文没有被截断,且报文希望能够递归,报文保留。
在问题区内,问题信息的数目为1,而在答案区内答案的数目为3,表示域名服务器对用户提出的询问解析后所相应的信息数为0,管理机构数及附加信息数为0。
图5.4.7问题部分及答案数信息
由上可知,问题区内的问题是要得到域名的IP地址,答案区内有三条回复,第一条是域名的别名CNAME,,第二、第三条是请求类型为A的记录得域名对应的IP地址为180.97.33.108和180.97.33.107
图5.4.8查询域名的基本信息
5课程设计总结
通过本次课程设计,我对DNS协议有了更深一步的理解,并且能够通过使用Wireshark流量分析工具,进行抓包、过滤、筛选等一系列操作进而获取到有用的数据进行观察、分析、处理。
同时让我对网络协议分析所学习的知识得到了更深刻的了解。
加深了对抓去数据包知识的理解,学会了对数据包数据进行初步的分析。
自己动手画网络拓扑图,深刻感觉到图解比文字更直观形象。
在最后整理的文档的时候才发现,原来调格式竟是一项如此繁琐的工作,不仅严峻考验了自己的耐心及细心,而且也突显了自己对Word文档处理不够熟练,在这方面的水平还有待加。
同时也让我明白了,通过实践和动手操作能使得我更加快速的学到实际并有用的东西。
就课程设计而言,我们需要对系统的功能和要求做出详细的分析,合理分解任务,还学会了一种能力就是借鉴别人的方法和经验,以及查找资料和整合处理资料,并为己所用。
不仅克服了自己的思维惰性,还加强了思维严谨性。
我对Wireshark的使用和对DNS协议的分析还处在一个初级的阶段,要想掌握它们,要学习的还有很多,我也会努力拓展自己的思维,努力去寻求新的方法,方便自己更好的学习。
参考文献
[1]罗军勇等.网络协议分析[M].机械工业出版社,2009.7
[2]阎丕涛等.网络分析及测试[M].大连理工大学出版社,2008.9
[3]谢希仁《计算机网络》(第六版)[M].北京:
电子工业出版社,2012.6
致谢
通过本次课程设计,我们综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力得到了有效的提高,这为以后毕业设计论文打下了基础。
对工作的合理分配,既体现了每个人独立思考的方面,也证实了我们的团结协作能力。
课程设计是把我们所学的理论知识进行系统的总结并应用于实践的良好机会,有利于加强我们用知识理论来分析实际问题的能力,而且加强了我们对知识认识的实践度,巩固了我们的理论知识,深化了对知识的认识。
在这次课程设计中我遇到了许多问题和麻烦,得到了老师的帮助和指导,还有好搭档为我及时指出错误。
这次课程设计的圆满完成,在此我要对指导老师和搭档表示由衷的感谢,祝愿老师工作顺心、搭档学业有成。