DNS协议分析.doc

上传人:11****ws 文档编号:2990681 上传时间:2019-05-16 格式:DOC 页数:10 大小:207.50KB
下载 相关 举报
DNS协议分析.doc_第1页
第1页 / 共10页
DNS协议分析.doc_第2页
第2页 / 共10页
DNS协议分析.doc_第3页
第3页 / 共10页
DNS协议分析.doc_第4页
第4页 / 共10页
DNS协议分析.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

1、1DNS 协议分析V1.0特通中心数据部2文档修改记录序号 版本号 修改说明 相关章节 编写者/日期 审校者/日期1 V1.0 原文档。 周婷婷/2009-5-2231 DNS 概述DNS(Domain Name System)即域名系统,是一种用于 TCP/IP 应用程序的分布式数据库,它提供主机名字(域名)和 IP 地址之间的转换及有关电子邮件的选路信息,其端口号为 53。DNS 采用客户服务器方式,当某一个应用进程需要将主机名映射为 IP 地址时,该应用进程就成为域名系统 DNS 的一个客户,并将待转换的域名放在 DNS 请求报文中发给本地域名服务器。本地域名服务器在查找域名后,将对应的

2、 IP 地址放在回答报文中返回。应用进程获得目的主机的 IP 地址后即可进行通信。2 DNS 的工作原理下面用一个具体的例子来说明 DNS 的工作过程,如图 1 所示,先启动Rlogin 客户程序,然后连接到一个位于其他域的 Rlogin 服务器。图 1 DNS 的工作过程1) 客户程序启动后,调用它的名字解析器函数将我们键入的主机名转换为一个 IP 地址,于是,一个 DNS 查询报文被送往一个根服务器。2) 由根服务器返回的响应中包含的是 Rlogin 服务器所在域的名字服务器名。3) 客户端的名字解析器向 Rlogin 服务器的名字服务器重发上述 DNS 查询报文。4) 返回的应答中包含

3、Rlogin 服务器的 IP 地址。45) Rlogin 客户和 Rlogin 服务器建立一个 TCP 连接。6) Rlogin 服务器收到来自客户的连接请求后,调用它的名字解析器通过TCP 连接请求中的 IP 地址获得客户主机名。这是一个 PTR 查询请求,由一个根名字服务器处理。这个根名字服务器可以不同于步骤 1 中客户使用的根名字服务器。7) 这个根名字服务器的响应中含有为客户的 in-addr.arpa 域的名字服务器。8) 服务器上的名字解析器将向客户的名字服务器重传上述 PTR 查询。9) 返回的 PTR 应答中含有客户主机的 FQDN。10) 服务器的名字解析器向客户的名字服务器

4、发送一个 A 类型查询请求,查找前一步返回的名字对应的 IP 地址。11) 从客户的名字服务器返回的响应含有客户主机的 A 记录。Rlogin 服务器将客户的 TCP 连接请求中的 IP 地址与 A 记录作比较。3 DNS 数据包分析DNS定义了一个用于查询和响应的报文格式。图2显示这个报文的总体格式。图 2 DNS 查询和响应的一般格式这个报文由12字节长的首部和4个长度可变的字段组成。各字段的作用如下:51) 标识字段(2字节)该字段由客户程序设置并由服务器返回结果,用来帮助客户端确定响应与查询是否匹配,如果一个响应报文与一个查询报文的标志字段值一致,则说明这个响应报文是该查询报文的响应。

5、2)标志字段(2字节)标志字段被划分为若干个子字段,如图3所示:图 3 标志字段QR(1 bit):0表示查询报文,1表示响应报文。Opcode (4 bit):0表示标准查询,1表示反向查询,2表示服务器状态请求。通常该字段值为0。AA(1 bit):1表示“授权回答(authoritative answer)”,即该应答报文来自一个授权域名服务器;0表示非授权回答。该字段在应答报文中才有意义,在查询报文中,该项默认为0。TC(1 bit):1表示“可截断的(truncated)”,使用UDP时,它表示当应答的总长度超过512字节时,只返回前512个字节;0表示“未截断的”。RD(1 bit

6、):1表示递归查询;0表示迭代查询。RA(1 bit):1表示名字服务器支持递归查询。该字段在应答报文中才有意义,在查询报文中,该项默认为0。Zero(3 bit):这3 bit必须为0。Rcode(4 bit):通常的值为0,表示没有差错;3表示名字差错(只能从授权名字服务器上返回,它表示在查询的域名不存在)。3)问题数字段(2字节)表示查询问题字段包含的条目数,一般来讲查询报文该字段的值为1,应答报文该字段的值也为1。4)资源记录数字段(2字节)表示回答字段包含的条目数,查询报文该字段通常为0,应答报文该字段至少为1。5)授权资源记录数(2字节)6表示授权字段包含的条目数,查询报文该字段通

7、常为0,应答报文该字段可以为0,也可以不为0。6)额外资源记录数(2字节)表示额外信息字段包含的条目数,查询报文该字段通常为0,应答报文该字段可以为0,也可以不为0。以上这6个2字节的字段是12字节的固定首部,下面是4个长度可变的字段:7)查询问题字段该字段的格式如图4所示:图4 查询问题字段的格式查询名是要查找的名字,即要查找的域名,它是一个或多个标识符的序列。每个标识符以首字节的计数值来说明随后标识符的字节长度,每个名字以最后字节为0结束。该字段无需以整32 bit边界结束,即无需填充字节。查询名的存储格式如图5所示:4 n w p u 3 e d u 2 c n 0计数 计数 计数 结束

8、图5 域名 的存储格式其中每一格是一个字节,计数字节用16进制表示,标识符均用ASCII码表示。计数字节的最高两比特为1时,用于压缩格式。压缩方法很简单,当一个域名中的标识符是压缩的,它的单计数字节中的最高两位被设置为11,这表示它是一个16 bit指针而不再是8 bit的计数字节。指针中的剩下14 bit说明在该DNS报文中标识符所在的位置(起始位置由标识字段的第一字节起算)。用压缩格式表示的域名均占2个字节。常用的查询类型如表1所示:表1 DNS常用查询类型(TYPE字段)7TYPE 数值 描述A 1 IP地址NS 2 名字服务器CNAME 5 规范名称(即别名)PTR 12 指针记录(即

9、根据IP查询域名)HINFO 13 主机信息MX 15 邮件交换记录AXFR 252 对区域转换的请求ANY 255 对所有记录的请求其中AXFR和ANY两项只能用于查询报文。常用的查询类如表2所示:表2 DNS常用查询类(CLASS字段)CLASS 数值 描述IN 1 因特网上的数据8)回答字段回答字段是我们最为关心的字段,它包含了查询域名所对应的IP地址。9)授权字段该字段的内容不是我们关心的。10)额外信息字段该字段的内容不是我们关心的。回答、授权和附加信息这三个变长度字段均采用一种称为资源记录RR(Re- source Record)的相同格式。图6显示了资源记录的格式。8图6 DNS

10、资源记录格式(RR)域名是记录中资源数据对应的名字。它的格式和前面介绍的查询名字段格式(图5)相同。类型说明RR的类型码。它的值和前面介绍的查询类型值是一样的。类通常为1,指Internet数据。生存时间字段是客户程序保留该资源记录的秒数。资源记录通常的生存时间值为2天。资源数据长度说明资源数据的字节数。该数据的格式依赖于类型字段的值。对于类型A,资源数据是4字节的IP地址。3.1 查询报文图7 DNS查询报文图7中蓝色覆盖的部分即为DNS查询报文,其中各字段的名称、长度、值以及作用如表3所示:表3 查询报文字段名称 长度 值(十六进制) 作用9标识 2字节 ee0f 用来帮助客户端确定响应与

11、查询是否匹配,如果一个响应报文与该查询报文的标志字段值一致,则说明这个响应报文是该查询报文的响应。标志 2字节 0100 该字段的OR字段取值为0,说明该报文是一个查询报文;opcode字段取值为0,说明这是一个标准查询;RD字段取值为1,表示期望递归查询。问题数 2字节 0001 表明查询的问题个数,通常该字段的值为1。资源记录数 2字节 0000 查询报文中该字段通常为0。授权资源资源记录数2字节 0000 查询报文中该字段通常为0。额外资源记录数 2字节 0000 查询报文中该字段通常为0。查询问题(无须以32bit边界结束)17字节 03 77 77 77 03 31 36 33 03

12、 63 6f 6d 00 00 01 00 0103 77 77 77 03 31 36 33 03 63 6f 6d 00这13个字节表示域名 ;00 01表示查询类型A,即表示这是一个IP查询;之后的00 01表示查询类为IN,即表示这是一个Internet数据。3.2 响应报文图 8 DNS 应答报文图8中蓝色覆盖的部分即为DNS响应报文,其中各字段的名称、长度、值以10及作用如表4所示:表 4 应答报文字段名称 长度 值(十六进制) 作用标识 2字节 ee0f 该字段的值与表1中标识字段的值一致,说明该响应报文是3.1中所示查询报文的响应。标志 2字节 8180 该字段的OR字段取值为

13、1,说明该报文是一个响应报文;opcode字段取值为0,说明这是一个标准查询;RD字段取值为1,表示期望递归查询;RA字段取值为1,表示名字服务器支持递归查询。问题数 2字节 0001 表明查询的问题个数,通常该字段的值为1。资源记录数 2字节 0007 表明响应中携带的资源记录数为7。授权资源资源记录数2字节 0002 表明响应中携带的授权资源记录数为2。额外资源记录数 2字节 0002 表明响应中携带的额外资源记录数为2。查询问题 17字节 03 77 77 77 03 31 36 33 03 63 6f 6d 00 00 01 00 0103 77 77 77 03 31 36 33 03 63 6f 6d 00这13个字节即为域名 ;00 01表示查询类型A,即表示这是一个IP查询;之后的00 01表示查询类为IN,即表示这是一个Internet数据。回答 133字节 c0 0c 00 05dc b5 1c 35回答里面包含了7条资源记录,第1条的类型为CNAME,说明返回的是域名的一个规范名(也叫别名),类为IN,说明是Internet数据;后6条的类型均为A,说明返回的是域名的IP地址。授权 40字节 C0 33 00 0262 31 c0 38这个字段的内容我们不关心额外信息 32字节 c0 c2 00 01Dc b5 1c a8这个字段的内容我们不关心

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。