1.[root@zh888 ~]#yum -y install bind* //用yum安装所有bind软件
2.[root@zh888 ~]# rpm -qa|grep bind//查询bind安装的所有软件
bind-9.7.3-8.P3.el6_2.2.i686
bind-libs-9.7.3-8.P3.el6_2.2.i686
bind-sdb-9.7.3-8.P3.el6_2.2.i686
bind-devel-9.7.3-8.P3.el6_2.2.i686
bind-utils-9.7.3-8.P3.el6_2.2.i686
3.[root@zh888 ~]# cat /etc/named.conf //查看named.conf主配置文件
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
        listen-on port 53 { any; }; // 开启侦听端口53,接受任意IP连接
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";//这里是目录正向反向区域都创建在这个目录下
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { 0.0.0.0/0; };   允许任意IP查询这里也可以修改为any如果不修改会在nslookup出现错误refused被拒绝
        forward only;               //增加转发功能
        forwarders {
                202.101.172.35;      //浙江DNS服务器地址
                202.101.172.46;};
        recursion yes;
        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;
        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "." IN {
        type hint;
        file "named.ca";
};
include "/etc/named.rfc1912.zones"; //主要配置文件
 
4.// named.rfc1912.zones:///etc/named.rf1912.zones配置文件如下就在最后添加正向和反向区域文件
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
//主配置文件/etc/named.conf的配置语句      
 acl           定义IP地址的访问控制清单
 control       定义ndc使用的控制通道
 include       把其他文件包含到配置文件中
 key           定义授权的安全密钥
 logging       定义日志写什么,写到哪
  opitons       定义全局配置选项和缺省值 
 server        定义远程服务器的特征
 trunsted-keys 为服务器定义DNSSEC加密密钥
 zone          定义一个区
其中type项的值:master:表示定义的是主域名服务器slave :表示定义的是辅助域名服务器hint:表示是互联网中根域名服务器
第一行是TTL设定,生存时间记录字段。它以秒为单位定义该资源记录中的信息存放在高速缓存中的时间长度。这里定义为604800秒,也就是1周.第二行是$ORIGIN设定,说明下面的记录出自何处.请您加倍留意最后的一个小小数点"."第三行,是一个 SOA 记录的设定,在这里我们看到一个特殊字符 @ ,它就是 ORIGIN 的意思,也就是刚刚所定义的$ ORIGIN zh888.com. 的内容,您可以写成 zh888.com. 也可以用 @ 来代替。假如这个文件前面没有定义 $ ORIGIN 的话, 那這个 @ 的值就以 named.conf 里的 zone .接着 SOA 后面,指定了这个区域的授权主机和管理者的信箱,这里分别是"zh888.com." 和"root.zh888.com."。我们平时使用的信箱通常是 “user@host”这样的格式,但因为@在 DNS 记录中是个保留字符,所以在 SOA 中就用“.”来代替了@。目前这个信箱是 " root@zh888.com."。
接下来的 SOA 设置,是被括在“( )”之间的 5 组数字,主要作为和 slave 服务器同步 DNS 资料所使用的资料:
Serial:其格式通常会是“年月日+修改次序”(但也不一定如此,您自己能够记得就行)。当 slave 要进行资料同步的时候,会比较这个号码。如果发现在这里的号码比它那边的数值“大”,就进行更新,否则忽略。不过设 serial 有一个地方您要留意:不能超过 10 位数字!
Refresh:这里是是告诉 slave 要隔多久要进行资料同步(是否同步要看 Serial 的比较结果)。
Retry:如果 slave 在进行更新失败后,要隔多久再进行重试。
Expire:这是记录逾期时间:当 slave 一直未能成功与 master 取得联系,那到这里就放弃 retry,同时这里的资料也将标识为过期(
expired )。
Minimum:这是最小默认 TTL 值,如果您在前面没有用“$TTL”来定义,就会以此值为准。
请注意:SOA 记录中这对 “ ( ) ”符号之第一个 “ (”括号一定要和 SOA 写在同一行,而不能用 Enter 断行到下一行去,而且其左边最好有一个空格键或 tab 建。而最后一个 “ )”括号也不能写在注解符号 “ ;”的右边。 置 DNS 的 RR 记录档,其格式要求非常严格,我们丝毫不能掉以轻心。比方说:如果句子不是以空格键、Tab 键、 或注解符号 ( ; )开头,也不在 SOA 的 “ ( ) ”之内, 则表示要定义一个“新记录项 (Entry) ”;如果句子是以空格键或 tab 键开始的话,其设置被视为上一个“记录项”的内容。所以,如果您要为“同一个记录项”定义多个记录设置,而不想重复打字,您倒可以偷懒:在接着它的后面几行用空白或 Tab 来缩排就可以了。
NS表明负责zh888.com.这个域的Name Server是zh888.com这台主机
MX记录标明发往zh888.com域的邮件由mail.zh888.com这台服务器接收
A记录标明了IP地址和域名之间的对应关系
接下来创建该区的反向映射资源文件
 
zone "localhost.localdomain" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};
zone "localhost" IN {
        type master;
        file "named.localhost";
        allow-update { none; };
};
zone "1.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.0.ip6.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};
zone "1.0.0.127.in-addr.arpa" IN {
        type master;
        file "named.loopback";
        allow-update { none; };
};
zone "0.in-addr.arpa" IN {
        type master;
        file "named.empty";
        allow-update { none; };
};
zone "zh888.com" IN {            //正向区域
type master;                     //类型为master
file "zh888.com";                //文件名字为zh888.com在/var/named中创建touch一个zh888.com
allow-update { none; };
};
zone "40.168.192.in-addr.arpa" IN {     //反向区域文件
type master;
file "zh888.rev";
allow-update { none; };
};

5.[root@zh888 named]# ls //查看/var/named/目录下的内容:
data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves  zh888.com  zh888.rev

6.[root@zh888 named]# cat zh888.com //查看正向区域文件
$TTL  1D
@     IN SOA  zh888.com. root.zh888.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                   
 NS @
 A  127.0.0.1
 AAAA ::1
www    IN   A    192.168.40.40
mail   IN   A    192.168.40.40
mail   IN   MX 10  mail.zh888.com

7.[root@zh888 named]# cat zh888.rev //反向区域
$TTL 86400
@ IN SOA zh888.com. root.zh888.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
@  IN NS zh888.com.
40 IN PTR mail.zh888.com.
40  IN PTR www.zh888.com.

8.[root@zh888 bind]# cat /etc/resolv.conf //设置域名为本机ip
nameserver 192.168.40.40
search zh888.com

9.[root@zh888 bind]# cat /etc/hosts //查看本地hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.40.40 zh888.com  zh888
10.[root@zh888 bind]# cat /etc/sysconfig/network//查看本地hostname
NETWORKING=yes
HOSTNAME=zh888.com
11.测试nslookup
[root@zh888 bind]# service named restart
Stopping named: .                                          [  OK  ]
Starting named:                                            [  OK  ]
[root@zh888 bind]# nslookup
> www.zh888.com
Server:         192.168.40.40
Address:        192.168.40.40#53
** server can't find www.zh888.com.zh888.com: REFUSED
> //出现这个原因为/etc/named.conf
allow-query     { 0.0.0.0; } 如果没加/0就会出现上面的拒绝信息或者为any也是可以的。
[root@zh888 bind]# service named restart//修改好之后重启named服务
Stopping named: .                                          [  OK  ]
Starting named:                                            [  OK  ]
[root@zh888 bind]# nslookup//查看DNS正向区域
> www.zh888.com
Server:         192.168.40.40
Address:        192.168.40.40#53
Name:   www.zh888.com
Address: 192.168.40.40
//成功查询哈哈!
[root@zh888 bind]# nslookup//查看DNS反向区域
> 192.168.40.40
Server:         192.168.40.40
Address:        192.168.40.40#53
40.40.168.192.in-addr.arpa      name = www.zh888.com.
40.40.168.192.in-addr.arpa      name = mail.zh888.com.
//成功查询。
[root@zh888 bind]# nslookup
> set type=MX
> mail.zh888.com
Server:         192.168.40.40
Address:        192.168.40.40#53
mail.zh888.com  mail exchanger = 10 mail.zh888.com.zh888.com.
> //邮件交换成功

> set type=SOA //查看授权信息
> zh888.com
Server:         192.168.40.40
Address:        192.168.40.40#53
zh888.com
        origin = zh888.com
        mail addr = root.zh888.com
        serial = 0
        refresh = 86400
        retry = 3600
        expire = 604800
        minimum = 10800