实验环境以下:linux
虚拟机centos6.4版本vim
master的ip为192.168.0.120windows
slave的ip为192.168.0.121centos
yum install -y ntpdate安装时间同步命令服务器
ntpdate time.windows.com同步时间,若是一次不成功,须要多同步几回,缘由不解释。。。大家懂的dom
vim /etc/selinux/config改为SELINUX=disabledssh
chkconfig iptables off关闭iptableside
\\\\\作完准备工做后重启下机器/////测试
yum install -y bind bind-utils安装bind服务及dig检测命令rest
>/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; };
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\