理论我就不讲了,网上很多,这里直接写步骤了.以前在redhat 企业版四中自带的bind与这个有一些区别,所以希望大家别走太多弯路.
环境:CentOS 5.3 (linux)   bind-9.3.4  [redhat AS5也同样]
一.安装: 
1.创建一个目录,将bind的rpm包放在一起,方便安装
   [root@localhost ~]# mkdir dns
   [root@localhost ~]# ll /media/CentOS_5.3_Final/CentOS/ |grep bind
-rw-r--r-- 2 root root   976242 03-09 09:45 bind-9.3.4-10.P1.el5.i386.rpm
-rw-r--r-- 2 root root    43038 03-09 09:45 bind-chroot-9.3.4-10.P1.el5.i386.rpm
   [root@localhost ~]# cp /media/CentOS_5.3_Final/CentOS/bind-9.3.4-10.P1.el5.i386.rpm dns
同上,将bind相关的rpm包复制到dns目录,这些包分别在光盘1/2/4/5中
   [root@localhost ~]# ll dns
总计 5344
-rw-r--r-- 1 root root  976242 08-11 03:48 bind-9.3.4-10.P1.el5.i386.rpm
-rw-r--r-- 1 root root 2663222 08-11 03:53 bind-devel-9.3.4-10.P1.el5.i386.rpm
-rw-r--r-- 1 root root  446142 08-11 03:53 bind-libbind-devel-9.3.4-10.P1.el5.i386.rpm
-rw-r--r-- 1 root root  855660 08-11 03:55 bind-libs-9.3.4-10.P1.el5.i386.rpm
-rw-r--r-- 1 root root  230375 08-11 04:02 bind-sdb-9.3.4-10.P1.el5.i386.rpm
-rw-r--r-- 1 root root  171382 08-11 03:55 bind-utils-9.3.4-10.P1.el5.i386.rpm
-rw-r--r-- 1 root root   59804 08-11 03:54 caching-nameserver-9.3.4-10.P1.el5.i386.rpm
2.再依次安装:
[root@localhost dns]# rpm -ivh bind-9.3.4-10.P1.el5.i386.rpm
Preparing...                ########################################### [100%]
        package bind-9.3.4-10.P1.el5.i386 is already installed
[root@localhost dns]# rpm -ivh bind-devel-9.3.4-10.P1.el5.i386.rpm
Preparing...                ########################################### [100%]
   1:bind-devel             ########################################### [100%]
[root@localhost dns]#
[root@localhost dns]# rpm -ivh bind-libbind-devel-9.3.4-10.P1.el5.i386.rpm
Preparing...                ########################################### [100%]
   1:bind-libbind-devel     ########################################### [100%]
[root@localhost dns]# rpm -ivh bind-libs-9.3.4-10.P1.el5.i386.rpm
Preparing...                ########################################### [100%]
        package bind-libs-9.3.4-10.P1.el5.i386 is already installed
[root@localhost dns]# rpm -ivh bind-sdb-9.3.4-10.P1.el5.i386.rpm
Preparing...                ########################################### [100%]
   1:bind-sdb               ########################################### [100%]
[root@localhost dns]# rpm -ivh bind-utils-9.3.4-10.P1.el5.i386.rpm
Preparing...                ########################################### [100%]
        package bind-utils-9.3.4-10.P1.el5.i386 is already installed
[root@localhost dns]# rpm -ivh caching-nameserver-9.3.4-10.P1.el5.i386.rpm
Preparing...                ########################################### [100%]
   1:caching-nameserver     ########################################### [100%]
二.配置:
1. bind-9.3.4配置文件在/var/named/chroot/etc/下,分为两部分(两个文档)named.caching-nameserver.conf和named.rfc1912.zones
[root@localhost dns]# vi /var/named/chroot/etc/named.caching-nameserver.conf
   
这里修改:listen-on port 53 { any (原:127.0.0.1) ;}
这里修改:allow-query          { any; };           给任意(所有)网段解析
                 match-clients         { any (原:localhost) ; };
                 match-destinations { any (原:localhost) ; };
注意:include "/etc/named.rfc1912.zones";这里是指向另一个配置文档,可以改动,如果改动那你在下面的步骤之前先将named.rfc1912.zones复制或重命名为你改的那个文档名(一般是不用改,无意义)
[root@localhost dns]# vi /var/named/chroot/etc/named.rfc1912.zones
下面是IPV6的.目前还用不到.我也没改动,也就不截过来了
下面建立区域文件:
[root@localhost dns]# cp localdomain.zone test.zone
[root@localhost dns]# cp  named.local test.arpa
 
@@谢谢[8楼]     reply.gif   wang_bokai 朋友的指点:
这里最好是用:cp -p localdomain.zone test.zone 这样会把文档的属性也复制过来,那下面就可以不用chgrp 和chown再改一次属组和属主了....
 
[root@localhost dns]# vi test.zone
这里可以用替换%s/localhost/test.com,这样会把所有的localhost换成test.com
[root@localhost dns]# vi test.arpa
编辑反向区域文档,添加相应的PTR记录.
 
更改test.zone和test.arpa的属主和属组
[root@localhost dns]# chgrp named test.zone
[root@localhost dns]# chown named rest.zone
[root@localhost dns]# chgrp named test.arpa
[root@localhost dns]# chown named rest.arpa
 
[root@localhost dns]# service named restart
更改DNS服务器地址:
[root@localhost dns]#vi /etc/resolv.conf
nameserver:192.168.1.100
[root@localhost dns]#nslookup test.com
Server :                  192.168.1.100
Address:                192.168.1.100#53
 
Name:            test.com
 Address:           192.168.1.100
开启3和5级别自动启动服务
[root@localhost dns]# chkconfig --level 3 named on
[root@localhost dns]# chkconfig --level 5 named on
 
在做的过程中可能会遇到一些问题服务启动不了,有两种情况
一种会提示,直接可以看到在哪个文档,哪一行出现问题,可以直接根据它的提示去找到原因.
另一种只会说启动失败,不给提示,这时就需要你去查看日志了:
谁都有可能出错,刚刚做就有出现过状况,出错没关系关键是要能找到错在哪里.
三.DNS服务器转发
我现在用两台虚拟机dns.test.com(192.168.1.100)和dns.test2.com(192.168.1.104)
现在两台DNS服务器(/etc/resolv.conf)都指向自己,所以都只能解析自己有记录的域名,
我在dns.test2.com上做转发,编辑named.caching-nameserver.conf
[root@localhost dns]# vi /var/named/chroot/etc/named.caching-nameserver.conf
添加:forwarders {192.168.1.100;};
再重启服务:
[root@localhost dns]# service named restart

 
四.辅助DNS服务器:
接着上面的环境做:上面转发的结果(目的)是让dns.test2.com在DNS服务器指向自己的情况下可以解析到test.com.
此时dns.test.com还是不可以解析dns.test2.com
现在我需要做到的目的是:让dns.test.com做dns.test2.com的辅助DNS,让dns.test.com从dns.test2.com上复制记录文档过来,
[root@localhost dns]# vi /var/named/chroot/etc/named.rfc1912.zones
添加:
type slave;        表示这是一个从区域
file "slaves/test2.rev"      表示区域文档是在slaves/test.rev(绝对路径是:/var/named/chroot/var/named/slaves/test2.rev)
masters {192.168.1.104;};     表示主DNS是192.168.1.104
 
注意:这里还得先在dns.test2.com上允许,同样编辑named.rfc1912.zones:在zone "test2.com"区域添加"allow-transfer { 192.168.1.100;};"
 
双方都重启服务,dns.test.com重启之后会在/var/named/chroot/var/named/slaves/下产生一个test2.rev的文档,内容和dns.test2.com上的test2.zone一样.
完成...