第六章redhatlinux9binddns服务器的配置6.1linuxbinddns服务概述DNS的作用实现IP地址和域名之间的转换。在Linux中,域名服务(DNS)是由BIND(BerkeleyInternetNameDomain)软件实现的。BIND是一个客户/服务系统,它的客户端称为解析程序(resolver),它产生域名信息的查询,将这类信息发送给服务器,DNS服务器端软件回答解析程序的查询。BIND的服务器端是一个称为named的守护进程。linux中有3种技术来实现主机名到IP地址的转换1、host解析:主要指本地/etc/host文件,其中有主机名和IP地址之间的映射关系。在一个大型网络中Hosts文件较繁琐而又复杂,通常作为DNS的补充。2、NIS:NetWorkInformationSystem网络信息服务系统,NIS将所有主机数据都保存在中央主机上,由中央主机将所需数据分配给所有的服务器,适用于像局域网这样的中型网络。3、DNS:DomainNamesystem它使用一种层次的树型结构的分布式数据库来处理Internet上的主机和IP地址的转换6.1.2DNS系统的组成DNS系统包括3个部分:1、域名空间:用来标识一组主机并提供它们的有关信息的树型结构,树上的每一个结点都有相关的主机的有关信息。2、域名服务器:保持和维护域名空间中部分信息,一个域名服务器拥有其控制范围(区域)内的完整信息。3、解析器:解析器是简单的程序或子程序库,它向服务器发出查询以获得对域名空间中主机名的解析,用于DNS客户。6.1.3DNS域名服务器的类型BIND中DNS服务器主要有两种:主服务器和辅助服务器。主服务器(primarynameserver)是特定域所有信息的权威性信息源。它从域管理员构造的本地磁盘文件中加载域信息,该文件包含着该服务器具有管理权的一部分域结构的最精确信息。主服务器是一种权威性服务器,因为它以绝对的权威去回答对它域的任何查询。配置主服务器需要一整套配置文件,包括正向域的文件(named.hosts)和反向域的文件(named.rev)、引导文件(named.conf)、高速缓存(named.ca)和回送文件(named.local)。辅助域名服务器(secondarynameserver)可从主服务器中复制一整套域信息。区文件是从主服务器中复制出来的,并作为本地磁盘文件存储在辅助服务器中。在辅助域名服务器中有一个所有域信息的完整拷贝,也可以回答对该域的查询。配置辅助域名服务器不需要生成本地域文件,因为可以从主服务器中下载该文件。然而其它的文件是需要的,包括引导文件、高速缓存文件和回送文件。缓存服务器:只使缓存转发服务器:转发DNS查询6.5.1配置域名服务器客户端作为DNS客户端,主要配置两个文件,即/etc/host.conf文件和/etc/resolv.conf文件。1、配置/etc/host.conf文件。该文件指定如何解析主机名。下面是“/etc/host.conf”的示例:orderbind,hostsmultionnospoofonalertontrimabc.com“orderbind,hosts”指定主机名查询顺序,这里规定先使用DNS来解析域名,然后再查询“/etc/hosts”文件(也可以相反)。“multion”指定是否“/etc/hosts”文件中指定的主机可以有多个地址,拥有多个IP地址的主机一般称为多穴主机。“nospoofon”指不允许对该服务器进行IP地址欺骗。IP欺骗是一种攻击系统安全的手段,通过把IP地址伪装成别的计算机,来取得其它计算机的信任。“alteron”指任何试图骗取IP地址的行为都通过syslog工具进行记录。“trimabc.com”指解析器会先将被查找域名中的abc.com去掉,再从/etc/hosts中查找匹配的主机名。2、配置/etc/resolv.conf文件内容:该文件是由域名解析器(resolver)使用的配置文件。当配置解析程序使用BIND域名服务查询主机时,必须告诉解析程序使用哪一个域名服务器。用来完成这项任务的工具就是/etc/resolv.conf文件。/etc/resolv.conf控制解析程序使用DNS解析主机名的方式,它可以明确地定义系统的配置,允许命名由于缺省服务器不响应而使用的备份服务器。示例如下:domainDnsTest.comnameserver192.168.0.1nameserver项利用IP地址去标识域名服务器。可以定义多个nameserver项,可以使用多达三个域名服务器。这些名服务器是按照它们在文件中的顺序进行查询的,如果没有接收到一个服务器的响应,就去试表中的下一个服务器,直到所有服务器试完为止(如果在/etc/resolv.conf文件中设置了三个以上的域名服务器,那么,即使前三个服务器都没有响应查询请求,Linux也不会去请求后面的服务器)。我们应该将最可靠的域名服务器列在最前面,以便在查询时不会超时。如果resolv.conf文件中不包含nameserver项,或者不存在resolv.conf文件,就将所有名服务器查询发送给本地主机。然而,如果有一个resolv.conf文件,它包含nameserver项,除非有一项指向本地主机,否则就不查询本地主机。在配置唯转换程序的主机中,resolv.conf文件包含nameserver项,但没有一个项指向本地主机。domain项用来定义缺省域名(主机的本地域名)。转换程序会将缺省域名挂在任何不含点的主机名后面。例如,转换程序接收到主机名(它不含点),就将其缺省域名挂接在后面,构成对它的查询。如果domian域中的name值是DnsTest.com,那么转换程序就将查询。“searchdomainname.com”表示当提供了一个不包括完全域名的主机名时,在该主机名后添加domainname.com的后缀;“nameserver”表示解析域名时使用该地址指定的主机为域名服务器。其中域名服务器是按照文件中出现的顺序来查询的。6.5.2BIND域名服务器的安装6.5.3配置主域名服务器BIND是一个客户/服务系统,BIND的服务方面是一个称为named的守护进程。要配置主域名服务器,需要配置主配置文件:/etc/named.conf和区域文件。主配置文件:/etc/named.conf完成区域的声名和全局配置(如子域声名,访问控制等等)区域文件(默认在/var/named下),文件名与主配置文件中声名的一样,主要完成DNS资源记录(包括SOA,MX,A,NS,CNAME等等),下面的配置文件中详细说明。1、配置规划假定要实现的域是DnsTest.com,域中包含的机器有:它们分别用于完成网站和FTP,而且都在一个机器上(192.168.0.1),实际中常常在不同的机器上。RH1:IP:192.168.0.1DNS客户配置192.168.0.12、配置主配置文件当安装完Bind之后,默认产生主配置文件/etc/named.conf,用gEdit打开/etc/named.conf,其中加入如下内容(//后面是注释)////named.confforRedHatcaching-nameserver//options{directory/var/named;//区域文件的存放位置dump-file/var/named/data/cache_dump.db;statistics-file/var/named/data/named_stats.txt;/**Ifthereisafirewallbetweenyouandnameserversyouwant*totalkto,youmightneedtouncommentthequery-source*directivebelow.PreviousversionsofBINDalwaysasked*questionsusingport53,butBIND8.1usesanunprivileged*portbydefault.*///query-sourceaddress*port53;};////acachingonlynameserverconfig//controls{inet127.0.0.1allow{localhost;dnstest.com;}keys{rndckey;};};zone.IN{typehint;filenamed.ca;};zonelocaldomainIN{typemaster;filelocaldomain.zone;allow-update{none;};};zonelocalhostIN{typemaster;filelocalhost.zone;allow-update{none;};};zone0.0.127.in-addr.arpaIN{typemaster;filenamed.local;allow-update{none;};};zone0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpaIN{typemaster;filenamed.ip6.local;allow-update{none;};};zone255.in-addr.arpaIN{typemaster;filenamed.broadcast;allow-update{none;};};zone0.in-addr.arpaIN{typemaster;filenamed.zero;allow-update{none;};};zoneDnsTest.comIN{//要实现DnsTest.com域typemaster;//要实现的是主域fileDnsTest.com.zone;//主域的记录文件存放在/var/named下allow-update{none;};};zone0.168.192.in-addr.arpaIN{//DnsTest.com的反向解析区域typemaster;//类型是主要区域fileDnsTest.com.arpa;//反向区域记录的存放文件(好记的名字),位置同上allow-update{none;};};include/etc/rndc.key;3、在/var/named下建立两个区域文件DnsTest.com.zone和DnsTest.com.arpa/var/named/DnsTest.com.zone的内容如下:$TTL86400DnsTest.com.INSOA最左边的DnsTest.com可以简化为@,后面依次为IN(代表Internet类)SOA主DNS服务器域名DNS服务器管理员邮件20050822;serial(d.adams)//区域序列号,当修改时要增加,否则从域可能不一致!3H;refresh//从域刷新超时时间15M;retry/从域重试刷新时间1W;expiry//从域刷新失败并认为主域无效的时间1D);minimumINNS左侧必须留空白//以下每行都要靠左,即左侧不要留出空白的内容如下:$TTL86400@INSOA(20050822;serial(d.adams)28800;Refresh14400;Retry3600000;Expire86400);MinimumINNS注意本行左侧