DNS协议原理(测试部内部培训)目录•DNS概述•DNS重要概念•DNS的解析过程•DNS的工作模式•DNS协议报文•Arpa域的作用•DNS的测试讨论DNS概述(1)DNS与我们的日常工作学习娱乐紧密相关DNS概述(2)上图红色部分就是我们的个人电脑上和DNS相关的部分,每个想要使用Internet网络的用户都必须配置该部分的类容在IE里面输入服务,为什么呢?我们先从DNS的历史说起DNS概述(3)使用IP地址访问互连网在Internet网中使用IP地址唯一的标识一台主机如果要去互联网上逛逛的话当然可以通过IP地址访问互联网上的一切服务互联网上的服务很多,每一种服务我们都有可能需要,那么太多的ip地址需要记忆了DNS概述(4)使用IP地址访问互连网太麻烦了,并且人们也不愿意记忆这些没有意义的数字,怎么办?于是有人便给这些没有意义的ip地址赋予一个便于自己记忆的名字让这些名字和ip地址一一对应起来并且将这种对应关系保存在自己的电脑里面DNS概述(5)通过名字访问互连网做好上述的准备工作之后,我们便可以通过名字访问互连网了我们访问互连网时直接输入我们存储在计算机中的名字,然后通过一个程序将这些名字转换成计算机熟悉的ip地址不过这种方式已经不适合时代的发展了,我们现在使用更高级的DNS来做这件事情DNS概述(6)什么是DNSDNS:域名系统(DomainNameSystem),是Internet网中承担域名解析工作的一群计算机的集合,这些计算机按照一定的组织结构被组织起来,分工合作共同在Internet网上完成域名解析的任务!DNS重要概念之一域:域是一个逻辑上的概念在初始瓜分互联网的时候,Internet组织将世界上的计算机进行分类一共是划分了这样的若干个大类,如com、gov、org、net、mil、edu、int、cn、us等等每一个大类我们称之为一个域当然每一个大类里面我们又可以划分出比较小一点的类出来,也就是子域,所以说,域是可以嵌套的,大的域包含小的域,小的域又可以包含更小的域。DNS重要概念之二域名:在每一个域里面,都有很多的主机,每个主机都有一个主机名我们将这个在这个主机名后面冠上该主机所在的域的名称就是该主机在Internet网络上的域名。DNS重要概念之三域名系统:域名系统是一个分层的组织结构域名系统从外形上看更像是一颗倒长的树下图便是域名系统的一部分DNS重要概念之三(续)树根ArpacneducomIn-arpaedu…DNS重要概念之三(续)从上图我们可以看出以下的一些内容在分层的域名系统中,最顶层是没有命名的树根第二层属于顶级域第三层属于第二级域依次类推,直至叶子节点DNS重要概念之三(续)将从叶子节点开始直到树根的每一个节点的名字用“.”连接起来,便形成了一个完整的域名,树根的名字用“.”表示。DNS的解析过程(1)DNS是一种典型的C/S结构由Client向指定的DNSServer发出DNS请求报文,Server收到该请求报文之后,会回给Client一个应答报文,满足Client的域名解析要求图示如下DNS的解析过程(2)ClientServerServerClientRequest:Ftp.test.com主机的ip是多少?Reply:Ftp.test.com的ip地址是1.1.1.1DNS的解析过程(3)对上图的说明如下:Client发出请求报文,要求Server解析Ftp.test.com主机的Ip地址DNSServer收到该请求之后,在自己的数据库中寻找Ftp.test.com主机的ip地址DNS服务器在自己的数据库中虚寻找到相应的记录,发送应答报文给ClientClient收到自己需要的内容之后,就不会再找Server的麻烦了,这样一个解析过程便完成了DNS的工作模式(1)DNS为什么要使用分层的结构?网络上的每一台DNS服务器不可能保存所有主机的域名记录使用分层结构之后,每台DNS服务器只用维护跟自己相关域的主机的信息DNS的工作模式(2)在本地域的DNSServer上查询一个不存在的主机的信息时候该怎么办呢?在DNS域名解析系统中,提出了两种解析域名的方式,分别是:第归解析方式迭代解析方式DNS的工作模式(3)第归模式:DNS服务器收到一个域名解析请求时,如果所要检索的资源记录不在本地,DNS服务器将和自己的上一层服务器交互,获得最终的答案,并将其返回给客户DNS的工作模式(4)第归模式的好处:客户只用发送一次DNS的域名解析请求,简单,方便一级一级的转发解析报文,这种解析是可靠的,也总是可以成功的DNS的工作模式(4)迭代模式:DNS服务器收到解析请求,首先在本地的数据库中查找是否有相应的资源记录,如果没有,则向客户提供另外一个DNS服务器的地址,客户负责把解析请求发送给新的DNS服务器地址DNS的工作模式(5)迭代模式的好处:对于DNS服务器来说,比较简单,因为它只需查找本地的数据库DNS协议报文(1)DNS报文的ip封装格式IPHeaderUDPHeaderDNSDNS协议报文(2)从上图中可以看出:DNS处于IP分层结构的应用层,是一种应用层协议DNS协议数据单元封装在UDP数据报中DNS服务器端使用公用端口号53监听客户端的连接请求DNS协议报文(3)DNS协议报文结构DNS协议报文(4)从上图可以看出DNS数据包由12字节的固定报文头和可变长度的报文头组成标识字段:占两个字节,由客户程序设置,并由服务器返回结果标志字段:该字段占两个字节长,被细分成8个字段,如下图所示:DNS协议报文(5)标志字段:DNS协议报文(6)QR:1bit字段,0表示查询报文,1表示向应报文Opcode:4bit字段,通常值为0(标准查询),其他值为1(反向查询)和2(服务器状态请求)AA:1bit标志表示授权回答(authoritativeanswer),该名字服务器是授权于该域的DNS协议报文(7)TC:1bit字段,表示可截(truncated),使用UDP时,它表示当应答的总长度超过512字节时,只返回前512个字节RD:1bit字段,表示期望第归,该比特能在一个查询中设置,并在一个向应中返回。这个标志告诉名字服务器必须处理这个查询,也称为一个第归查询。如果该位为0,且被请求的名字服务器没有一个授权回答,它就返回一个能够解答该查询的其他名字服务器列表,这称为迭代查询DNS协议报文(8)RA:1bit字段,表示可用第归,如果名字服务器支持第归查询,则在响应中将该bit置为1Zero:必须为0Rcode:是一个4bit的返回码字段。通常值为0(没有差错)和3(名字差错),名字差错只有从一个授权名字服务器上返回,它表示在查询中制定的域名不存在。DNS协议报文(9)随后的4个16bit字段说明最后4个变长字段中包含的条目数。对于查询报文,问题数通常是1,其他三项为0。类似地,对于应答报文,回答数至少是1,剩余两项可以是0或非0DNS协议报文(10)DNS查询报文中每个查询问题的格式DNS协议报文(11)查询名:要查找的名字查询类:通常值为1,表示是互联网的地址,也就是IP协议族的地址查询类型:有很多种查询类型,一般最常用的查询类型是A类型(表示查找域名对应的IP地址)和PTR类型(表示查找IP地址对应的域名)DNS协议报文(12)DNS响应报文种的资源记录格式如下:DNS协议报文(13)域名:和前面的查询问题格式种的查询名相同类型:跟前面查询问题格式中的查询类型相同类:同前面查询问题格式中的查询类DNS协议报文(14)生存时间:客户程序保存该资源记录的秒数资源数据长度:说明后面资源数据的数量资源数据:服务器端返回给客户端的记录数据ARPA域的作用DNS服务器不仅可以根据域名解析出IP地址,而且也可以根据IP地址解析出域名来,这个是怎么实现的呢?在第10页胶片中,我专门的列出了一个这样的域in-arpa.arpa,根据该域我们就可以根据ip地址解析对应的域名了。是这样实现的,在DNS的服务器中,将要解析的点分十进制的ip地址反过来写,然后将该域名跟在这个反写的IP地址的后面就形成一个反向查询域,然后客户端就可以根据该ip地址来解析对应的域名了。DNS的测试讨论新模块我们应该怎么去准备测试?DNS的测试讨论TR-124对LANDNS的描述(must部分)ThedevicemustactasaDNSnameservertoLANdevices,passingitsaddressbacktothesedevicesinDHCPrequestsasDNSnameserverWhenthedevicelearnsDNSnameserveraddressfrommultipleWANconnects,thedevicemustqueryaserveroneachconnectionsimultaneouslyandprovidetherequestingLANclientwiththefirstreturnedpositiveresultfromtheseDNSservers.AnegativeresponsewillnotbetransmittedtoaLANdeviceuntilallWANDNSserverhaveeithertimedoutorreturnedanegativeresponsetoacommonqueryDNS的测试讨论ThedevicemustaddtheDNSentry“dsldevice”foritsownaddressThedevicemustmaintainlocalDNSentriesforaminimumof253localLANdevice.Thisinformationcanbeobtainedthroughautodiscovery(e.g.,fromDHCPrequests,suchasClientIdentifier,andotherprotocolinformation).Whenunknown,theentrymustbeoftheform“unknownxxxxxxxx”where“x”representstheMACaddressoftheassociatedLANdeviceDNS的测试讨论中国电信对DNS的功能要求必须支持DNSRelay,支持家庭网络内部设备的DNS请求转发必须支持DNSclient,从外部DNSServer获取地址的功能,并能够将此信息转发至家庭内部网络设备必须支持DDNS动态域名解析功能,建议支持多个Client建议支持多个外部DNSserver和WAN口连接绑定功能DNS的测试讨论电信的关于DNS的三各测试用例DNS_Relay功能测试DNS_Server功能测试DDNS测试DNS的测试讨论DNS的测试讨论DNS的测试讨论参考文档《DSLForumTR-124》《RFC1034》《RFC1035》《RFC1921》《RFC2136》Thankyou