一.DNS主从的理解
主从服务器,在一开始的理解中,以为是主的dns服务器挂掉后,(dns服务自动转向辅助dns服务器),客户端还能继续解析。事实貌似不是这样的。当我把主dns停掉的时候,客户端只设一个dns服务器后,事实证明,解析是失败的。但当我将客户端的dns服务器切换到从dns的ip上后,解析是正常的。说明,从服务器只是同步了主服务器解析域的文件。
本案例的环境:
系统:Centos6.5
IP: 主DNS 192.168.40.105 从DNS 192.168.40.170
iptables:关闭状态。
二.主DNS服务器的搭建配置
主的dns服务器在博客里的上一篇文章里有介绍。请点此:主DNS服务器的搭建。
这里只说主DNS服务器配置文件的修改部分:
1 vim /var/named/chroot/etc/named.rfc1912.zones 2 ~~~ 3 4 zone "test.com" IN { 5 type master; 6 file "named.test.com"; 7 allow-update {none;}; 8 allow-transfer {192.168.40.170;}; 9 notify yes; 10 }; 11 12 zone "40.168.192.in-addr.arpa" IN { 13 type master; 14 file "named.192.168.40"; 15 allow-update {none;}; 16 allow-transfer {192.168.40.170;}; 17 notify yes; 18 };
另外,上篇文章中,有需要对DNS服务器做一些优化和问题的修改的部分,如下所示:
1 vim /var/named/chroot/etc/named.conf 2 ~~~ 3 options { 4 5 allow-query { any; }; 6 recursion yes; 7 forwarders { 114.114.114.114; }; (此处,做的是dns转发,当本地服务器无法解析的,如公网上的域名时,转发到114.114.114.114上) 8 }; 9 10 ~~~
修改完成后,重启主DNS的 守护进程named。
三.从DNS服务器的搭建配置
1.先更改yum源,之后安装开发工具套件,最后安装bind 软件。
1 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo 2 3 yum -y groupinstall "development tools" 4 5 yum -y install bind*
2.之后修改bind 的主配置文件,/var/named/chroot/etc/named.rfc1912.zones
1 vim /var/named/chroot/etc/named.rfc1912.zones 2 3 zone "test.com" IN { 4 type slave; #设置dns类型为从服务器 5 file "slaves/named.test.com"; #‘从服务器’同步从主dns服务器上存放域名文件的位置/var/named/chroot/var/named/slaves/ 6 masters { 192.168.40.105; }; #设置主dns服务器的地址 7 allow-update { none; }; 8 }; 9 10 zone "40.168.192.in-addr.arpa" IN { 11 type slave; 12 file "slaves/named.192.168.40"; 13 masters { 192.168.40.105; }; 14 allow-update { none; }; 15 };
3.单纯的修改这里,客户端并还不能解析.因为还有一个很重要的一个地方需要配置.(在这里一直出错,当主的停掉后,没改这里之前,客户端是一直无法解析。)
1 vim vim /var/named/chroot/etc/named.conf,修改以下选项 2 3 options { 4 5 listen-on port 53 { 192.168.40.170; }; #这里要写从服务器的ip地址。 6 allow-query { any; }; 7 8 };
4.重启named服务。还有一个关键的,在测试过程中,记得关闭iptables,或者将dns服务端口追加到防火墙规则中。
四.总结测试
1.现在可以关闭主DNS,然后,客户端将dns修改为从dns服务器的ip,检查域名解析是否正常。
2.如果遇到某台dns服务器启动正常,但是解析不正常后,请检查系统日志,/var/log/messages文件。