实验环境如下:

虚拟机centos6.4版本

master的ip为192.168.0.120

slave的ip为192.168.0.121

yum install -y ntpdate安装时间同步命令

ntpdate time.windows.com同步时间,如果一次不成功,需要多同步几次,原因不解释。。。你们懂的

vim /etc/selinux/config改成SELINUX=disabled

chkconfig iptables off关闭iptables

\\\\\做完准备工作后重启下机器/////

yum install -y  bind bind-utils安装bind服务及dig检测命令

>/etc/named.conf

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 "named.local";

};

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

chown named /etc/named.conf

cd /var/named/

dig -t NS . > named.ca

vim localhost.zone

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

@                   IN      SOA     localhost.  admin.localhost.     (

                                                                       2013081601

                                                                       1H

                                                                       10M

                                                                       7D

                                                                       1D

                                                                          )

@                   IN          NS          localhost.

localhost.          IN          A           127.0.0.1

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

vim named.local

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

$TTL 86400

@                    IN      SOA     localhost.  admin.localhost.      (

                                                                       2013081601

                                                                       1H

                                                                       10M

                                                                       7D

                                                                       1D

                                                                       )

@                    IN          NS          localhost.

1                    IN          PTR         localhost.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

检测配置是否有问题: named-checkconf

检测正解析: named-checkzone "localhost" /var/named/localhost.zone

检测反解析: named-checkzone "0.0.127.in-addr.arpa" /var/named/named.local

如果都“OK”那就可以了

rndc-confgen -r /dev/urandom -a  // 这一步是生成 rndc.key, 如果没有这个key namd 是启动不了的

chown named:named /etc/rndc.key

/etc/init.d/named start

首先测试正向解析:dig @127.0.0.1 localhost.

接着测试反解析:dig @127.0.0.1 -x 127.0.0.1

都正常了,那么我呢就增加个域名来试试......

vim /etc/named.conf 后面增加

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

zone "abc.com" IN {

   type master;

   file "abc.com.zone";

};

zone "0.168.192.in-addr.arpa" IN {

   type master;

   file "192.168.zone";

};

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

编辑zone文件: vim /var/named/abc.com.zone

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

$TTL    600

@               IN      SOA     abc.com.      root.abc.com.    (

                                                       2013081611

                                                       1H

                                                       10M

                                                       7D

                                                       1D

)

                IN      NS      ns.abc.com.

                IN      MX  10  mail.abc.com.

ns               IN      A       192.168.0.120

www              IN      A       192.168.0.73

mail             IN      A       192.168.0.10

bbs              IN      CNAME   www.abc.com.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

编辑反解析文件: vim /var/named/192.168.zone

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

$TTL 600

@               IN      SOA     ns.abc.com.      root.abc.com. (

                                                       2013081601

                                                       1H

                                                       10M

                                                       7D

                                                       1D

)

@               IN      NS      ns.abc.com.

120             IN      PTR     ns.abc.com.

10              IN      PTR     mail.abc.com.

73              IN      PTR     www.abc.com.

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

分别检测两个配置文件是否有问题:

named-checkzone "abc.com" abc.com.zone

named-checkzone "0.168.192.in-addr.arpa" 192.168.zone

重启named服务,测试:

dig @127.0.0.1 www.abc.com

dig  @127.0.0.1 -x 192.168.0.120


配置DNS转发:

我们配置的DNS是只能解析我们定义的zone的,我们没有定义的是不能解析的。

配置DNS转发就可以解析其他互联网上的域名了,前提是这个域名在互联网中的确在使用,也就是说这个域名已经被某个DNS服务器解析了。

vim  /etc/named.conf //在options{} 里面增加

forward first;  

forwarders { 8.8.8.8; };

这两行就是用来配置转发的,该DNS服务器不能解析的域名会转发到8.8.8.8这个DNS服务器上去解析。


配置主从:

在从服务器上安装 yum install -y bind bind-utils

拷贝主上的配置文件到从上,其中有/etc/named.conf, /var/named/localhost.zone, /var/named/named.local  

可以使用scp来拷贝很方便哦,他的安装包是yum install -y openssh-clients

拷贝过来后,修改一下从的/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 "named.local";

};

zone "abc.com" IN {

   type slave;

   file "slaves/abc.com.zone";

   masters { 192.168.0.120; };

};

zone "0.168.192.in-addr.arpa" IN {

   type slave;

   file "slaves/192.168.zone";

   masters { 192.168.0.120; };

};

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

从上生成rndc.key: rndc-confgen -r /dev/urandom -a

chown named:named /etc/rndc.key

从上启动named: /etc/init.d/named start

启动成功后会在 /var/named/下生成一个slaves目录,这个目录下会有192.168.zone, abc.com.zone这两个文件,内容是和主上的一样的

在从上测试: dig @127.0.0.1 www.abc.com


测试主从同步

在主dns上更改文件 /var/named/abc.com.zone // 在最后增加一行:

123              IN      A       1.1.1.1

另外需要修改一下第三行的那个数字串,这个是用来做标记的,只有这个数字变化了,才可以让从自动跟着变,数字只能是变大,不能减小,2013081601 -> 2013081602

重启主namd服务: /etc/init.d/named restart

经测试我们发现一个问题,就是从经常会同步特别慢,这是很要命的。所以需要我们做一个特殊操作,在主上的/etc/named.conf中,abc.com的zone中增加两行:

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

notify yes;

also-notify { 192.168.0.121; };

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\