实验九:DNS解析实验
计算机科学与技术学院 计算机网路 实验报告实验项目 DNS 解析实验及HTTP 分析 实验日期 2016/6/12一 实验目的1.1理解DNS 系统的工作原理。1.2熟
计算机科学与技术学院 计算机网路 实验报告
实验项目 DNS 解析实验及HTTP 分析 实验日期 2016/6/12
一 实验目的
1.1理解DNS 系统的工作原理。
1.2熟悉DNS 服务器的工作过程。
1.3熟悉DNS 报文格式。
1.4理解DNS 缓存的作用。
二 实验原理
2.1 DNS 及其解析
Internet 上的每台主机都有一个唯一的全球IP 地址,IPv4中的IP 地址是由32位的二进制数组成的。这样的地址对于计算机来说容易处理,但对 于用户来说,即使将IP 地址用十进制的方式表示,也不容易记忆。而主机之间的通信最终还是需要用户的操作,用户在访问一台主机前,必须首先获得其地址。因此,我们为网络上的主机取一个有意义又容易记忆的名字,这个名字称为域名。
虽然我们为Internet 上的主机取了一个便于记忆的域名,但通过域名并不能直接找到要访问的主机,中间还需要一个从域名查找到其对应的IP 地址的过程,这个过程就是域名解析。域名解析的工作需要由域名服务器DNS 来完成。
域名的解析方法主要有两种:递归查询(Recursive Query)和迭代查询 (Iterative Query) 。一般而言,主机向本地域名服务器的查询米用递归查询,而本地域名服务器向根域名服务器的查询通常采用迭代查询。
为了提高解析效率,在本地域名服务器以及主机中都广泛使用了高速缓存,用来存放最近解析过的域名等信息。当然,缓存中的信息是有时效 的,因为域名和IP 地址之间的映射关系并不总是一成不变的,因此,必须定期删除缓存中过期的映射关系。
2.2DNS 报文格式
DNS 请求和应答都用相同的报文格式,分成5部分(有些部分允许为空),如图所示。
第 1 页
,HEADER 是必需的,它定义了报文是请求还是应答,也定义了报文的其他部分是否需要存在,以及是标准查询还是其他。HEADER 段的格式如图所示。

HEADER 中的FLAG (标志)部分结构如图5-3所示

各部分含义如下:
QR :查询/响应标志位。
opcode :定义查询或响应的类型。
AA :授权回答的标志位,该位在响应报文中有效。
TC :截断标志位。
RD :该位为1表示客户端希望得到递归回答。
RA :只能在响应报文中置为1,表示可以得到递归响应。
zero :保留字段,用全0填充。
rcode :返回码,表示响应的差错状态。
QUESTION 部分包含着问题,可以为多个。每个问题的格式如图所示。

ANSWER (应答)、AUTHORITY (授权应答)、ADDITIONAL (附加信息)部分都共用相同
第 2 页

的格式:资源记录RR (Resource Record)。资源记录可包含多个,其个数由报文首部对应的数值确定,每个资源记录格式如图所示。

三 实验要求
3.1拓扑图

3.2DNS 域名服务器的层次结构
第 3 页
,3.3 IP地址配置

3.3 其他预配置
本实验需要在Web 服务器设备www.x.cn 和www.y.com 中开启HTTP 服务并设置其内容,关闭其他服务。另外,还需要进行以下几项预配置(已完成)。
(1)预配置路由器的静态路由
Router0、Router1及Router2预配置的静态路由如图
第 4 页

(2)预先开启并配置域名服务器的DNS 服务 root_dns设备添加的资源记录如图

cn_dns设备添加的资源记录如图

com_dns设备添加的资源记录如图

y.com_dns设备添加的资源记录如图

第 5 页

四 实验步骤、结果(程序 注释 截图)及分析
4.1观察本地域名解析过程
4.1.1步骤一:在PC 的浏览器窗口请求内部Web 服务器的网页
单击Simulation (模拟)选项卡进入模拟模式。
在Event List Filters (事件列表过滤器)区域中,单击Edit Filters按钮,仅选择DNS 事件。 单击逻辑工作空间中的PC, 在Desktop (桌面)选项卡中打幵Web Browser (Web浏览器),在URL 框中输入www.x.cn ,然后单击Go (转到)按钮。最小化模拟浏览器窗口。

4.1.2步骤2:捕获DNS 事件并分析本地域名解析过程
在Simulation Panel (模拟面板)中单击Auto Capture/Play按钮,此时会播放PC 与Server 之间的数据包交换动画,并且相关的事件会被添加到Event List中。
捕获结束时将会出现一个Buff Full (缓冲区满)的对话框,该对话框提示已达到事件数量的最大值,有两个按钮Clear Event List(清除事件列表)和 View Previous Events (查看历史事件),单击 View Previous Events (查看历史事件)按钮关闭对话框。

第 6 页
,在Event List 区域中,单击Info 列中的某个DNS 事件的单色框,将会打开相应的PDU Information 窗口。本步骤需要查看该窗口OSI Model选项卡中In Layers和 Out Layer的 Layer 7的信息以及 Inbound/Outbound PDU Details (入站/出站PDU 详细数据)选项卡中第7层的PDU 信息。



本地DNS 服务器的解析过程大致如下。
由于PC 中设置了 DNS 服务器的地址为192.168.2.1,因此当PC 输入域名www.x.cn 请求网页时,它将作为DNS 客户端向本地域名服务器 cn_dns发送一个DNS 查询请求,请求域名www.x.cn 的IP 地址。
本地域名服务器cn_dns收到PC 的DNS 查询请求后,首先尝试在本地区域文件查找,发现确实存在相应的资源记录,于是将域名www.x.cn 对应的IP 地址192.168.5.1放入DNS 的应答报文发送给PC 。
PC 收到本地域名服务器cn_dnS的应答报文后,取出报文中解析出的IP 地址192.168.5.1,并对其进行访问,此时在Web Browser (Web浏览器)中显示相应的Web 页面。
完成后单击Reset Simulation (重置模拟)按钮,将原有的事件全部清空;同时关闭PC 的
第 7 页
,Web Browser(Web 浏览器)窗口。
4.2任务二:观察外网域名解析过程
4.2.1步骤1:在PC 的浏览器窗口请求外部Web 服务器的网页
保持模拟模式中Event List Filters (事件列表过滤器)区域的选择(仍为仅选择DNS 事件)不变。
单击逻辑工作空间中的PC ,在Desktop (桌面)选项卡中打开Web Browser (Web浏览器),在URL 框中输入www.y.com ,然后单击Go 按钮。最小化模拟浏览器窗口。

4.2.2步骤2:捕获DNS 事件并分析外网域名解析过程
在Simulation Panel (模拟面板)中单击Auto Capture/PIay按钮进行捕获,当捕获结束出现BuffFull (缓冲区满)的对话框时,单击View Previous Events按钮关闭对话框。

应注意重点观察解析外网域名时各级域名服务器的具体解析过程。此处可忽略路由器和交换机的转发过程,仅分析DNS 的请求和响应报文在 DNS 服务器之间的交互情况。
DNS 服务器之间的解析过程如图所示。
第 8 页
,① PC 向本地域名服务器cn_dns发送一个DNS 查询请求包请求解析域名 www.y.com 。 ② 本地域名服务器cn_dnS收到PC 的DNS 查询请求后,在本地区域文件中未找到相应的资源记录,于是cn_dns作为DNS 客户端向根域名服务器root_dns发送DNS 请求包请求解析域名www.y.com 。
③ 根域名服务器root_dns收到cn_dns发来的DNS 查询请求后,在本地区域文件中未能直接解析出域名www.y.com ,但找到能解析“.com ”后 缀的顶级域名服务器com_dns,于是root_dns也作为DNS 客户端向顶级域 名服务器com_dns发送DNS 请求包,请求解析域名www.y.com
④ 顶级域名服务器com_dns收到root_dns发来的DNS 查询请求后, 在本地区域文件中未能直接解析出域名www.y.com ,但找到能解析“y.com ” 后缀的权限域名服务器y.com_dns,于是com_dns也作为DNS 客户端向权 限域名服务器y.com_dns发送DNS 请求包请求解析域名www.y.com 。
⑤ 权限域名服务器y.com_dns收到com_dns发来的DNS 查询请求后,在本地区域文件中找到相应的资源记录直接解析出域名www.y.com, 于是将IP 地址192.168.6.2写入DNS 应答报文中发送给顶级域名服务器com_dns。
⑥ com_dns作为DNS 客户端收到DNS 应答报文后,取出IP 地址192.168.6.2,同时作为DNS 服务器将IP 地址写入DNS 应答报文中发送给根域名服务器root_dns。
⑦ root_dns作为DNS 客户端收到DNS 应答报文后,取出IP 地址,同时作为DNS 服务器将IP 地址写入DNS 应答报文中发送给本地域名服务器cn_dns。
⑧ cn_dns作为DNS 客户端收到DNS 应答报文后,取出IP 地址 192.168.6.2,同时作为DNS 服务器将IP 地址写入DNS 应答报文中发送给PC 。
PC 收到本地域名服务器cn_dns的应答报文后,取出IP 地址192.168.6.2,并对其进行访问,
第 9 页

此时在Web Browser (Web浏览器)中显示相应的Web 页面。


完成后单击Reset Simulation (重置模拟)按钮,将原有的事件全部清空;同时关闭PC 的Web Browser(Web 浏览器)窗口。
4.3任务三:观察缓存的作用
4.3.1步骤1:查看本地域名服务器cn_dns的缓存
查看缓存有两种方法:
单击逻辑工作空间中的本地域名服务器cn_dns,在Config (配置) 选项卡中选择DNS 服务,并单击页面下方的DNS Cache (DNS缓存)按钮,查看此时本地域名服务器cn_dns中的缓存。
先选择工具栏中的Inspect (查看)工具,单击逻辑工作空间中的本地域名服务器cn_dns,在弹出的快捷菜单中选择DNS Cache Table (DNS缓存表)即可查看此时本地域名服务器cn_dnS中的缓存。查看完后重新选择工具栏中的Select (选取)工具。

4.3.2步骤2:在PC 的浏览器窗口请求外部Web 服务器的网页
重复任务二,再次观察此次解析外网域名的过程。
第 10 页