第12章DNS服务器配置教学要求了解域名解析的方法熟悉DNS的正向解析过程掌握DNS服务器的配置和客户端的设置教学内容域名解析的基本概念DNS服务器的配置DNS客户端的配置与服务器的测试方法教学重点DNS的解析过程DNS服务器的配置DNS客户端的设置12.1域名解析的基本概念1、域名解析的意义实现域名和IP地址之间的转换过程2、域名解析的方法HOSTS:在网络中的每台主机都用一个文本文件来存放域名和IP地址的对照表,适用于小型网络。该文件为:/etc/hosts;NIS:用NIS数据库存放的解析记录,适用于中型网络DNS:域名解析信息分布存储在网络中每台主机,实现分布式解析(适用于大型网络)域名服务(DomainNameSystem)DNS是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。承担DNS解析任务的网络主机被称为DNS服务器域名服务(DomainNameSystem)DNS的特征:(1)采用分布式数据系统结构,易于管理,网络运行可靠性高。(2)网络中没有存放全部Internet主机信息的中心数据库,主机信息分布在一个层次结构中的若干域名服务器上(3)在DNS系统中,新入网的IP信息可以在需要时自动广播到网络的任意一处。地址转换与反转换广域网中使用IP地址来鉴别主机,由此而来32位二进制数组成。以太网中用6个8位字节的物理地址来鉴别主机。IP地址映射为以太网地址或相反。ARP:正向地址解析,将域名解析为IP地址。RARP:反向地址解析,将IP地址解析为域名。应用(将域名译为IP)DNS请求报文UDPDNS服务器将域名翻译为IP域名服务器工作过程回答报文DNS系统的组成DNS是基于客户/服务器模式设计。整个域名系统以一个大的分布式数据库方式工作。多数具有Internet连接的组织都有一个域名服务器,每个域名服务器包含指向其它域名服务器的信息。DNS的组成域名或资源记录(DomainNameandResourceRecords)标识一组主机并提供相关信息的树结构详细说明(域名、IP、别名)域名服务器名字到IP地址的解析有若干域名服务程序完成(保持和维护域名空间中数据的程序)。运行该程序的服务器称为域服务器其作用是负责与其它区域相应服务器的联系每个域服务器拥有其控制范围内(zone)的完整信息。对于本区域的请求由该域服务器负责解析;对于不同区域的请求将由该域服务器与负责其他区域的相应服务器联系解析器简单的程序或子程序,负责从服务器中提取信息以响应对域名空间中主机的查询,用于DNS客户。3、DNS的工作体系(1)域名空间DNS域名空间是命名机制,它提供DNS数据库的层次树状结构,由根域、顶级域、子域与主机名组成,与IP地址的方向相反,最左边是主机,后面代表网域。如下图所示:DNS体系.netgovmilcomorgeduyahoointel根域顶级域(主机)根域域名空间的起点由InterNIC负责管理只保留顶级域的DNS服务器IP地址顶级域位于根域下的子域。根据组织和地理区域划分,例:.com.cn。由InterNIC负责管理。二级域为部门或团体申请的网络,例:sicnu.edu.cnHost(主机名)描述主机在域中的确切位置,例:的工作原理用分布式的方案,将根服务器下的域名解析权委派到其它的DNS服务器上。如下图:DNS的搜寻流程DNS是以类似树状目录的形态来管理域名的,每一部DNS主机只管理下一层DNS主机的域名解析至于下层的下层,则授权给下层的DNS主机来管理。网络上的每一台主机都有一个域名,域名给出有关主机的信息,该信息中包含IP地址、MAIL路由信息等等,主机也可以有一个或多个域名别名。DNS服务器工作原理客户端linux主机利用/etc/resolv.conf中提供的DNS服务器的IP来进行查询。该DNS服务器:(1)先看本身有没有记录(2)向最顶层查询向最顶层的.(root)这部主机来查询.(root)的下一层.cn(3)向第二层查询就到.cn查询,找到.edu.cn(4)接着一步一步下来(5)记录暂存记忆档查找要找的IP后,就将对应的IP信息在自己的暂存记忆档中保存起来几点注意:a)只有域名是经过上层合法的DNS主机设定的,才可以在INTERNET上被查询到。b)主机的暂存记忆档,是有时间性的,所以当修改一个域名之后,可能要2~3天才能全面的启用。c)每一部可以记录主机名称与IP对应的DNS服务器都可以随意更动他自己的资料库。DNS使用的端口cat/etc/services|grepdomain可以看到DNS使用的端口为53。通常进行DNS查询时,是以UDP这个较快速的资料传输协议来查询的,但若没有查询,会再次以TCP查询。故启动DNS的daemon(即named),会同时启动TCP及UDP的53这个端口。可用netstat–utln命令查看该端口是否启动。网络的应用MailFTPTelnetNewsGopher(2)DNS名称服务器DNS名称服务器保存有资源记录并能响应名称查询的计算机。询问DNS名称数据得到的答案有两种:(1)直接从server的数据库中得到答案;(2)从cache暂存数据中得到答案。如果DNS服务器负责管理一个或多个区域,就称此DNS服务器为这些区域的授权名称服务器。授权服务器负责管理所管辖的区域中的数据,并为查询的DNS客户提供这些数据。DNS名称服务器有以下三种类型:主名称服务器(MasterServer)负责存储授权区域的一切数据且管理该区域和对区域具有解析功能。它具有最权威的回答。包含有主配置文件(named.conf)、正向解析文件(named.hosts)、反向解析文件(named.rev)、初始化文件(named.ca)、回送文件(named.local)。辅助域名称服务器(SlaveServer)可以从主名称服务器中转移一整套区域信息。并且辅助名称服务器会定时从主名称服务器中更新数据,同时可以接受客户机的查询。也称为备份域名服务器,具有主服务器的部分功能。缓存服务器(CachingonlyServer)负责临时存储主名称服务器己解析过域名记录。没有域名服务器数据库文件。转发服务器(ForwarderServer)将需要解析的DNS请求发送到该网络以外的服务器上,它可以保持局域网上的其他服务器对Inernet隐藏。(3)客户机DNS客户机利用一个简单的程序或子程序库,从服务器中提取信息以响应对域名空间的主机查询。4、DNS的解析过程(1)正向解析当DNS客户端向DNS服务器查询IP地址时,或DNS服务器在向另外一台DNS服务器查询IP地址时,有以下三种查询方式:直接从缓冲存储器解析可以直接从DNS客户端或DNS服务器的高速缓冲器中获得查询结果。递归查询当DNS客户端送出查询要求后,如果本地DNS服务器内没有需要的数据,则DNS服务器会代替客户端向其他的DNS服务器查询,一般由DNS客户端所提出的查询要求是属于递归查询。循环查询一般DNS服务器与DNS服务器之间的查询属于这种查询方式,当第1台DNS服务器在向第2台DNS服务器提出查询要求后,如果第2台DNS服务器内没有所需要的数据,则它会提供第3台DNS服务器的IP地址给第1台服务器,让第1台DNS服务器向第3台DNS服务器查询。(2)反向解析域名反向解析可以让DNS客户端利用IP地址查询其主机名称,服务器利用in-addr.arpa反向指针,将一个ip地址指向域名。12.2.1DNS服务器的设置1.安装DNS服务器软件Linux系统中的DNSserver使用的是bind这个套件,其主要参数文档是/etc/named.conf,查询DNS是否安装:#rpm-qa|grepbind若没有安装bind,可以对下列套件进行安装:#rpm–ivhbind-9.2.1-16.i386.rpm#rpm–ivhbind-utils-9.2.1-16.i386.rpm#rpm–ivhredhat-config-bind-1.9.0-13.noarch.rpm#rpm–ivhcaching-nameserver-9.2-7.noarch.rpmbind的默认相关文件:/etc/named.confDNS服务器核心配置文件/etc/rc.d/init.d/namedDNS服务器守护进程所对应的程序/var/named/named.caDNS服务器根区域文件/var/named/localhosts.zoneDNS服务器localhost区域的正向文件/var/named/named.local127.0.0.1(绕回接口)的反向解析文件DNS启动和停止DNS服务器的进程是named.启动可以有三种方式(1)设置启动自动执行named,需要使用setup设置程序:#setup选中named。(2)通过启动脚本进行启动:#/etc/rc.d/init.d/named(3)需要启动时才启动:#servicenamedstart或者配置DNS后,#servicenamedrestart停止:#servicenamedstop查询服务器状态:#servicenamedstatusBind测试命令常用的命令有:nslookup:DNS查询命令dig:DNS信息搜集命令host:域名检索命令2.设置/etc/named.conf作用:建立区域,配置服务器的全局选项文件内容://说明语句配置语句...........配置语句说明:常用的配置语名有以下几种(1)options声明,其作用:对named的基本设置,即定义DNS服务器的全局选项。格式:options{........;全局选项;........;};全局选项:directory“路径名”;定义区域服务器区域文件的存放目录recursionyes/no;是否使用递归查询方式,默认为yestransfer-formatone-answer/many-anser;是否允许一条消息中放入多条应答信息,默认值为one-answerforwarders{ip地址;…….};定义转发器allow-query{ip地址;/网络号;/any;};定义允许向服务器发送查询请求的客户机地址allow-transfer{ip地址;/网络号;/any;};定义允许从主服务器中更新的从服务器地址listen-on[port端口号]{ip地址;};定义dns服务绑定的端口和地址(2)zone声明作用:定义网络管理区域格式:zone“域名”IN{typemaster/hint/slave;file“”文件名;allow-update{none;};};IN:表示该区域为internet类型。typemaster/hint/slave,定义区域的类型;master表示一个区为主域名服务器;hint说明一个区为启动时初始化高速缓存的域名服务器;slave说明一个区为辅助域名服务器;file“文件名”;必选项,网域地区的DNS数据库,文件路径相对于option中的directoryallow-update{none;/key密钥名称;};说明区域是否允许动态更新。masters{ip地址;};定义主服务器的地址缺省配置定义.网域地区,就是名称搜索时的起点,数据库文件为name.ca,里面放着最上层根网域的名称服务器数据,这些最上层的名称服务器由InterNIC机构管理。zone.IN{typehint;filenamed.ca;};缺省配置定义主服务器管理的localhost网域地区,DNS数据库文件为local