【协议分析】【DNS 域名服务协议】
命运的改变从技术开始,学网络技术,就来网络之路教程店第五章 应用层协议分析实验十三 DNS域名服务协议【实验目的】1、理解DNS 实现的原理;2、了解DNS 解析的过程;3、掌握DNS 报文格式。【
命运的改变从技术开始,学网络技术,就来网络之路教程店
第五章 应用层协议分析
实验十三 DNS域名服务协议
【实验目的】
1、理解DNS 实现的原理;
2、了解DNS 解析的过程;
3、掌握DNS 报文格式。
【实验学时】
4学时
【实验环境】
本实验要求实验室主机能够连接到Internet ,并可浏览网页。
实验拓扑如图5- 37所示:

图5- 37 实验拓扑图
【实验内容】
1、学习DNS 协议的原理和实现方法;
2、了解DNS 的工作过程;
3、通过编辑DNS 请求数据包,了解DNS 的报文格式;
4、掌握nslookup 命令和ipconfig 命令的使用方法。
更多资料分享:http://pan.baidu.com/share/home?uk=2084365290&view=share# 系统学习: http://ccieh3c.taobao.com141
,命运的改变从技术开始,学网络技术,就来网络之路教程店
计算机网络协议原理实验教程
【实验流程】



图5- 38 实验流程图
【实验原理】
DNS 域名系统是服务器和客户程序相互通信的一种协议。它提供了主机域名和IP 地址之间的转换。域名服务器使用固定的端口号53,支持UDP 和TCP 访问。
DNS 协议
DNS 是域名系统(Domain Name System)的缩写,它是一种用于TCP/IP应用程序的分布式数据库,它提供主机名字和I P地址之间的转换及有关电子邮件的选路信息。所谓“分布式”是指在Internet 上的单个站点不能拥有所有的信息。每个站点(如大学中的系、校园、公司或公司中的部门)保留它自己的信息数据库,并运行一个服务器程序供Internet 上的其他系统(客户程序)查询。
在Internet 中,域名可用来对某个组织或实体进行寻址。例如“www.sina.com”这个域名可用来对IP 地址为71.5.7.191的Internet 网点“sina.com”进行寻址,而特定的主机服务器名称为“www”。域名中的“com”部分表明该组织或实体的性质,“sina”定义了该组织或实体。
而DNS 就像是一个自动的电话号码簿,我们可以直接拨打某人的名字来代替他的电话号码(IP 地址)。DNS 在我们直接呼叫网站的名字以后,就会将像www.sina.com 一样便于142
更多资料分享:http://pan.baidu.com/share/home?uk=2084365290&view=share#
系统学习: http://ccieh3c.taobao.com
,命运的改变从技术开始,学网络技术,就来网络之路教程店
第五章 应用层协议分析
人类使用的名字转化成像71.5.7.191一样便于机器识别的IP 地址。
这个转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS 就是进行域名解析的服务器。它是一种分布式网络目录服务,主要用于域名与 IP 地址的相互转换,以及控制因特网的电子邮件的发送。大多数因特网服务依赖于 DNS 而工作,一旦 DNS 出错,就无法连接 Web 站点,电子邮件的发送也会中止。
在 DNS 命名方式中,采用了分散和分层的机制来实现域名空间的委派授权,以及域名与地址相转换的授权。通过使用 DNS 的命名方式来为遍布全球的网络设备分配域名,而这则是由分散在世界各地的服务器实现的。
命名系统是分层次的,域名树是倒置的,它的根级显示在最上方,分为若干顶级域(.com 、.net 、.edu 、.gov 、.org 等,以及200多个国家级的顶级域),这些域又被分成二级域,依此类推。它们由各自相应的政府或私有实体管理。
DNS 的分布式机制支持有效且可靠的名字到 IP 地址的映射。多数名字可以在本地映射,不同站点的服务器相互合作能够解决大网络的名字与 IP 地址的映射问题。单个服务器的故障不会影响 DNS 的正确操作。
DNS 工作流程
域名服务分为客户端和服务器端,客户端提出请求,询问一个Domain Name的IP 地址,服务器端必须回答客户端的请求。本地DNS 首先查询自己的数据库,如果自己的数据库中没有对应的IP 地址,则向本地DNS 上所设的上一级DNS 询问,得到结果之后,将收到的结果保存在高速缓冲区,并回答给客户端。其简单过程如图5- 39所示:

图5- 39 DNS的工作过程
在这个过程中,待查询的域名放在查询问题中,查询结果放在回答的资源记录中。
DNS 的报文格式
D NS定义了用于查询和响应的报文格式,图5- 40是查询和响应报文的总体格式:
更多资料分享:http://pan.baidu.com/share/home?uk=2084365290&view=share#
系统学习: http://ccieh3c.taobao.com143
,命运的改变从技术开始,学网络技术,就来网络之路教程店
计算机网络协议原理实验教程

图5- 40 DNS 总体报文格式
这个报文由1 2字节长的首部和4个长度可变的字段组成。
标识字段由客户程序设置并由服务器返回结果。客户程序通过它来确定响应与查询是否匹配。
16 bit的标志字段被划分为若干子字段,如图5- 41所示:

图5- 41 DNS 报文首部中的标志字段
标志中每一位的含义如下:
z QR:是1 bit字段,0表示查询报文,1表示响应报文。
z Opcode:报文类型,是一个4 bit字段,通常值为0(标准查询),其他值为1(反
向查询)和2(服务器状态请求)。
z AA:是1 bit字段,表示“授权回答(authoritative answer)”,如果此位为1,表
示服务器对问题部分的回答是权威性的。
z TC:是1 bit字段,表示“可截断的(truncated )”。使用UDP 时,它表示当应答
的总长度超过512字节时,只返回前512个字节。
z RD:是1 bit字段,表示“期望递归(recursion desired)”。该比特能在一个查询
中设置,并在响应中返回。这个标志告诉名字服务器必须处理这个查询,也称为一个递归查询。如果该位为0,且被请求的名字服务器没有一个授权回答,它就返回一个能解答该查询的其他名字服务器列表,这称为迭代查询。
z RA:是1 bit字段,表示“可用递归”。如果名字服务器支持递归查询,则在响应中
将该比特设置为1。
z Zero:随后的3 bit字段必须为0。
。z Rcode:是一个4 bit的返回码字段。通常的值为0(没有差错)和3(名字差错)
144
更多资料分享:http://pan.baidu.com/share/home?uk=2084365290&view=share#
系统学习: http://ccieh3c.taobao.com
,命运的改变从技术开始,学网络技术,就来网络之路教程店
第五章 应用层协议分析
名字差错只有从一个授权DNS 服务器上返回,它表示在查询中制定的域名不存在。
随后的4个16 bit 字段说明最后4个变长字段中包含的条目数。对于查询报文,问题(question )数通常是1,而其他3项则均为0。类似地,对于应答报文,回答数至少是1,剩下的两项可以是0或非0。
图5- 42是DNS 查询报文中的查询问题记录部分的格式,通常只有一个问题:

图5- 42 DNS查询问题记录格式
查询名是要查找的名字,它是一个或多个标识符的序列。每个标识符以首字节的计数值来说明随后标识符的字节长度,每个名字以最后字节为0结束,长度为0的标识符是根标识符。计数字节的值必须是0 ~ 6 3的数,因为标识符的最大长度仅为6 3。
每个问题有一个查询类型,而每个响应(也称一个答案或资源记录)也有一个类型。大约有20个不同的类型值,其中的一些目前已经过时,常见的值如下表:
表5-6 类型值列表 名 字 数 值 描 述
A 1 IP 地址
NS 2 名字服务器
CNAME 5 规范名称
PTR 12 指针记录
HINFO 13 主机信息
MX 15 邮件交换记录
最常用的查询类型是A 类型,表示期望获得查询名的IP 地址。一个PTR 查询则请求获得一个IP 地址对应的域名。
查询类通常是1,指互联网地址(某些站点也支持其他非I P地址)。
DNS 报文中最后的三个字段,答案字段、权威答案字段和附加答案字段,均采用一种称为资源记录RR (Resource Record)的相同格式,图5- 43是DNS 响应报文中资源记录的格式:
更多资料分享:http://pan.baidu.com/share/home?uk=2084365290&view=share#
系统学习: http://ccieh3c.taobao.com145
,命运的改变从技术开始,学网络技术,就来网络之路教程店
计算机网络协议原理实验教程

图5- 43 DNS资源记录的格式
z 域名:是记录中资源数据对应的名字。它的格式和前面介绍的查询名字段格式相同。 z 类型:说明RR 的类型码。它的值和前面介绍的查询类型值是一样的。
z 类:通常为1,指Internet 数据。
z 生存时间:该字段是客户程序保留该资源记录的秒数。资源记录通常的生存时间值
为2天。
z 资源数据长度:说明资源数据的数量。该数据的格式依赖于类型字段的值。对于类
型1(A 记录)资源数据是4字节的I P地址。
【实验步骤】
步骤一:使用nslookup 工具解析域名,捕获数据包并进行分析
1、在实验主机上启动网络协议分析仪进行数据捕获并设置过滤条件,在工具栏点击“过滤器”按钮,会弹出“设置&过滤器”对话框,在“过滤器类型”中选择“类型过滤器”,类型值中选择“DNS协议”,点击“设置参数”按钮后“确定”,开始进行数据包的捕获:

图5- 44 设置DNS 协议过滤器
146
更多资料分享:http://pan.baidu.com/share/home?uk=2084365290&view=share#
系统学习: http://ccieh3c.taobao.com
,命运的改变从技术开始,学网络技术,就来网络之路教程店
第五章 应用层协议分析
2、使用nslookup 工具进行域名的解析。
nslookup 命令是查询域名对应IP 的工具,其用法可以直接在Windows 系统的命令提示符下运行命令:nslookup 域名 来进行域名解析,例如:

图5- 45 使用nslookup 工具(一)
也可以仅仅运行nslookup 命令(不需任何参数),进入nslookup 的交互界面,在“>”提示符后可以多次输入不同的域名,以实现多次的查询,例如可以在一次nslookup 的交互过程中,进行www.baidu.com 、 www.yahoo.com、 www.google.com 的查询:

图5- 46 使用nslookup 工具(二)
最后,可用“exit”命令退出nslookup 的交互状态。
3、分析捕获到的数据报文。
图5- 47 是一个DNS 的查询报文,从中可以看到,报文的标识为10,问题数是1,答
更多资料分享:http://pan.baidu.com/share/home?uk=2084365290&view=share#
系统学习: http://ccieh3c.taobao.com147
,命运的改变从技术开始,学网络技术,就来网络之路教程店
计算机网络协议原理实验教程
案数、权威答案数、附加答案数都是0,而要查询的域名是www.yahoo.com :

图5- 47 DNS的查询报文
图5- 48 则是相应的响应报文,报文标识同样为10,指明这个响应是针对哪一个查询报文的,问题数是1,答案数是2,权威答案数和附加答案数都是0,并且对域名www.yahoo.com 的查询结果是209.131.36.158:

图5- 48 DNS的响应报文
步骤二:使用ipconfig 命令查看DNS 缓存
1、继续使用协议分析仪进行数据的捕获,同时打开IE 浏览器,访问www.baidu.com 、www.yahoo.com 、 www.google.com,观察此时是否还有DNS 请求?
148
更多资料分享:http://pan.baidu.com/share/home?uk=2084365290&view=share#
系统学习: http://ccieh3c.taobao.com
,命运的改变从技术开始,学网络技术,就来网络之路教程店
第五章 应用层协议分析
2、关闭IE 浏览器后再重新打开,访问一个尚未访问过的网站,例如www.sohu.com ,观察此时是否有DNS 请求?为什么?
3、在Windows 系统的命令提示符下运行:ipconfig /displaydns显示本机缓冲区中的DNS 解析内容,如图5- 49所示:

图5- 49 显示本机的DNS 缓存
4、在Windows 系统的命令提示符下运行:ipconfig /flushdns,则可以清除本机的DNS 缓存记录,如图5- 50所示:

图5- 50 清除本机的DNS 缓存
5、此时关闭IE 浏览器再打开,访问刚才打开过的网站,观察是否有DNS 请求?为什
更多资料分享:http://pan.baidu.com/share/home?uk=2084365290&view=share#
系统学习: http://ccieh3c.taobao.com149
,命运的改变从技术开始,学网络技术,就来网络之路教程店
计算机网络协议原理实验教程
么?
步骤三:利用网络协议编辑软件编辑DNS 请求包
1、在主机上打开协议数据发生器,在工具栏上选择“添加”,会弹出“网络包模版”对话框,选择“DNS协议模版”,建立一个DNS 数据报文:

图5- 51 建立DNS 协议的查询报文
2、填写其中以太网帧头、IP 首部、UDP 首部和DNS 报文的内容:
z 填写以太网协议首部信息:
¾ 目的物理地址:在地址本中查询网关的IP 地址,确定后填入网关的MAC 地
址:00-D0-F8-B5-14-8C ;
¾ 源物理地址:填入实验主机的MAC 地址:00-15-58-2F-7E-7E ;
¾ 类型或长度:该字段应为0800(即IP 协议的类型值)。
z 填写IP 协议头信息:
¾ 总长度字段:包括UDP 段内容的总长度,20 IP 8 UDP 30 DNS = 58; ¾ 标识:可以任意填入,例如:0x2938;
¾ 高层协议字段:即上层协议类型为17(UDP 协议的类型为17);
¾ 发送IP 地址:在地址本中选择本机的IP 地址:172.16.1.98;
¾ 目标IP 地址:手工填入DNS 服务器的IP 地址:172.16.2.25;
¾ 点击工具栏中的“校验和”按钮计算IP 头校验和。
z 填写UDP 协议的各个字段信息:
¾ 16位源端口号:可按照捕获DNS 数据报文的源端口号填入:1644;
¾ 16位目的端口号:53;
¾ UDP总长度:包括UDP 头部和携带数据的总长度,8 UDP 30 DNS= 38; ¾ 校验和:点击工具栏中的“校验和”按钮计算UDP 校验和。
150
更多资料分享:http://pan.baidu.com/share/home?uk=2084365290&view=share#
系统学习: http://ccieh3c.taobao.com