★配置DNS转发
我之前配置的DNS服务只能解析我定义过的zone,而没有定义的zone是不能解析的,因此存在着很大的弊端。但是配置了DNS转发之后,就可以顺利解析互联网上了其他域名了,当然,解析此域名的前提是这个域名在互联网中确实存在并且正在使用,也就是说这个域名已经被某个DNS服务器解析了。
我们可以先试一下
[root@yue named]# dig @127.0.0.1 www.qq.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> @127.0.0.1 www.qq.com
; (1 server found)
;; global options: +cmd
;; connection timed out; no servers could be reached <== 不能解析
接下来开始配置DNS转发
编辑主配置文件 /etc/named.conf
在options{}中加入下面的内容:
forward first;
forwarders { 8.8.8.8; };
这两行的内容就是用来配置DNS转发的,我们配置的DNS服务器不能解析的域名会转发到8.8.8.8这个DNS服务器上去解析。
我们测试一下
重启named服务
在此解析www.qq.com
[root@yue named]# dig @127.0.0.1 www.qq.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> @127.0.0.1 www.qq.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28726
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.qq.com. IN A
;; ANSWER SECTION:
www.qq.com. 299 IN A 119.188.89.220
www.qq.com. 299 IN A 119.188.89.202
;; Query time: 2166 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Feb 4 07:07:14 2015 <== 现在可以成功解析了
;; MSG SIZE rcvd: 60
★配置主从
我们再开一台虚拟机作为从,并安装bind
我们要将主上的三个配置文件/etc/named.conf, /var/named/localhost.zone, /var/named/named.local 拷贝到从上去。我们需要先安装scp命令:yum install -y openssh-clients
注意:我们要在两台虚拟机上都安装scp命令才可以正常传输,否则会报错。
scp /etc/named.conf 192.168.16.106:/etc/
scp /var/named/localhost.zone /var/named/named.local 192.168.16.106:/var/named/
在从上修改一下拷贝过来的/etc/named.conf文件
options {
directory "/var/named"; <== 可以把之前做DNS转发时添加的内容删去
}; 如果从上删去了,主要也要相应改动
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 "hera.com" IN { <== 标粗的部分为要改动的内容
type slave; <== 设置为从
file "slaves/hera.com.zone"; <== 我们之前拷贝时并没有拷贝hera相关文件,在从上可以自动生成
masters { 192.168.16.100; }; <== 主的ip
};
zone "16.168.192.in-addr.arpa" IN {
type slave;
file "slaves/192.168.zone";
masters { 192.168.16.100; };在从上生成rndc.key:
rndc-confgen -r /dev/urandom -a
更改key的属组:
chown named:named /etc/rndc.key
在从上启动named服务:
/etc/init.d/named start
启动成功后会在 /var/named/下生成一个slaves目录,这个目录下会有192.168.zone, hera.com.zone这两个文件,内容是和主上的一样的
[root@yue etc]# ls !$/slaves
ls /var/named/slaves
192.168.zone hera.com.zone在从上进行测试:
[root@yue etc]# dig @127.0.0.1 www.hera.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.1 <<>> @127.0.0.1 www.hera.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26741
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;www.hera.com. IN A
;; ANSWER SECTION:
www.hera.com. 600 IN A 192.168.16.100
;; AUTHORITY SECTION:
hera.com. 600 IN NS ns.hera.com.
;; ADDITIONAL SECTION:
ns.hera.com. 600 IN A 192.168.16.100
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Feb 5 01:07:57 2015
;; MSG SIZE rcvd: 79
★测试主从同步
修改主上的配置文件(/var/named/hera.com.zone)后要改一下第三行的数字串,而且这个数字串只能改大不能改小,只有这个数字变化了,才可以让从自动跟着变化
编辑配置文件 vim /var/named/hera.com.zone
在最后添加一行内容,并修改第三行的数字串2015020401
test IN A 1.1.1.1
重启named服务:/etc/init.d/named restart
通过测试我们发现从同步主上的数据更改会有延迟,我测试的时候即使重启了从上的named服务hera.com.zone文件中还是没有及时显示我们之前添加的test
为了避免从同步的特别慢,我们可以在主上做一个特殊操作
编辑主上的/etc/named.conf 文件,在hera.com的zone中加入下面两行内容
notify yes; <== 此两行内容的作用相当于主把做的相关改动主动推送
also-notify { 192.168.16.106; }; 到从上去这时候我们再进行测试,会发现从这时候从同步的很快了
dnspod