实验九DNS解析实验资料.docx
- 文档编号:28894563
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:26
- 大小:1.33MB
实验九DNS解析实验资料.docx
《实验九DNS解析实验资料.docx》由会员分享,可在线阅读,更多相关《实验九DNS解析实验资料.docx(26页珍藏版)》请在冰豆网上搜索。
实验九DNS解析实验资料
计算机科学与技术学院计算机网路实验报告
实验项目DNS解析实验及HTTP分析实验日期2016/6/12
一实验目的
1.1理解DNS系统的工作原理。
1.2熟悉DNS服务器的工作过程。
1.3熟悉DNS报文格式。
1.4理解DNS缓存的作用。
二实验原理
2.1DNS及其解析
Internet上的每台主机都有一个唯一的全球IP地址,IPv4中的IP地址是由32位的二进制数组成的。
这样的地址对于计算机来说容易处理,但对于用户来说,即使将IP地址用十进制的方式表示,也不容易记忆。
而主机之间的通信最终还是需要用户的操作,用户在访问一台主机前,必须首先获得其地址。
因此,我们为网络上的主机取一个有意义又容易记忆的名字,这个名字称为域名。
虽然我们为Internet上的主机取了一个便于记忆的域名,但通过域名并不能直接找到要访问的主机,中间还需要一个从域名查找到其对应的IP地址的过程,这个过程就是域名解析。
域名解析的工作需要由域名服务器DNS来完成。
域名的解析方法主要有两种:
递归查询(RecursiveQuery)和迭代查询(IterativeQuery)。
一般而言,主机向本地域名服务器的查询米用递归查询,而本地域名服务器向根域名服务器的查询通常采用迭代查询。
为了提高解析效率,在本地域名服务器以及主机中都广泛使用了高速缓存,用来存放最近解析过的域名等信息。
当然,缓存中的信息是有时效的,因为域名和IP地址之间的映射关系并不总是一成不变的,因此,必须定期删除缓存中过期的映射关系。
2.2DNS报文格式
DNS请求和应答都用相同的报文格式,分成5部分(有些部分允许为空),如图所示。
HEADER是必需的,它定义了报文是请求还是应答,也定义了报文的其他部分是否需要存在,以及是标准查询还是其他。
HEADER段的格式如图所示。
HEADER中的FLAG(标志)部分结构如图5-3所示
各部分含义如下:
QR:
查询/响应标志位。
opcode:
定义查询或响应的类型。
AA:
授权回答的标志位,该位在响应报文中有效。
TC:
截断标志位。
RD:
该位为1表示客户端希望得到递归回答。
RA:
只能在响应报文中置为1,表示可以得到递归响应。
zero:
保留字段,用全0填充。
rcode:
返回码,表示响应的差错状态。
QUESTION部分包含着问题,可以为多个。
每个问题的格式如图所示。
ANSWER(应答)、AUTHORITY(授权应答)、ADDITIONAL(附加信息)部分都共用相同的格式:
资源记录RR(ResourceRecord)。
资源记录可包含多个,其个数由报文首部对应的数值确定,每个资源记录格式如图所示。
三实验要求
3.1拓扑图
3.2DNS域名服务器的层次结构
3.3IP地址配置
3.3其他预配置
本实验需要在Web服务器设备和中开启HTTP服务并设置其内容,关闭其他服务。
另外,还需要进行以下几项预配置(已完成)。
(1)预配置路由器的静态路由
Router0、Router1及Router2预配置的静态路由如图
(2)预先开启并配置域名服务器的DNS服务
root_dns设备添加的资源记录如图
cn_dns设备添加的资源记录如图
com_dns设备添加的资源记录如图
_dns设备添加的资源记录如图
四实验步骤、结果(程序+注释+截图)及分析
4.1观察本地域名解析过程
4.1.1步骤一:
在PC的浏览器窗口请求内部Web服务器的网页
单击Simulation(模拟)选项卡进入模拟模式。
在EventListFilters(事件列表过滤器)区域中,单击EditFilters按钮,仅选择DNS事件。
单击逻辑工作空间中的PC,在Desktop(桌面)选项卡中打幵WebBrowser(Web浏览器),在URL框中输入,然后单击Go(转到)按钮。
最小化模拟浏览器窗口。
4.1.2步骤2:
捕获DNS事件并分析本地域名解析过程
在SimulationPanel(模拟面板)中单击AutoCapture/Play按钮,此时会播放PC与Server之间的数据包交换动画,并且相关的事件会被添加到EventList中。
捕获结束时将会出现一个BuffFull(缓冲区满)的对话框,该对话框提示已达到事件数量的最大值,有两个按钮ClearEventList(清除事件列表)和ViewPreviousEvents(查看历史事件),单击ViewPreviousEvents(查看历史事件)按钮关闭对话框。
在EventList区域中,单击Info列中的某个DNS事件的单色框,将会打开相应的PDUInformation窗口。
本步骤需要查看该窗口OSIModel选项卡中InLayers和OutLayer的Layer7的信息以及Inbound/OutboundPDUDetails(入站/出站PDU详细数据)选项卡中第7层的PDU信息。
本地DNS服务器的解析过程大致如下。
由于PC中设置了DNS服务器的地址为192.168.2.1,因此当PC输入域名请求网页时,它将作为DNS客户端向本地域名服务器cn_dns发送一个DNS查询请求,请求域名的IP地址。
本地域名服务器cn_dns收到PC的DNS查询请求后,首先尝试在本地区域文件查找,发现确实存在相应的资源记录,于是将域名对应的IP地址192.168.5.1放入DNS的应答报文发送给PC。
PC收到本地域名服务器cn_dnS的应答报文后,取出报文中解析出的IP地址192.168.5.1,并对其进行访问,此时在WebBrowser(Web浏览器)中显示相应的Web页面。
完成后单击ResetSimulation(重置模拟)按钮,将原有的事件全部清空;同时关闭PC的WebBrowser(Web浏览器)窗口。
4.2任务二:
观察外网域名解析过程
4.2.1步骤1:
在PC的浏览器窗口请求外部Web服务器的网页
保持模拟模式中EventListFilters(事件列表过滤器)区域的选择(仍为仅选择DNS事件)不变。
单击逻辑工作空间中的PC,在Desktop(桌面)选项卡中打开WebBrowser(Web浏览器),在URL框中输入,然后单击Go按钮。
最小化模拟浏览器窗口。
4.2.2步骤2:
捕获DNS事件并分析外网域名解析过程
在SimulationPanel(模拟面板)中单击AutoCapture/PIay按钮进行捕获,当捕获结束出现BuffFull(缓冲区满)的对话框时,单击ViewPreviousEvents按钮关闭对话框。
应注意重点观察解析外网域名时各级域名服务器的具体解析过程。
此处可忽略路由器和交换机的转发过程,仅分析DNS的请求和响应报文在DNS服务器之间的交互情况。
DNS服务器之间的解析过程如图所示。
1 PC向本地域名服务器cn_dns发送一个DNS查询请求包请求解析域名。
2 本地域名服务器cn_dnS收到PC的DNS查询请求后,在本地区域文件中未找到相应的资源记录,于是cn_dns作为DNS客户端向根域名服务器root_dns发送DNS请求包请求解析域名。
3 根域名服务器root_dns收到cn_dns发来的DNS查询请求后,在本地区域文件中未能直接解析出域名,但找到能解析“.com”后缀的顶级域名服务器com_dns,于是root_dns也作为DNS客户端向顶级域名服务器com_dns发送DNS请求包,请求解析域名
4 顶级域名服务器com_dns收到root_dns发来的DNS查询请求后,在本地区域文件中未能直接解析出域名,但找到能解析“”后缀的权限域名服务器_dns,于是com_dns也作为DNS客户端向权限域名服务器_dns发送DNS请求包请求解析域名。
5 权限域名服务器_dns收到com_dns发来的DNS查询请求后,在本地区域文件中找到相应的资源记录直接解析出域名,于是将IP地址192.168.6.2写入DNS应答报文中发送给顶级域名服务器com_dns。
6 com_dns作为DNS客户端收到DNS应答报文后,取出IP地址192.168.6.2,同时作为DNS服务器将IP地址写入DNS应答报文中发送给根域名服务器root_dns。
7 root_dns作为DNS客户端收到DNS应答报文后,取出IP地址,同时作为DNS服务器将IP地址写入DNS应答报文中发送给本地域名服务器cn_dns。
8 cn_dns作为DNS客户端收到DNS应答报文后,取出IP地址192.168.6.2,同时作为DNS服务器将IP地址写入DNS应答报文中发送给PC。
PC收到本地域名服务器cn_dns的应答报文后,取出IP地址192.168.6.2,并对其进行访问,此时在WebBrowser(Web浏览器)中显示相应的Web页面。
完成后单击ResetSimulation(重置模拟)按钮,将原有的事件全部清空;同时关闭PC的WebBrowser(Web浏览器)窗口。
4.3任务三:
观察缓存的作用
4.3.1步骤1:
查看本地域名服务器cn_dns的缓存
查看缓存有两种方法:
单击逻辑工作空间中的本地域名服务器cn_dns,在Config(配置)选项卡中选择DNS服务,并单击页面下方的DNSCache(DNS缓存)按钮,查看此时本地域名服务器cn_dns中的缓存。
先选择工具栏中的Inspect(查看)工具,单击逻辑工作空间中的本地域名服务器cn_dns,在弹出的快捷菜单中选择DNSCacheTable(DNS缓存表)即可查看此时本地域名服务器cn_dnS中的缓存。
查看完后重新选择工具栏中的Select(选取)工具。
4.3.2步骤2:
在PC的浏览器窗口请求外部Web服务器的网页
重复任务二,再次观察此次解析外网域名的过程。
由于PC中设置了DNS服务器的地址为192.168.2.1,因此当PC输入域名请求网页时,它将作为DNS客户端向本地域名服务器cn_dns发送一个DNS查询请求,请求域名的IP地址。
本地域名服务器cn_dns收到PC的DNS查询请求后,首先尝试在本地区域文件查找,发现确实存在相应的资源记录,于是将域名对应的IP地址192.168.5.1放入DNS的应答报文发送给PC。
PC收到本地域名服务器cn_dnS的应答报文后,取出报文中解析出的IP地址192.168.5.1,并对其进行访问,此时在WebBrowser(Web浏览器)中显示相应的Web页面。
五实验遇到的困难及解决
1.DNS缓存有什么作用?
在PacketTracer中如何清空DNS缓存?
答:
DNS缓存用来存放最近解析过的域名等信息,因此可以提高解析效率。
若需要在PacketTracer中清空某个DNS服务器的缓存,可以进入该DNS服务器的配置窗口,单击窗口下方的DNSCache按钮,在弹出的窗口中单击下方的ClearCache按钮即可把DNS缓存清空。
2.本实验中PC与本地域名服务器cn_dns之间的解析是递归还是迭代?
本地域名服务器cn_dns与根域名服务器root_dns之间呢?
若后者用另一种解析方法,则域名服务器之间DNS的请求和应答的交互过程应如何?
答:
本实验中PC与本地域名服务器cn_dns之间的解析是递归查询,本地域名服务器cn_dns与根域名服务器root_dns之间也是递归查询。
若后者用的是迭代查询,则当cn_dns向根域名服务器root_dns请求解析而root_dns无法解析出结果时,不是由root_dns全权帮助cn_dns直接解析出结果并将解析结果告知cn_dns而是root_dns会告诉cn_dns应该向哪一个域名服务器进行查询,剩下的解析由cn_dns自己进行。
六实验心得总结
通过本次实验,理解了DNS系统的工作原理,熟悉了DNS服务器的工作过程及DNS报文格式,DNS协议使用运输层的UDP。
实验二:
HTTP分析
一实验目的
1.1 熟悉HTTP协议的工作过程。
1.2理解HTTP报文的封装格式。
二实验原理
WWW是WorldWideWeb的缩写,中文称为“万维网”,常简称为Web。
它由欧洲原子核研究组织(CERN)研制,其目的是为全球范围的科学家利用Internet方便地进行通信、信息交流和信息查询。
它是目前Internet上发展最快、应用最广的信息浏览机制,大大方便了广大非网络专业人员对网络的使用,在很大程度上促进了Internet的发展。
WWW己不是传统意义上的物理网络,而是在超文本和超媒体基础上形成的信息网络。
HTTP(HyperTextTransferProtocol,超文本传输协议)是一个详细规定了浏览器和WWW服务器之间互相通信的规则的集合,是通过Internet从WWW服务器传输超文本到本地浏览器的数据传送协议,是万维网交换信息的基础。
RFC1945定义了HTTP1.0版本,而最著名的就是RFC2616,它定义了今天普遍使用的一个版本HTTP1.1。
2.1HTTP的主要特点
1)简单快速
客户与服务器连接后,HTTP要求客户必须向服务器传送的信息只有请求方法和路径,因而HTTP服务器的程序规模也就相应比较小而且简单,与其他协议相比其时间开销也就较少,通信速度也较快,能够更加有效地处理客户机的大量请求,得到了广泛的使用。
2)灵活
HTTP允许传输的数据对象可以是任意类型的,类型由Content-Type加以标记。
3)无连接
无连接的含义是限制每次建立的TCP连接只处理一个请求,当客户收到服务器的应答后立即断开连接。
这样,服务器不会专门等待客户发出请求也不会在完成一个请求后还保持原来的连接,而是会立即断开连接、释放资源。
采用这种方式可以充分利用网络资源,节省传输时间。
无连接也可以称为非持久连接,HTTP1.0使用的就是非持久连接。
而在HTTP1.1中则引入了持久连接,允许在同一个连接中存在多次数据请求和响应,服务器在发送完响应后并不关闭TCP连接,而客户端可以通过这个连接继续请求其他对象。
4)无状态
HTTP是无状态协议。
无状态是指协议对于事务处理没有记忆能力。
同一个客户第二次访问同一个服务器上的页面时,服务器的响应方式完全与第一次被访问时相同。
无状态性使得服务器在不需要先前已传送过的信息时,响应速度较快。
当然,这一特点也意味着如果后续的处理需要前面已经传送过的信息,也还是必须重传,这样必然导致每次连接传送的数据量增大而降低网络资源的利用率。
5)请求响应模型
HTTP—定是由客户端发起请求,而后服务器才回送响应。
换句话说,当客户端没有发起请求的时候,服务器无法主动将消息推送给客户端。
2.2HTTP事务处理过程
HTTP采用的是请求/响应的握手方式,只有当客户发出请求后,服务器才会对其进行响应。
每一次HTTP的操作称为一个事务。
在WWW客户(通常是浏览器)发出请求之前,每个WWW网点的服务器(通常称为Web服务器)进程需要不断地监听TCP的端口80,以便发现是否有WWW客户向它发出连接建立请求。
只要客户端单击某个超链接,HTTP的工作就开始了。
整个工作过程具体如下。
1)客户机与Web服务器建立TCP连接,HTTP的工作建立在此连接之上。
2)通过TCP连接,客户端向Web服务器发送一个文本的请求报文。
一个请求报文由请求行、请求首部、空行和请求数据4部分组成。
3)Web服务器收到请求报文后,对其进行解析并查找客户需要的资源。
找到资源后将其复本写到响应报文中回发给客户,由客户读取。
一个响应报文由状态行、响应首部、空行和响应数据4部分组成。
4)释放TCP连接。
一般情况下,一旦Web服务器向客户发送了响应报文后,便会主动关闭TCP连接,而客户端则是被动关闭TCP连接。
如果以上过程中的任何一个步骤出现错误,那么Web服务器把出错的信息提示返回到客户端显示。
对于用户来说,这些过程由HTTP自动完成,不需要过多介入,只要用鼠标单击并等待信息显示就可以了。
2.3HTTP报文格式
HTTP报文有两类:
请求报文和响应报文。
这两种类型的报文均采用RFC822的普通信息格式,由一个起始行、首部行、空行(代表首部行结束)及可选的信息体组成。
其中首部行可扩展为多行,每一行与起始行一样,要用回车换行符
两种报文的通用格式如图5-21所示。
图5-21HTTP信息格式
HTTP是面向文本的,报文中的每个字段都是ASCII码串,因此各字段的长度都是不确定的。
(1)请求行/状态行(也称起始行)
方法
空格
URL
空格
HTTP版本
CRLF
其用于区分本报文是请求报文还是响应报文。
客户端发出的请求报文中的请求行格式。
服务器发出的响应报文中的状态行格式如图所示。
HTTP版本
空格
状态码
空格
状态短语
CRLF
(2)信息首部
信息首部用于在客户端与服务器之间交换附加信息。
HTTP的信息首部有以下四种:
通用首部(General-Header)、请求首部(Request-Header)、响应首部(Response-Header)和实体首部(Entity-Header)。
信息首部可以有零到多个首部行。
每一个首部行的格式如图所示。
首部字段名
:
空格码
首部值
CRLF
(3)空行
空行放在整个信息首部结束之后,用于将信息首部和信息体分开。
(4)信息体
信息体是用来传递请求或响应的相关实体。
实际上,在请求报文中一般都不用这个字段,只有在客户确实有数据需要传送给服务器时才使用;而响应报文中也可以没有这个字段
三实验要求
3.1拓扑图
3.2IP地址配置
网络拓扑中各设备的IP地址配置见表。
3.3.需要的其他预配置
本实验需要预先开启DNS设备中的DNS服务,添加的资源记录如图所示。
同时需要开启Webl和Web2设备的HTTP服务并设置其内容,Webl的首页页面内容设置少些,而Web2的首页页面内容则适当设置多些,以便观察两者的区别。
四实验步骤、结果(程序+注释+截图)及分析
4.1 任务一:
PC请求较小的页面文档
4.1.1步骤1:
捕获PC与Web1之间的HTTP事件
在Simulation模式下的EventListFilters区域中,单击EditFilters按钮,仅选择HTTP事件。
单击逻辑工作空间中的PC,在Desktop(桌面)选项卡中打开WebBrowser(Web浏览器),在URL框中输入,然后单击Go(转到)按钮。
最小化模拟浏览器窗口。
在SimulationPanel中单击AutoCapture/Play(自动捕获/播放)按钮进行捕获,当捕获结束出现BuffFull(缓冲区满)对话框时,单击ViewPreviousEvents(查看历史事件)按钮关闭对话框。
4.1.2步骤2:
理解HTTP协议的工作过程并分析HTTP报文格式
注意重点观察PC和Webl之间HTTP的工作过程,此处可忽略交换机的转发过程,仅分析HTTP的请求和响应报文在PC与Webl之间的交互情况。
HTTP的事务处理过程大致如下:
1)PC作为HTTP客户端向Webl发送一个HTTP请求报文。
2)Webl收到HTTP请求报文后向PC回发一个HTTP响应报文。
3)PC收到HTTP响应报文后,在Web浏览器上显示网页。
完成后单击ResetSimulation(重置模拟)按钮,将原有的事件全部清空;同时关闭PC的配置窗口。
4.2任务二:
PC请求较大的页面文档并与任务一对比
4.2.1步骤1:
捕获PC与Web2之间的HTTP事件
保持Simulation模式下的EventListFilters的设置不变,单击逻辑工作空间中的PC,在Desktop选项卡中打开WebBrowser(Web浏览器),在URL框中输入,然后单击Go按钮。
最小化模拟浏览器窗口。
用与任务一同样的步骤捕获PC与Web2之间的HTTP事件。
HTTP的事务处理过程大致如下:
PC作为HTTP客户端向Web2发送一个HTTP请求报文。
Web2收到HTTP请求报文后向PC回发一个HTTP响应报文。
PC收到HTTP响应报文后,在Web浏览器上显示网页。
4.2.2步骤2:
与任务一进行对比
本步骤重点观察Web2的响应过程,查看EventList(事件列表)中AtDevice(所在设备)中显示为Web2的事件,必要时可查看其出站PDU中运输层TCP报文段的SEQUENCENUM(序号)字段,并可在EventListFilters(事件列表过滤器)中添加TCP事件。
本任务中PC请求的页面文档长度比任务一中更大,Web2回发的HTTP响应报文中需要使用多个TCP报文段。
五实验遇到的困难及解决
1.若在PC的Web浏览器中输入的域名有误,是否能捕获到HTTP事件?
为什么?
答:
若在PC的Web浏览器中输入的域名有误,将无法捕获到HTTP事件。
因为无法从域名中解析出相应的IP地址,因而也就无法找到正确的Web服务器并向其发送HTTP请求。
2.在PC的浏览器窗口向Webl请求网页并收到Webl返回的页面后,TCP的连接会保持还是断开?
若进一步点击页面中的超链接,是否需要重新建立一条TCP连接?
答:
在PC的浏览器窗口向Web1请求网页math.Q并收到Web1返回的页面后,TCP的连接将会断开。
因此,当进一步点击页面中的超链接时,将需要重新建立一条TCP连接。
六实验心得总结
通过本次实验,熟悉HTTP协议的工作过程,理解HTTP报文的封装格式。
以及HTTP响应报文使用的TCP报文段的个数由MSS决定,该值在TCP连接建立阶段确定。
本实验中该值在TCP连接建立阶段确定为536B。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 DNS 解析 资料