该配置操作系统版本为Redhat5.8,内核版本为2.6.18-308.el5,Bind版本为bind97
一、DNS服务器端安装过程:
 1、先检查系统上是否已安装其他版本bind,如果已安装就卸载。
    yum list bind*  检查是否安装了其他版本的bind
    rpm -e PACKAGENAME 下载已安装的bind软件包
 2、安装yum软件包:
     本次安装bind97.i386、bind97-libs.i386、bind97-utils.i386三个包
     yum install bind97.i386 bind97-libs.i386 bind97-utils.i386
       (执行此操作需先配置好yum源)
     yum软件包安装完成
二、DNS服务器的配置
 1、主配置文件:/etc/named.conf
     其格式为:
        全局选项段:
    options {
    directory "/var/named";
    ······
    ······
   };
      区域声明段:
    zone "ZONE_NAME" IN {
    type
    file "FILENAME";
   };
  其中区域类型分一下四种:
   master 主区域
   slave  从区域
   hint   根区域
   forward 转发区域
 区域数据文件:/var/named/
  其格式为:
  $TTL NUMBER                
  name   [ttl]    CLASS   RTYPE    RDATA    如上面已经定义TTL值 则此项TTL可以省略
   zone            IN         SOA          FQDN(主NS的FQDN) mailbox  (
                                                     serial number 序列号(版本号)不能超过10位
                                                     refresh time  刷新时长
                                                     retry time  重试时长
                                                     expire time  过期时长
                                                     negative answer ttl ) 否定回答ttl值
 zone              IN    NS                 FQDN   第二条一般都是NS        
 FQDN          IN   A                    IP
 zone              IN   MX                FQDN
 IP                 IN   PTR                FQDN      PTR条目name主机地址反过写  
 FQDN          IN   CNAME        FQDN
 2、修改配置文件和区域数据文件权限和属组:
  chmod 640 /etc/named.conf /var/named/ZONENAME
  chown :name /etc/named.conf /var/named/ZONENAME
 3、检查配置文件和数据文件语法错误:
 named-checkconf
 named-checkzone "FILENAME" ZONENAME
重启服务:
    service named restart
测试是否正常:
    netstat -tunlp | grep 53
 rndc status
三、配置一个本地DNS缓存服务器
 1、重新编写配置文件:
  vim /etc/named.conf
   其内容为  
  options {
   directory "/var/named";
  };

  zone "." IN {
    type hint;
    file "named.ca";
  };

  zone "localhost" IN {
    type master;
    file "localhost.zone";
  };

  zone "0.0.127.in-addr.arpa" IN {
   type master;
   file "127.0.0.zone";
  };

  zone "gao.com" IN {
   type master;
   file "gao.zone";
  };

  zone "100.168.192.in-addr.arpa" IN {
   type master;
   file "192.168.100.zone";
  };
  2、创建并编写区域数据文件:
  localhost.zone:
   $TTL 86400
   @          IN          SOA         localhost.   admin.localhost. (
                                                 2012101901
                                                 1H
                                                 5M
                                                 7D
                                                 1D )
                IN           NS           localhost.

 localhost. IN           A             127.0.0.1
  127.0.0.zone:
   $TTL 86400
   @                 IN                  SOA       localhost.    admin.localhost (
                                                             2012102001
                                                             2H
                                                             1H
                                                             15D
                                                             7D );
                        IN                  NS          localhost.
   1                   IN                  PTR        localhost.
  gao.zone:
   $TTL 86400
   @               IN              SOA     ns1.gao.com.    admin.gao.com. (
                                                            2012102001
                                                             2H
                                                             1H
                                                             15D
                                                             7D );
                        IN              NS        ns1.gao.com.
                        IN              NS        ns2.gao.com.
                        IN              MX 10   mail.gao.com.
ns1.gao.com.    IN              A       192.168.100.100
ns2.gao.com.    IN              A       192.168.100.101                                                        mail.gao.com.   IN              A       192.168.100.104
ftp.gao.com.     IN              A       192.168.100.100                                                        www.gao.com.    IN           A       192.168.100.103
www1.gao.com.   IN       CNAME   www.gao.com.
  100.192.168.zone:
   $TTL 86400
   @          IN          SOA           ns1.gao.com. admin.gao.com. (
                                                  2012102002
                                                  1H
                                                 10M
                                                 15D
                                                 7D );
                 IN           NS      ns1.gao.com.
                 IN           NS      ns2.gao.com.
   100        IN           PTR     ns1.gao.com.
   101        IN           PTR     ns2.gao.com.
   103        IN           PTR     www.gao.com.
   100        IN           PTR     ftp.gao.com.
   104        IN           PTR     mail.gao.com.
   104        IN           PTR     www1.gao.com.
  编辑区域数据文件注意事项:
   FQDN必须以.结尾;
   记录不能换行(除了SOA);
   SOA邮箱地址中要用.代替@
   第一个记录只能是SOA
   NS和MX在正向解析数据文件中,每个FQDN应该有A记录
   允许一个名称对应多条A记录;多个A记录对应一个名称 (在正文件中,前者具有负载均衡的功能;后者即为一台服务器有多个名字)
   反向区域中,PTR记录的“name”是IP地址剩余的部分(主机地址)反过来写
   反向区域的区域名称:network-address(reverse).in-addr.arpa
    例如:172.16.100.1--> 16.172.in-addr.arpa
四、通过DNS服务器自带命令测试DNS配置情况:
 常见用法示例:
  dig:
     dig -t type FQDN @SERVER-ADDR        测试正想解析
     dig -x IPADDR @SERVER-ADDR         测试反向解析
     dig +trace -t type FQDN @SERVER-ADDR     测试解析过程
     dig +recurse -t type FQDN @SERVER-ADDR     允许递归查询
     dig +norecurse -t type FQDN @SERVER-ADDR    不允许递归查询
     dig txt chaos version.bind.        查服务版本号
  host:
   host -t FQDN SERVER-ADDR
   host -t PTR IPADDR
   host -t FQDN SERVER-ADDR
   host -t type FQDN SERVER-ADDR
   host -c chaos -t txt version.bind 查询版本号
  nslookup:   windows支持
   nslookup
   service SERVICE-ADDR
   set type=“type”
   FQDN