一、DNS主从同步原因及过程

   为了保证更好地进行域名解析服务,一般在网络中设置主、从两台DNS服务器。

     主从服务器触发同步过程的原因有4种:

               1.从域名服务器刚刚启动;

               2.主域名服务器的Serial值增大;

               3.执行了rndc reload命令;

               4.到了主从服务器的同步更新时间。  

       主从域名服务器同步过程:

             1. 主服务器向从服务器发送notify消息

             2. 从服务器收到主服务器发送notify消息,向主服务器返回一个notify response消息。

             3. 从服务器向主服务器发送SOA query消息。

             4. 主服务器向从服务器返回SOA response消息。

             5. 从服务器收到SOA response消息后,比对自身的Serial值,如果发现主服务器的Serial值大于自身的Serial值,那么就发送Zone transfer request消息。

             6. 主服务器返回Zone transfer response消息。

             7. 主服务器执行Zone transfer。

二、准备工作

   

   1、准备两天服务器:

       主服务器:172.16.251.45

       从服务器:172.16.251.46

   2、分别安装DNS

       yum -y install bind

       yum -y  install bind-utils (包含一些配置和测试工具)

三、配置主DNS服务器

       1、配置主DNS主配置文件/etc/named.conf

           vim /etc/named.conf        

//// named.conf//// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS// server as a caching only nameserver (as a localhost DNS resolver only).//// See /usr/share/doc/bind*/sample/ for example named configuration files.//options {//  listen-on port 53 { 127.0.0.1; };//  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";//  allow-query     { localhost; };    recursion yes;//  dnssec-enable yes;//  dnssec-validation yes;//  dnssec-lookaside auto;    /* Path to ISC DLV key *///  bindkeys-file "/etc/named.iscdlv.key";//  managed-keys-directory "/var/named/dynamic";};logging {        channel default_debug {                file "data/named.run";                severity dynamic;        };};zone "." IN {    type hint;    file "named.ca";};include "/etc/named.rfc1912.zones";//include "/etc/named.root.key";

   

   2、/etc/named.rfc1912.zones最下面添加正向解析、反向解析区域文件

           vim /etc/named.rfc1912.zones      

zone "test1.com" IN {                    //正向解析        type master;                      //类型为主DNS        file "test1.com.zone";          //正向解析文件位置        allow-transfer { 172.16.251.46; }; //授权从DNS连接主DNS        allow-update { none; };           //允许自动更新};zone "251.16.172.in-addr.arpa" IN {      //反向解析        type master;                     //类型为主DNS        file " 172.16.251.zone";           //反向解析文件位置        allow-transfer { 172.16.251.46; };//授权从DNS连接主DNS        allow-update { none; };          //允许自动更新};

   3、在/var/named/目录中编辑正反向解析文件

           vim /var/named/test1.com.zone

$TTL 600@        IN   SOA    dns.test1.com   dnsmail.test1.com. (//SOA字段                          2014031945   //版本号    同步一次  +1                             1H        //更新时间                             2M        // 更新失败,重试更新时间                             2D        // 更新失败多长时间后此DNS失效时间                             1D        //解析不到请求不予回复时间)         IN    NS   dns            //有两域名服务器         IN    NS   ns2         IN    MX  10  mail        // 定义邮件服务器,10指优先级  0-99 数字越小优先级越高ns2      IN    A    172.16.251.46  //ns2域名服务器的ip地址dns      IN    A    172.16.251.45  //dns域名服务器的ip地址mail     IN    A    172.16.251.1   //邮件服务器的ip地址www      IN    A    172.16.251.2   //www.test1.com的ip地址pop      IN   CNAME  mail          //pop的正式名字是mailftp      IN   CNAME  www           //ftp的正式名字是www

   4、在/var/named/目录中编辑反反向解析文件

       vim /var/named/172.16.251.zone

$TTL 600@        INSOA    dns.test1.com   dnsmail.test1.com. (                   2014031945                   1H                   2M                   2D                   1D)     IN    NS     dns.test1.com.10   IN    PTR    dns.test1.com.        //反向解析PTR格式1    IN    PTR    mail.test1.com.2    IN    PTR    www.test1.com.// 声明域的时候已经有了,172.16.251 所以我们只需要输入45既代表172.16.251.45

   5、检查语法错误,修改权限

       named-checkconf

       named-checkzone "test1.com" /var/named/test1.com.zone

       named-checkzone "251.16.172.in-addr.arpa" /var/named/172.16.251.zone

           

       把两个自定义区域文件的属组改为named

       安全起见,把这2个文件权限改成640

 

chown :named test1.com.zone    //若这步没做正向解析会出现”server can't find www.cwlinux.com:SERVFAIL”的错误chown :named 172.16.251.zone    //若这步没做反向解析会出现”server can't find 45.251.16.172.in-addr.arpa:SERVFAIL”的错误chmod 640 test1.com.zone 172.16.251.zone

       

       重启bind服务

service named restart         //需要敲打键盘。。。如果时间较长请耐心

   6、在主DNS上测试正反向解析

dig -t A www.test1.com @172.16.251.45    //正向解析测试dig -x 172.16.251.1 @172.16.251.45       //反向解析测试

   

四、配置从DNS服务器

   1、配置从DNS主配置文件/etc/named.conf,和主DNS内容一样

           vim /etc/named.conf      

     2、在/etc/named.rfc1912.zones最下面添加正向解析、反向解析区域文件

           vim /etc/named.rfc1912.zone

zone "test1.com" IN {                       //正向解析          type slave;                             //类型为从DNS        masters { 172.16.251.45; };     //主DNS ip地址    file "slaves/test1.com.zone";       //test1.com.zone拷贝到slaves目录下(/var/named/slaves)        allow-update { none; };         //允许自动更新};       zone "251.16.172.in-addr.arpa" IN {          type slave;                          masters { 172.16.251.45; };                 file "slaves/172.16.251.zone";        allow-update { none; };        };

       

   3、重启从DNS

        service named restart

       

       无限打打字中。。。

       查看从主服务器自动拷贝过来的正反向解析文件

       ls /var/named/slaves/

       

   

   4、测试从DNS正向解析  

dig -t NS test1.com @172.16.251.46dig -x 172.16.251.2 @172.16.251.46

     

       

五、主从同步

       

   在主DNS /var/named/text1.com.zone 中修改版本号并加一条A记录(红线部分)

   

   注意:主DNS版本号必须大于从DNS版本号

   重读DNS文件

   service named reload

   

 

    同步成功!

以上就是DNS主从同步