《实习5__________________DNS协议分析》由会员分享,可在线阅读,更多相关《实习5__________________DNS协议分析(7页珍藏版)》请在金锄头文库上搜索。
1、DNS 协议分析协议分析实习目的实习目的捕获本机浏览外部某一网站时的 DNS、HTTP 数据包,取 DNS、HTTP 典型数 据包各一个,列出其应用层、传输层、IP 层、数据链路层上各层上数据包相应 参数,首部内容,并对感兴趣的部分进行深入分析。实习内容实习内容DNS 报文格式: 说明一下:并不是所有 DNS 报文都有以上各个部分的。图中标示的“12 字 节”为 DNS 首部,这部分肯定都会有,首部下面的是正文部分,其中查询问题 部分也都会有。除此之外,回答、授权和额外信息部分是只出现在 DNS 应答报 文中的,而这三部分又都采用资源记录(Recource Record)的相同格式,这个 稍后
2、会提到。下面逐个字段地分析 DNS 报文。 标识(2 字节):这个字段网上的解释有点不清楚:“由客户程序设置并有 服务器返回结果。 ”看了下实验室的程序和文档,原来这个字段可以看作是 DNS 报文的 ID,对于相关联的请求报文和应答报文,这个字段是相同的,由此可以 区分 DNS 应答报文是哪个请求报文的响应。 标志(2 字节):这部分非常重要,需要逐比特分析。再借个图:QR(1 比特):查询/响应的标志位,1 为响应,0 为查询。 opcode(4 比特):定义查询或响应的类型(若为 0 则表示是标准的,若为1 则是反向的,若为 2 则是服务器状态请求) 。 AA(1 比特):授权回答的标志位
3、。该位在响应报文中有效,1 表示名字服 务器是权限服务器(关于权限服务器以后再讨论) TC(1 比特):截断标志位。1 表示响应已超过 512 字节并已被截断(依稀 好像记得哪里提过这个截断和 UDP 有关,先记着) RD(1 比特):该位为 1 表示客户端希望得到递归回答(递归以后再讨论) RA(1 比特):只能在响应报文中置为 1,表示可以得到递归响应。 zero(3 比特):不说也知道都是 0 了,保留字段。 rcode(4 比特):返回码,表示响应的差错状态,通常为 0 和 3,各取值 含义如下: 0 无差错 1 格式差错 2 问题在域名服务器上 3 域参照问题 4 查询类型不支持 5
4、 在管理上被禁止 6 - 15 保留 标志段说完了,下面是问题数、资源记录数、授权资源记录数和额外资源 记录数,这四个字段都是两字节,分别对应下面的查询问题、回答、授权和额 外信息部分的数量。一般问题数都为 1,DNS 查询报文中,资源记录数、授权资 源记录数和额外资源记录数都为 0.该说正文部分了。查询问题部分格式如下:查询名部分长度不定,一般为要查询的域名(也会有 IP 的时候,即反向查 询) 。此部分由一个或者多个标示符序列组成,每个标示符以首字节数的计数值 来说明该标示符长度,每个名字以 0 结束。计数字节数必须是 063 之间。该字 段无需填充字节。还是借个例子来说明更直观些,查询名
5、为 gemini.tuc.noao.edu 的话,查询名字段如下:查询类型(2 字节):通常查询类型为 A(由名字获得 IP 地址)或者 PTR(获得 IP 地址对应的域名) ,类型列表如下:类型助记符说明1AIPv4 地址。 2NS名字服务器。5CNAME规范名称。定义主机的正式名字的别名。 6SOA开始授权。标记一个区的开始。 11WKS熟知服务。定义主机提供的网络服务。 12PTR指针。把 IP 地址转化为域名。 13HINFO主机信息。给出主机使用的硬件和操作系统的 表述。 15MX邮件交换。把邮件改变路由送到邮件服务器。 28AAAAIPv6 地址。 252AXFR传送整个区的请求。
6、 255ANY对所有记录的请求。 查询类(2 字节):通常为 1,指 Internet 数据。 前面说过,回答字段,授权字段和附加信息字段均采用资源记录 RR(Resource Record)的相同格式。该格式如下:域名字段(不定长或 2 字节):记录中资源数据对应的名字,它的格式和 查询名字段格式相同。当报文中域名重复出现时,就需要使用 2 字节的偏移指 针来替换。例如,在资源记录中,域名通常是查询问题部分的域名的重复,就 需要用指针指向查询问题部分的域名。关于指针怎么用,TCP/IP 详解里面有, 即 2 字节的指针,最签名的两个高位是 11,用于识别指针。其他 14 位从报文 开始处计数
7、(从 0 开始) ,指出该报文中的相应字节数。注意,DNS 报文的第一 个字节是字节 0,第二个报文是字节 1。一般响应报文中,资源部分的域名都是 指针 C00C,刚好指向请求部分的域名。 类型(2 字节) 、类(2 字节):含义与查询问题部分的类型和类相同。 生存时间(4 字节):该字段表示资源记录的生命周期(以秒为单位) ,一 般用于当地址解析程序取出资源记录后决定保存及使用缓存数据的时间。 资源数据长度(2 字节):表示资源数据的长度(以字节为单位,如果资源 数据为 IP 则为 0004) 资源数据:该字段是可变长字段,表示按查询段要求返回的相关资源记录 的数据。 基本上对 DNS 报文
8、格式的分析就是这些了。实习结果实习结果1、学会使用 nslookup 命令 要在交互模式下启动 Nslookup.exe,只需在命令提示符下输入 nslookup: C: nslookup Default Server: 202.196.64.1 在命令提示符下输入 help 或 ? 将生成可用的命令列表。 自己上网查找 nslookup 命令使用的信息。 nslookup 命令的功能是查询一台机器的 IP 地址和其对应的域名。它通常需 要一台域名服务器来提供域名服务。如果用户已经设置好域名服务器,就可以 用这个命令查看不同主机的 IP 地址对应的域名。 Nslookup 必须要安装了 TC
9、P/IP 协议的网络环境之后才能使用。 该命令的一般格式为:nslookup IP 地址/域名 3、正向地址解析 单击 “ 开始 ”“ 程序 ”“ 附件 ” “ 命令提示符 ” C: Nslookup “ 回车 ” 之后即可看到如下结果:说明已经能顺利实现正向解析。 正在工作的 DNS 服务器的主机名为 ,它的 IP 地址是 202.196.64.1,而域名 所对应的 IP 地址为 64.233.189.104,别名为 , 4、反向地址解析 它的反向解析是否正常呢 ? 也就是说, 能否把 IP 地址 64.233.189.104 反向解析为域名 ? C: Nslookup 64.233.1
10、89.104得到结果说明, DNS 服务器 的反向解析功能也正常。 然而,有的时候,我们键入 Nslookup ,却出现如下结果:Server: ns- Address: 202.96.209.5 * ns- cant find : Non- existent domain 这种情况说明网络中 DNS 服务器 ns- 在工作,却不能实 现域名 的正确解析。此时,要分析 DNS 服务器的配置情况, 看是否 这一条域名对应的 IP 地址记录已经添加到了 DNS 的数据库中。 还有的时候,我们键入 Nslookup ,会出现如下结果 * Cant find server name for
11、domain: No response from server * Cant : Non-existent domain 这时,说明测试主机在目前的网络中,根本没有找到可以使用的 DNS 服 务器。此时,我们要对整个网络的连通性作全面的检测,并检查 DNS 服务器是 否处于正常工作状态,采用逐步排错的方法,找出 DNS 服务不能启动的根源。若想查询更多信息,我们可将查询模式设为 any 之后再输入同样的主机 名称试试看 C:/ nslookup set q=any 就可以看到更多的数据了。假如使用“除错模式”的话看到的资料还将 更多 set debug 另外您还可以用 set q=mx
12、或 set q=ptr 等模式来查询特定的记录也 可以用 ls 后接 domain name 来查看某个 domain 的所有主机记录。善用 nslookup 我们可以找到许多 DNS 的信息而当有问题发生的时候这个工具 就变得非常有用了。 5、分析 DNS 消息格式 清空 DNS 高速缓存:“开始”“程序”“附件”“命令提示符”输入命 令行 “ipconfig/flushdns” 按“回车键” 执行命令。 在 Dos 命令提示符中,执行实验步骤 3 的正向解析命令 nslookup ,同时使用 ethereal 进行捕获,并分析捕获到 的 DNS 请求和响应消息格式。 观察 DNS 是否使用
13、的是传输层 UDP 协议,服务端口 53。 观察 DNS 消息的发送主机 IP 地址和接收主机 IP 地址。 请求消息内容Transaction ID: 消息编号,作为确认依据; Flags:标志位 Response: 消息是请求消息 = 0 Opcode:消息类型:=0 标准查询, =1 IQUERY 反向查询, =2 服务器状态查 询, Truncated: 截断,如果 UDP 包超过 512 字节将被截流。 Recursion:= 1 请求递归查询 Z:Reserved(=0)保留没用 Non-authentlacted data ok:非鉴定数据不可接受 Questions:有一个查询
14、信息 Queries:查询消息内容 反向查询 202.196.64.1 的域名Transaction ID: 消息编号,作为确认依据=查询消息编号; Flags:标志位 Response: 消息是响应消息 = 1 Opcode:消息类型:=0 标准查询, =1 IQUERY 反向查询, =2 服务器状态查询, Authoritative:服务器是被该域授权的 Truncated: 截断,如果 UDP 包超过 512 字节将被截流。 Recursion desired:= 1 请求递归查询 Recursion available:= 1 服务器执行递归查询 Z:Reserved(=0)保留没用
15、Answer authentlacted:表示不是授权回答 Reply code: 名字无错误 Questions:有一个查询信息 Answer:有一个响应消息 Queries:查询消息内容 反向查询 202.196.64.1 的域名 Answers:响应消息内容 查询 202.196.64.1 的域名 Transaction ID: 消息编号,作为确认依据; Flags:标志位 Response: 消息是请求消息 = 0 Opcode:消息类型:=0 标准查询, =1 IQUERY 反向查询, =2 服务器状态查 询, Truncated: 截断,如果 UDP 包超过 512 字节将被截流。 Recursion:= 1 请求递归查询 Z:Reserved