《计算机组网试验 |
您所在的位置:网站首页 › 域名解析服务协议 › 《计算机组网试验 |
【实验目的】 1、理解 DNS 实现的原理; 2、了解 DNS 解析的过程; 3、掌握 DNS 报文格式。 【实验环境】 本实验要求实验室主机能够连接到 Internet,并可浏览网页。 实验拓扑如图 【实验内容】 1、学习 DNS 协议的原理和实现方法; 2、了解 DNS 的工作过程; 3、通过编辑 DNS 请求数据包,了解 DNS 的报文格式; 4、掌握 nslookup 命令和 ipconfig 命令的使用方法。 【实验流程】 【实验原理】 DNS 域名系统是服务器和客户程序相互通信的一种协议。它提供了主机域名和 IP 地址 之间的转换。域名服务器使用固定的端口号 53,支持 UDP 和 TCP 访问。 DNS 协议 DNS 是域名系统(Domain Name System)的缩写,它是一种用于 TCP/IP 应用程序的分 布式数据库,它提供主机名字和 I P 地址之间的转换及有关电子邮件的选路信息。所谓“分 布式”是指在 Internet 上的单个站点不能拥有所有的信息。每个站点(如大学中的系、校 园、公司或公司中的部门)保留它自己的信息数据库,并运行一个服务器程序供 Internet 上的其他系统(客户程序)查询。 在 DNS 命名方式中,采用了分散和分层的机制来实现域名空间的委派授权,以及域名 与地址相转换的授权。通过使用 DNS 的命名方式来为遍布全球的网络设备分配域名,而这 则是由分散在世界各地的服务器实现的。 命名系统是分层次的,域名树是倒置的,它的根级显示在最上方,分为若干顶级域 (.com、.net、.edu、.gov、.org 等,以及 200 多个国家级的顶级域),这些域又被分成 二级域,依此类推。它们由各自相应的政府或私有实体管理。 DNS 的分布式机制支持有效且可靠的名字到 IP 地址的映射。多数名字可以在本地映射, 不同站点的服务器相互合作能够解决大网络的名字与 IP 地址的映射问题。单个服务器的故 障不会影响 DNS 的正确操作。 DNS 工作流程 域名服务分为客户端和服务器端,客户端提出请求,询问一个 Domain Name 的 IP 地 址,服务器端必须回答客户端的请求。本地 DNS 首先查询自己的数据库,如果自己的数据 库中没有对应的 IP 地址,则向本地 DNS 上所设的上一级 DNS 询问,得到结果之后,将收 到的结果保存在高速缓冲区,并回答给客户端。 DNS 的报文格式 DNS定义了用于查询和响应的报文格式,下图是查询和响应报文的总体格式: 这个报文由 1 2 字节长的首部和 4 个长度可变的字段组成。 标识字段由客户程序设置并由服务器返回结果。客户程序通过它来确定响应与查询是否 匹配。16 bit 的标志字段被划分为若干子字段,如下图所示: 标志中每一位的含义如下: QR:是 1 bit 字段,0 表示查询报文,1 表示响应报文。 Opcode:报文类型,是一个 4 bit 字段,通常值为 0(标准查询),其他值为 1(反向查询)和 2(服务器状态请求)。 AA:是 1 bit 字段,表示“授权回答(authoritative answer)”,如果此位为 1,表示服务器对问题部分的回答是权威性的。 TC:是 1 bit 字段,表示“可截断的(truncated)”。使用 UDP 时,它表示当应答的总长度超过 512 字节时,只返回前 512 个字节。 RD:是 1 bit 字段,表示“期望递归(recursion desired)”。该比特能在一个查询中设置,并在响应中返回。这个标志告诉名字服务器必须处理这个查询,也称为一个递归查 询。如果该位为 0,且被请求的名字服务器没有一个授权回答,它就返回一个能解答该查询 的其他名字服务器列表,这称为迭代查询。 RA:是 1 bit 字段,表示“可用递归”。如果名字服务器支持递归查询,则在响应中 将该比特设置为 1。 Zero:随后的 3 bit 字段必须为 0。 Rcode:是一个 4 bit 的返回码字段。通常的值为 0(没有差错)和 3(名字差错)。 名字差错只有从一个授权 DNS 服务器上返回,它表示在查询中制定的域名不存在。 随后的 4 个 16 bit 字段说明最后 4 个变长字段中包含的条目数。对于查询报文,问题(question)数通常是 1,而其他 3 项则均为 0。类似地,对于应答报文,回答数至少 是 1,剩下的两项可以是 0 或非 0。 查询名是要查找的名字,它是一个或多个标识符的序列。每个标识符以首字节的计数值 来说明随后标识符的字节长度,每个名字以最后字节为 0 结束,长度为 0 的标识符是根标 识符。计数字节的值必须是 0 ~ 63 的数,因为标识符的最大长度仅为 63。 每个问题有一个查询类型,而每个响应(也称一个答案或资源记录)也有一个类型。大约有 20 个不同的类型值,其中的一些目前已经过时,常见的值如下表: 最常用的查询类型是 A 类型,表示期望获得查询名的 IP 地址。一个 PTR 查询则请求 获得一个 IP 地址对应的域名。 查询类通常是 1,指互联网地址(某些站点也支持其他非 I P 地址)。 DNS 报文中最后的三个字段,答案字段、权威答案字段和附加答案字段,均采用一种称 为资源记录 RR(Resource Record)的相同格式,下图是 DNS 响应报文中资源记录的格式: 域名:是记录中资源数据对应的名字。它的格式和前面介绍的查询名字段格式相同。 类型:说明 RR 的类型码。它的值和前面介绍的查询类型值是一样的。 类:通常为 1,指 Internet 数据。 生存时间:该字段是客户程序保留该资源记录的秒数。资源记录通常的生存时间值为 2天。 资源数据长度:说明资源数据的数量。该数据的格式依赖于类型字段的值。对于类型 1(A 记录)资源数据是 4 字节的 I P 地址。 【实验步骤】 步骤一:使用 nslookup 工具解析域名,捕获数据包并进行分析 1、在实验主机上启动网络协议分析仪进行数据捕获并设置过滤条件,在工具栏点击“过 滤器”按钮,会弹出“设置&过滤器”对话框,在“过滤器类型”中选择“类型过滤器”, 类型值中选择“DNS 协议”,点击“设置参数”按钮后“确定”,开始进行数据包的捕获: ![]() 也可以仅仅运行 nslookup 命令(不需任何参数),进入 nslookup 的交互界面,在“>” 提示符后可以多次输入不同的域名,以实现多次的查询,例如可以在一次 nslookup 的交互过程中,进行 www.hdu.edu.cn、 www.yahoo.com、 www.google.com 的查询: 3、分析捕获到的数据报文分析一个 DNS 的查询报文,从中可以看到,报文的标识为 10,问题数是1,答案数、 权威答案数、附加答案数都是 0,而要查询的域名是www.yahoo.com : 分析一个响应报文,报文标识同样为 10,指明这个响应是针对哪一个查询报 步骤二:使用 ipconfig 命令查看 DNS 缓存 1、继续使用协议分析仪进行数据的捕获,同时打开 IE 浏览器,访问 www.hdu.edu.cn、 www.yahoo.com、 www.google.com,观察此时是否还有 DNS 请求? 2、关闭 IE 浏览器后再重新打开,访问一个尚未访问过的网站,例如 www.sohu.com, 观察此时是否有 DNS 请求?为什么? 3、在 Windows 系统的命令提示符下运行:ipconfig /displaydns 显示本机缓冲区中 的DNS 解析内容,如图所示: 在 Windows 系统的命令提示符下运行:ipconfig /flushdns,则可以清除本机的 DNS 缓存记录,如图所示: 5、此时关闭 IE 浏览器再打开,访问刚才打开过的网站,观察 DNS 请求. |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |