RHEL5---DNS服务器冗余配置
 
   大家都知道,我们在给计算机配置dns服务器地址的时候一般都会指定两个,一个为主dns服务器,一个为辅助dns服务器。我们为什么要这样做哪?我给大家分析一下,如果客户机只指定了一台dns,客户机就只能通过此台dns服务器进行域名解析了,如果此台dns服务器瘫痪了,或者进行维护,暂停服务,那么该客户机就无法使用dns服务了,也就无法通过域名访问internet了。这样就要求我们在网络中架设两台dns服务器了 ,其中一台作为另外一台的备份。这样做的好处主要有这么几点:1.可以实现dns服务器的容错,也就是当一台dns坏掉了,我们可以使用另一台实现域名解析;2.可以实现负载均衡,也就是把所有的dns请求由两台服务器来解析,显然可以减轻主dns服务器的负载了。3.可以减少网络的通信量,比如某公司总部设在北京,分部设在上海,我们可以在总部架设主dns服务器,在上海架设辅助dns服务器,这样上海分部的客户机使用本地的辅助dns服务器就可以实现域名解析了,而不需要经过Internet访问北京的dns。
   说到这想必大家已经明白实现辅助dns的目的了,那到底如何配置哪,下面我给大家做个实验环境.
 
试验环境:
 
1.装有RHEL5的计算机两台;可相互通信;
  server1 ip: 192.168.1.102
  server2 ip:  192.168.1.250
 
2.客户机一台,系统不限
  client:192.168.1.252  主dns:192.168.1.102 辅dns:192.168.1.250
 
试验要求:
1.实现正向区域的冗余;
2.实现反向区域的冗余;
 
试验步骤:
 
我在这将server1作为主dns服务器;server2作为辅助dns服务器;
 
第一部分:配置主DNS服务器
 
第一步:在server1上安装dns所需软件包
[root@server1 ~]#mount /dev/cdrom   /mnt
[root@server1 ~]#cd /mnt/Server
[root@server1 Server]# rpm -ivh bind-9.3.3-7.el5.i386.rpm
[root@server1 Server]# rpm -ivh bind-chroot-9.3.3-7.el5.i386.rpm
[root@server1 Server]# rpm -ivh caching-nameserver-9.3.3-7.el5.i386.rpm 

第二步:在server1上建立主配置文件,并修改相关选项;
 
[root@server1 ~]#cd /var/named/chroot/etc
[root@server1 etc]#cp -p named.caching-nameserver.conf named.conf
[root@server1 etc]#vi named.conf 
......
options {
        listen-on port 53 { any; };
        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";
        query-source    port 53;
        query-source-v6 port 53;
        allow-query     { any; };
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
view localhost_resolver {
        match-clients      { localhost; };
        match-destinations { localhost; };
        recursion yes;
        include "/etc/named.rfc1912.zones";
};
view wnt {
        match-clients      { any; };
        match-destinations { any; };
        recursion yes;
        include "/etc/wnt.zones";
};
 
第三步:在server1上建立相应的区域文件;
 
[root@server1 etc]# vi wnt.zones
zone "xyz.com" IN {
        type master;
        file "xyz.com.db";
        allow-transfer { 192.168.1.250; };      //设置允许复制数据的辅助dns服务器地址;
};
zone "1.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.1.rev";
        allow-transfer { 192.168.1.250; };
};
 
第四步:在server1上建立相关的区域数据库文件,内容如下:
 
[root@server1 ~]#cd /var/named/chroot/var/named
[root@server1 named]# vi xyz.com.db         //正向区域
$TTL    86400
@       IN      SOA    ns.xyz.com. root.xyz.com.  (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
         IN      NS      ns.xyz.com.
         IN      MX  10  mail.xzy.com.
ns       IN      A       192.168.1.102
mail     IN      A       192.168.1.103
www      IN      A       192.168.1.104
ftp      IN      CNAME   [url]www.xyz.com[/url].
[root@server1 named]# vi 192.168.1.rev    //反向区域;
$TTL    86400
@       IN      SOA    ns.xyz.com. root.xyz.com.  (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
         IN      NS      ns.xyz.com.
104      IN      PTR     [url]www.xyz.com[/url].
103      IN      PTR     mail.xyz.com.

第五步:启动dns服务器
[root@server1 ~]#service named star
 

第二部分:配置辅助DNS服务器
 
在server2上完成一下内容
 
第一步:在server2上安装dns所需软件包;
方法同上,此处略。
 
第二步:在server2上建立主配置文件,并修改相关选项;
方法同上,此处略。
 
第三步:在server2上建立相应的区域文件;
 
[root@server2 etc]# vi wnt.zones
zone "xyz.com" IN {
        type slave;    //区域类型为从区域;
        file "slavles/xyz.com.db";
        masters { 192.168.1.250; };       //设置主dns服务器的ip地址;
};
zone "1.168.192.in-addr.arpa" IN {
        type slave;
        file "slavles/192.168.1.rev";
        masmters { 192.168.1.250; };
};
注意:辅助dns服务器并不需要建立区域数据库文件;
 
第五步:启动dns服务器,检查数据库文件是否复制了过来;
 
[root@server2 ~]#service named start
[root@server2 ~]#ll  /var/named/chroot/var/named/slaves
-rw-r--r-- 1 named named 365 07-03 11:35 192.168.1.rev
-rw-r--r-- 1 named named 395 07-03 11:35 xyz.com.db

第三步:在客户机上测试
 
C:\>ipconfig/all
......
Ethernet adapter 本地连接 :
        Connection-specific DNS Suffix  . :
        Description . . . . . . . . . . . : NVIDIA nForce Networking Controller
        Physical Address. . . . . . . . . : 00-1B-22-01-99-DF
        Dhcp Enabled. . . . . . . . . . . : No
        IP Address. . . . . . . . . . . . : 192.168.1.252
        Subnet Mask . . . . . . . . . . . : 255.255.255.0
        Default Gateway . . . . . . . . . : 192.168.1.100
        DNS Servers . . . . . . . . . . . : 192.168.1.102
                                            192.168.1.250
C:\>nslookup

> [url]www.xyz.com[/url]
Server:  UnKnown
Address:  192.168.1.102
Name:    [url]www.xyz.com[/url]
Address:  192.168.1.104
关闭server1计算机,在进行测试:
C:\>nslookup
> mail.xyz.com
Server:  UnKnown
Address:  192.168.1.102
Name:    mail.xyz.com
Address:  192.168.1.103
说明辅助dns服务器可用。
常见问题:辅助dns服务器复制不过来数据,是怎么回事?
出现以上问题的主要原因有:
1.检查网络的连通性,就是server1和server2是否课通信;
2.检查是否开有防火墙,可关闭防火墙,也课开放防火墙的tcp53和udp的53端口,建议初学者关闭防火墙;
3.检查辅助dns服务器的数据库文件位置是否定义正确,即file "slavles/192.168.1.rev"; 这个位置跟主dns不一样。
4.检查主dns服务器是否允许辅助dns复制;