DNS服务器架设与应用Linux服务器架设指南

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

DNS服务器架设与应用Linux服务器架设指南.txt如果背叛是一种勇气,那么接受背叛则需要更大的勇气。爱情是块砖,婚姻是座山。砖不在多,有一块就灵;山不在高,守一生就行。本文由lyx123x贡献doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。第14章DNS服务器架设与应用第14章DNS服务器架设与应用DNS(DomainNameSystem,域名服务系统)是Internet上用得最频繁的服务之一,它是一个分布式数据库,组织成域层次结构的计算机和网络服务命名系统。通过它人们可以将域名解析为IP地址,从而使人们能够通过简单好记的域名来代替枯燥难记的IP地址来访问网络。本章将详细介绍DNS服务的基本概念、工作原理、BIND的运行、架设和使用方法。14.1DNS工作原理DNS是一个分布式数据库,它在本地负责控制整个分布式数据库的部分段,每一段中的数据通过客户服务器模式在整个网络上均可存取,通过采用复制技术和缓存技术使得整个数据库可靠的同时,又拥有良好的性能。下面介绍一下DNS的工作原理及DNS协议的有关情况。14.1.1名称解析方法网络中为了区别各个主机,必须为每台主机分配一个唯一的地址,这个地址即称为“IP地址”。但这些数字难以记忆,所以就采用“域名”的方式来取代这些数字了。不过最终还是必须要将域名转换为对应的IP地址才能访问主机,因此需要一种将主机名转换为IP地址的机制。在常见的计算机系统中,可以使用3种技术来实现主机名和IP地址之间的转换:Host表、网络信息服务系统(NIS)和域名服务(DNS)。1.Host表Host表是简单的文本文件,文件名一般是hosts,其中存放了主机名和IP地址的映射关系,计算机通过在该文件中搜索相应的条目来匹配主机名和IP地址。Hosts文件中的每一行就是一个条目,包含一个IP地址及与该IP地址相关联的主机名。如果希望在网络中加入、删除主机名或者重新分配IP地址,管理员所要做的就是增加、删除或修改hosts文件中的条目,但是要更新网络中每一台计算机上的hosts文件。在Internet规模非常小的时候,这个集中管理的文件可以通过FTP发布到各个主机,每个Internet站点可以定期地更新其hosts文件的副本,并且发布主机文件的更新版本来反映网络的变化。但是,当Internet上的计算机迅速增加时,通过一个中心授权机构为所有Internet主机管理一个hosts文件的工作将无法进行。文件会随着时间的推移而增大,这样按当前和更新的形式维持文件以及将文件分配至所有站点将变得非常困难。·297·第3篇Linux常见服务器架设篇说明:虽然Host表目前不再广泛使用,但大部分的操作系统依旧保留。2.NIS系统将主机名转换为IP地址的另一种方案是NIS(NetworkInformationSystem,网络信息系统),它是由SunMicrosystems开发的一种命名系统。NIS将主机表替换成主机数据库,客户机可以从它这里得到所需要的主机信息。然而,因为NIS将所有的主机数据都保存在中央主机上,再由中央主机将所有数据分配给所有的客户机,以至于将主机名转换为IP时的效率很低。因为在Internet迅猛发展的今天,没有一种办法可以用一张简单的表或一个数据库为如此众多的主机提供服务。因此,NIS一般只用在中型以下的网络。说明:NIS还有一种扩展版本,称为NIS+,提供了NIS主计算机和从计算机间的身份验证和数据交换加密功能3.DNS系统DNS是一种新的主机名称和IP地址转换机制,它使用一种分层的分布式数据库来处理Internet上众多的主机和IP地址转换。也就是说,网络中没有存放全部Internet主机信息的中心数据库,这些信息分布在一个层次结构中的若干台域名服务器上。DNS是基于客户/服务器模型设计的。本质上,整个域名系统以一个大的分布式数据库方式工作。具有Internet连接的企业网络都可以有一个域名服务器,每个域名服务器包含有指向其他域名服务器的信息,结果是这些服务器形成了一个大的协调工作的域名数据库。14.1.2DNS组成每当一个应用需要将域名翻译成为IP地址时,这个应用便成为域名系统的一个客户。这个客户将待翻译的域名放在一个DNS请求信息中,并将这个请求发给域名空间中的DNS服务器。服务器从请求中取出域名,将它翻译为对应的IP地址,然后在一个回答信息中将结果返回给应用。如果接到请求的DNS服务器自己不能把域名翻译为IP地址,将向其他DNS服务器查询。整个DNS域名系统由以下3个部分组成。1.DNS域名空间指定用于组织名称的域的层次结构,它如同一棵倒立的树,层次结构非常清晰,如图14-1所示。根域位于顶部,紧接着在根域的下面是几个顶级域,每个顶级域又可以进一步划分为不同的二级域,二级域再划分出子域,子域下面可以是主机也可以是再划分的子域,直到最后的主机。在Internet中的域是由InterNIC负责管理的,域名的服务则由DNS来实现。2.DNS服务器DNS服务器是保持和维护域名空间中数据的程序。由于域名服务是分布式的,每一个DNS服务器含有一个域名空间自己的完整信息,其控制范围称为区(Zone)。对于本区内·298·第14章DNS服务器架设与应用的请求由负责本区的DNS服务器解释,对于其他区的请求将由本区的DNS服务器与负责该区的相应服务器联系。图14-1DNS域名空间3.解析器解析器是简单的程序或子程序,它从服务器中提取信息以响应对域名空间中主机的查询,用于DNS客户端。14.1.3DNS查询的过程当客户端程序要通过一个主机名称来访问网络中的一台主机时,它首先要得到这个主机名称所对应的IP地址,因为IP数据报中允许放置的是目地主机的IP地址,而不是主机名称。可以从本机的hosts文件中得到主机名称所对应的IP地址,但如果hosts文件不能解析该主机名称时,只能通过向客户机所设定DNS服务器进行查询了。说明:在UNIX系统中,可以设置hosts和dns的使用次序。可以以不同的方式对DNS查询进行解析。第一种是本地解析,就是客户端可以使用缓存信息就地应答,这些缓存信息是通过以前的查询获得的;第二种是直接解析,就是直接由所设定的DNS服务器解析,使用的是该DNS服务器的资源记录缓存或者其权威回答(如果所查询的域名是该服务器管辖的);第三种是递归查询,即设定的DNS服务器代表客户端向其他DNS服务器查询,以便完全解析该名称,并将结果返回至客户端。第四种是迭代查询,即设定的DNS服务器向客户端返回一个可以解析该域名的其他DNS服务器,客户端再继续向其他DNS服务器查询。1.本地解析本地解析的过程如图14-2所示。客户机平时得到的DNS查询记录都保留在DNS缓存·299·第3篇Linux常见服务器架设篇中,客户机操作系统上都运行着一个DNS客户端程序。当其他程序提出DNS查询请求时,这个查询请求要传送至DNS客户端程序。DNS客户端程序首先使用本地缓存信息进行解析,如果可以解析所要查询的名称,则DNS客户端程序就直接应答该查询,而不需要向DNS服务器查询,该DNS查询处理过程也就结束了。图14-2本地解析2.直接解析如果DNS客户端程序不能从本地DNS缓存回答客户机的DNS查询,它就向客户机所设定的局部DNS服务器发一个查询请求,要求局部DNS服务器进行解析。如图14-3所示,局部DNS服务器得到这个查询请求,首先查看一下所要求查询的域名是不是自己能回答的,如果能回答,则直接给予回答,如是不能回答,再查看自己的DNS缓存,如果可以从缓存中解析,则也是直接给予回应。图14-3局部DNS服务器解析3.递归解析当局部DNS服务器自己不能回答客户机的DNS查询时,它就需要向其他DNS服务器进行查询。此时有两种方式,如图14-4所示的是递归方式。局部DNS服务器自己负责向其他DNS服务器进行查询,一般是先向该域名的根域服务器查询,再由根域名服务器一级级向下查询。最后得到的查询结果返回给局部DNS服务器,再由局部DNS服务器返回给客户端。图14-4DNS解析的递归方式·300·第14章DNS服务器架设与应用4.迭代解析当局部DNS服务器自己不能回答客户机的DNS查询时,也可以通过迭代查询的方式进行解析,如图14-5所示。局部DNS服务器不是自己向其他DNS服务器进行查询,而是把能解析该域名的其他DNS服务器的IP地址返回给客户端DNS程序,客户端DNS程序再继续向这些DNS服务器进行查询,直到得到查询结果为止。图14-5DNS解析的迭代方式以上介绍了DNS解析的4种方式,下面看一下DNS报文的格式。14.1.4DNS报文格式DNS客户端与DNS服务器进行交互时,需要传送各种各样的数据报,这些数据报的总体格式如图14-6所示。DNS报文由12字节长的首部和4个长度可变的字段组成。标识字段由客户程序设置并由服务器返回结果,客户程序通过它来确定响应与查询是否匹配。标识字段包含了以下内容。定义是查询报文还是响应报文;查询类型是标准查询、反向查询还是服务器状态请求;是否是权威回答;查询方式是递归查询还是迭代查询;是否支持递归查询;查询是否有差错或要查的域名不存在。问题部分中每个问题的格式如图14-7所示,通常只有一个问题。查询名是要查找的名字,它是一个或多个标识符的序列。每个标识符以首字节的计数值来说明随后标识符的字节长度,每个名字以最后字节为0结束,长度为0的标识符是根标识符。计数字节的值必须是0~63的数,因为标识符的最大长度仅为63。与其他常用报文格式不一样的是,该字·301·第3篇Linux常见服务器架设篇段无需以整32bit边界结束,即无需填充字节。14-8显示了如何存放域名。图其中,3、5、2表示后续字符的个数。图14-6DNS数据报的总体格式图14-73的表示方法每个问题都有一个查询类型,而每个应答(也称为一条资源记录)也有一个应答类型。大约有20个不同的类型值,有一些目前已经过时,表14-1列出了常用的一些值。其中有两种可以用于查询类型:一种是A类型,表示期望获得查询名的IP地址。还有一种是PTR类型,表示请求获得一个IP地址对应的域名,也称为指针查询。查询报文格式中的查询类通常是1,指互联网地址。注意:某些站点也支持其他非IP地址查询,此时查询类将是其他数值。表14-1名ANSCNamePTR字数12512值描IP地址名字服务器规范名称指针记录DNS问题和响应的类型值和查询类型值述名HINFOMXAXFR*或ANY字数1315252255值描主机信息邮件交换记录对区域转换的请求对所有记录的请求述DNS报文一般格式中的最后3个字段是回答字段、授权字段和附加信息字段,它们均采用一种称为资源记录RR(ResourceRecord)的相同格式。图14-9显示了资源记录的格·302·第14章DNS服务器架设与应用式,各个字段的含义如下:图14-9DNS资源记录格式域名是记录中资源数据对应的名字,它的格式和前面介绍的查询名字段格式(图14-8)相同。类型说明RR的类型码,它的值的取值及含义见表14-1。类通常为1,指Internet数据。生存时间字段是客户程序保留该资源记录的秒数,资源记录通常的生存时间值为2天。资源数据长度说明资源数据的数量。资源数据的格式依赖于类型字段的值,对于类型1(A记录)资源数据是4字节的IP地址。14.1.5实际的DNS报文数据在客户机利用域名访问一台主机时,首先要向所设的DNS服务器发送查询报文,以获得该域名所对应的IP地址,DNS服务器要根据具体情况返回给客户端应答。下面通过抓包工具Ethereal捕获这些数据包,并进行观察,以便更深入地理解DNS协议。假设在一台IP地址为10.10.91.252的客户机上执行ping命令,成功执行完成后,Ethereal抓到的数据包如图14-10所示。用在命令执行前,先用ipc

1 / 20
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功