1. 程式人生 > >CentOS7.4下建立DNS主從服務器(二)

CentOS7.4下建立DNS主從服務器(二)

bind dns master-slave

(一)DNS主從同步的原理:
1、master DNS服務器每次修改完成並重啟服務後,將傳送notify給所有的slave DNS服務器;

2、slave DNS服務器將查詢master服務器的SOA記錄;

3、master DNS服務器收到請求後將SOA記錄發送給Slave DNS服務器,Slave DNS服務器收到後同時對比查詢結果中的serial值;

4、如果serial值不大於本機的話將結束數據同步過程;但是如果serial值大於本機的話,slave DNS將發送zone transfer請求要求(AXFR/IXFR)。Master響應zone transfer請求並傳送結果,直到整個slave更新完成。

技術分享圖片

(二)DNS服務器類型
1,Primary DNS Server (Master)域主服務器:是這個域的權威服務器,所有這個域的信息都是由域的主服務器控制,改域的所有配置,更改,都在master服務器運行
2,Seconday DNS Server (Slave)域從服務器:通常是用於備份(冗余)和 負載均衡使用。所有slave的信息都是由域的主服務器控制(即域的從服務器從域的主服務器抓取zone配置文件),從服務器不進行不進行信息的修改,所有的修改與主服務器同步。查看域的zone文件是否正常抓取要到/var/named/chroot/var/named/slaves/目錄中查看。
3,Cacheing only Server(DNS緩存服務器):不存在zone文件,僅僅依靠緩存為客戶端提供服務。

(三)配置主從DNS

序號 IP 功能
1 192.168.99.98 Master
2 192.168.99.99 Slave

1,在Master上操作

(1),查看Master的named.conf配置

[root@server98 chroot]# cat /var/named/chroot/etc/named.conf 

options
{

    listen-on port 53   { any; };
        allow-query         { any; };
        recursion            yes;
          listen-on-v6 port 53  { ::1; };
};
zone "lqb.com"  IN  {
        type master;
        file "lqb.com.zon";
        allow-transfer { 192.168.99.99; };     ####slave服務器的IP地址       

};

(2),在Master新建主服務器解析庫文件 zone文件

[root@server98 chroot]# vim  /var/named/chroot/var/named/
data/        dynamic/     lqb.com.zon  slaves/      
[root@server98 chroot]# cat /var/named/chroot/var/named/lqb.com.zon 
$TTL 1D
$ORIGIN lqb.com.
@   IN SOA  lqb.com. admin.lqb.com. (
                    20180511; serial                  ########這個很重要,每次修改記錄的時候都要修改這個數T+1(每次修改完主DNS配置後,都需要改一下serial序列號,且必須比從服務器號大才會同步。)
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H  ; minimum
)
    IN  NS  ns1.lqb.com.

mail IN  A   172.20.66.111
www2 IN  A   172.20.66.112
ns1 IN  A   192.168.99.99
www IN  A   172.20.66.110
ftp     IN   A  10.128.105.250

(3)每次添加修改dns記錄時,serial值比原先的值大才能同步(建議采用T+1)。

[root@server98 chroot]# vim var/named/lqb.com.zon 
$TTL 1D
$ORIGIN lqb.com.
@   IN SOA  lqb.com. admin.lqb.com. (
                    20180513; serial             ###改值比修改前的要大,才能同步
                    1D  ; refresh
                    1H  ; retry
                    1W  ; expire
                    3H  ; minimum
)
    IN  NS  ns1.lqb.com.
@    IN  NS ns1.lqb.com.
@    IN NS  ns2.lqb.com.
mail IN  A   172.20.66.111
www2 IN  A   172.20.66.112
ns1 IN  A   192.168.99.98
ns2 IN  A   192.168.99.99
www IN  A   172.20.66.110
ftp     IN   A  10.128.105.250
file     IN   A  172.20.66.112
lqb     IN   A   172.20.66.120

(4)重新加載配置文件

[root@server98 chroot]# rndc reload
[root@server98 chroot]# tail -f /var/log/messages
May 11 17:30:57 server98 named[33430]: reloading configuration succeeded
May 11 17:30:57 server98 named[33430]: reloading zones succeeded
May 11 17:30:57 server98 named[33430]: zone lqb.com/IN: loaded serial 20180513
May 11 17:30:57 server98 named[33430]: zone lqb.com/IN: sending notifies (serial 20180513)
May 11 17:30:57 server98 named[33430]: all zones loaded
May 11 17:30:57 server98 named[33430]: running
May 11 17:30:57 server98 named[33430]: client 192.168.99.99#32886 (lqb.com): transfer of ‘lqb.com/IN‘: AXFR-style IXFR started
May 11 17:30:57 server98 named[33430]: client 192.168.99.99#32886 (lqb.com): transfer of ‘lqb.com/IN‘: AXFR-style IXFR ended
May 11 17:30:57 server98 named[33430]: client 192.168.99.99#11716: received notify for zone ‘lqb.com‘

技術分享圖片

2,在slave上操作
(1)編輯slave服務器上的named.conf文件,
[root@zabbix ~]# vim /var/named/chroot/etc/named.conf

options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
allow-query { any; };
directory "/var/named";
recursion yes;
};

zone "lqb.com" IN {
type slave; ###本機是從服務器
file "slaves/lqb.com.zon"; ###將同步後的文件放置在哪裏,這裏是相對路徑絕對路徑是/var/named/chroot/var/named/slaves/
masters { 192.168.99.98; }; ###指定主服務器的ip地址
};

(2),給slaves賦讀寫權限並修改該目錄的所有者為named用戶

[root@zabbix ~]# chown -R named:named /var/named/chroot/var/named/slaves/
[root@zabbix ~]# chmod -R 777 /var/named/chroot/var/named/slaves/
[root@zabbix ~]# ll /var/named/chroot/var/named/
總用量 24
drwxrwxrwx 2 root  root     6 5月  11 11:40 data
-rw-r--r-- 1 root  root    56 5月  11 11:40 my.external.zone.db
-rw-r--r-- 1 root  root    56 5月  11 11:40 my.internal.zone.db
-rw-r--r-- 1 root  root  2281 5月  11 11:40 named.ca
-rw-r--r-- 1 root  root   152 5月  11 11:40 named.empty
-rw-r--r-- 1 root  root   152 5月  11 11:40 named.localhost
-rw-r--r-- 1 root  root   168 5月  11 11:40 named.loopback
drwxrwxrwx 2 named named   25 5月  11 15:41 slaves

(3)檢查語法,並在master和slave重啟下服務
[root@zabbix ~]# named-checkconf /var/named/chroot/etc/named.conf
[root@zabbix ~]# systemctl restart named-chroot

(4)查看從服務器是否有文件同步進來,註意該文件是用vim 打不開的。
[root@zabbix ~]# ll /var/named/chroot/var/named/slaves/
總用量 4
-rw-r--r-- 1 named named 340 5月 11 16:05 lqb.com.zon

(5)用從服務器解析 (‘@’後面指定dns 服務器的地址,就可以不用改本機的dns了)

[root@localhost var]# dig file.lqb.com @192.168.99.99      

; <<>> DiG 9.9.4-RedHat-9.9.4-51.el7_4.2 <<>> file.lqb.com @192.168.99.99   
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55636
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;file.lqb.com.          IN  A

;; ANSWER SECTION:
file.lqb.com.       86400   IN  A   10.128.105.251

;; AUTHORITY SECTION:
lqb.com.        86400   IN  NS  ns1.lqb.com.

;; ADDITIONAL SECTION:
ns1.lqb.com.        86400   IN  A   192.168.99.99

;; Query time: 1 msec
;; SERVER: 192.168.99.99#53(192.168.99.99)
;; WHEN: Fri May 11 16:25:53 CST 2018
;; MSG SIZE  rcvd: 91

備註:如果沒有同步文件,則一般的檢查步驟如下:
1,確認ntp時間是否同步
2,samples文件夾的屬主是否是named用戶,是否具有讀寫權限。
3,是否啟用了notify功能,該功能也可以在全局項options內配置,只不過全局配置是針對所有域的。
4,每次修改dns解析的記錄,需要修改series值,采用T+1算法。

日誌信息如下:

[root@zabbix named]# tail -f /var/log/messages
May 11 17:30:57 zabbix named[33420]: client 192.168.99.98#18648: received notify for zone ‘lqb.com‘
May 11 17:30:57 zabbix named[33420]: zone lqb.com/IN: Transfer started.
May 11 17:30:57 zabbix named[33420]: transfer of ‘lqb.com/IN‘ from 192.168.99.98#53: connected using 192.168.99.99#32886
May 11 17:30:57 zabbix named[33420]: zone lqb.com/IN: transferred serial 20180513
May 11 17:30:57 zabbix named[33420]: transfer of ‘lqb.com/IN‘ from 192.168.99.98#53: Transfer completed: 1 messages, 13 records, 316 bytes, 0.001 secs (316000 bytes/sec)
May 11 17:30:57 zabbix named[33420]: zone lqb.com/IN: sending notifies (serial 20180513)

技術分享圖片

CentOS7.4下建立DNS主從服務器(二)