1. 程式人生 > >DNS主從同步部署

DNS主從同步部署

服務器同步 transfer pos -a dns 主從 ats addition ice oca

DNS 主從同步原理

  • 主從同步:主每次修改配置文件需要修改一下序列號,主從同步主要 看序列號。
  • 從DNS:從是可以單獨修改,主從不會報錯。但從修改後,主端同步給從後 從端修改數據會丟失
  • 主從原理:從會監聽主的 TCP 53 端口,它會隔一段時間去探測 主配置文件中的序列號,如果主端 序列號更新後 從端探測到會 將主端內容 同步到本地。
  • 同步模式:從主動探測時間比較緩慢,可以設置主端,每次變更序列號時主動將,數據信息,推送給從端。

DNS實驗環境

master服務器:172.16.2.116

slave1服務器: 172.16.2.225

關閉selinux。

安裝步驟

1.安裝軟件

yum install -y bind bind-utils bind-chroot

說明:

/etc/named.conf,/etc/named.rfc1912.zones是主配置文件
/var/named/named.ca是根區域解析庫文件
/var/named/named.localhost, /var/named/named.loopback 是本機和環回地址的解析庫文件
rndc---remote name domain controller這是一個輔助管理工具,默認情況下與BIND安裝在同一主機,而且只能通過127.0.0.1連接named進程,監聽的端口號是TCP/953。

2.修改主服務器配置文件

2.1配置named.conf文件

這個配置文件主要分3段內容,options是全局配置,logging是日誌配置,最後是區域解析庫配置以及所包含的區域解析庫文件配置。

只修改第二行和最後一行為any

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
"; allow-query { any; };

2.2編輯/etc/named.rfc1912.zones在文件末尾添加一個正向解析區域和一個反向解析區域

 1 zone "hanli.com" IN {
 2         type master;
 3         file "hanli.com.zone";
 4         allow-transfer { 172.16.2.225;};
 5 };
 6 zone "2.16.172.in-addr.arpa" IN {
 7         type master;
 8         file "2.zone";
 9         allow-transfer { 172.16.2.225};
10 };

2.3 創建hanli.com.zone解析庫文件和反向解析庫文件

[root@master] /var/named$ cat hanli.com.zone 
$TTL 1D
hanli.com.      IN    SOA  ns.hanli.com.    admin.hanli.com. (
            2018030422   
            2H          
            10M         
            1W          
            1D          
            )
hanli.com.           IN  NS  ns1.hanli.com.
@                 IN  NS  ns2.hanli.com.
ns1.hanli.com.    IN  A   172.16.2.116
ns2.hanli.com.    IN  A   172.16.2.225
hanli.com.        IN  MX 10  mx1.hanli.com.
                  IN  MX 20  mx2.hanli.com.
mx1.hanli.com.    IN  A   172.16.2.116
mx2.hanli.com.    IN  A   172.16.2.116
www.hanli.com.    IN  A   172.16.2.116
master            IN CNAME   www.hanli.com.
web               IN CNAME   www.hanli.com.

2.zone反向解析庫文件

[root@master] /var/named$ cat 2.zone 
$TTL 1d
@    IN  SOA     ns.hanli.com. admin.hanli.com. (
            2018030422;
            2H;
            10M;
            1W;
            1D;
            )
                IN      NS  ns.hanli.com.
        IN     NS  ns2.hanli.com.
200             IN      PTR www.hanli.com.
200             IN      PTR ns.hanli.com.
250        IN     PTR ns2.hanli.com. 

註意事項:

  • 區域解析庫文件第一個記錄必須是SOA記錄,必須有NS記錄並且正解區域要有NS記錄的A記錄,反解則不需要有NS記錄對應的A記錄。
  • $TTL表示宏定義,TTL(Time- To-Live),簡單的說它表示一條域名解析記錄在DNS服務器上緩存時間.當各地的DNS服務器接受到解析請求時,就會向域名指定的DNS服務器發出解析請求從而獲得解析記錄;在獲得這個記錄之後,記錄會在DNS服務器中保存一段時間,這段時間內如果再接到這個域名的解析請求,DNS服務器將不再向DNS服務器發出請求,而是直接返回剛才獲得的記錄;而這個記錄在DNS服務器上保留的時間,就是TTL值。
  • 這個文件裏所有的域名結尾的點號一定不能省略。
  • 區域解析庫文件是放在/var/named目錄下,由named進程是以named用戶運行,還要讓區域解析庫文件的屬組為named。
[root@master] /var/named$ ll
total 24
-rw-r--r--. 1 root  named  342 Mar  4 23:05 2.zone
drwxr-x---. 7 root  named   61 Mar  4 18:26 chroot
drwxrwx---. 2 named named   23 Mar  4 18:38 data
drwxrwx---. 2 named named   31 Mar  4 18:46 dynamic
-rw-r--r--. 1 root  named  643 Mar  4 23:05 hanli.com.zone
-rw-r-----. 1 root  named 2281 May 22  2017 named.ca
-rw-r-----. 1 root  named  152 Dec 15  2009 named.empty
-rw-r-----. 1 root  named  152 Jun 21  2007 named.localhost
-rw-r-----. 1 root  named  168 Dec 15  2009 named.loopback
drwxrwx---. 2 named named    6 Jan 22 21:30 slaves

檢查配置文件語法

# named-checkconf
沒有任何輸出表示 /etc/named.conf沒有語法錯誤
# named-checkzone "frank.com" "frank.com.zone"
zone frank.com/IN: loaded serial 201802001
OK
正向解析區域檢查沒問題
# named-checkzone "frank.com" "138.zone"
zone frank.com/IN: loaded serial 201802001
OK
反向解析區域檢查沒問題

2.4 啟動named服務,並測試

# systemctl start named.service

[root@master] /var/named/chroot/etc/named$ dig -t A web.hanli.com @172.16.2.116

; <<>> DiG 9.9.4-RedHat-9.9.4-51.el7_4.2 <<>> -t A web.hanli.com @172.16.2.116
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36950
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3

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

;; ANSWER SECTION:
web.hanli.com.        86400    IN    CNAME    www.hanli.com.
www.hanli.com.        86400    IN    A    172.16.2.116

;; AUTHORITY SECTION:
hanli.com.        86400    IN    NS    ns1.hanli.com.
hanli.com.        86400    IN    NS    ns2.hanli.com.

;; ADDITIONAL SECTION:
ns1.hanli.com.        86400    IN    A    172.16.2.116
ns2.hanli.com.        86400    IN    A    172.16.2.116

;; Query time: 1 msec
;; SERVER: 172.16.2.116#53(172.16.2.116)
;; WHEN: Sun Mar 04 22:16:52 CST 2018
;; MSG SIZE  rcvd: 144

到此DNS主服務器已經配置完畢並能正常工作。

3、從服務器配置192.168.138.201

3.1、安裝bind

3.2、編輯/etc/named.conf將監聽IP地址改一下,其它不需要更改

options {
        listen-on port 53 { 172.16.2.225;127.0.0.1; };

3.3 編輯/etc/named.rfc1912.zones

zone "hanli.com" IN {
        type slave;
        masters { 172.16.2.116; };
        file "slaves/hanli.com";
};
zone "2.16.172.in-addr.arpa" IN {
        type slave;
        masters { 172.16.2.116; };
        file "slaves/2.zone";
};

3.4 註意事項:從服務器的區域解析庫文件應當是從主服務器加載過來的,所以無需創建區域解析庫文件。

3.5 啟動named服務,測試同步功能

# systemctl start named
檢查/var/named/slaves目錄

# ll /var/named/slaves/
total 8
-rw-r--r--. 1 named named 268 Feb 21 13:14 138.zone
-rw-r--r--. 1 named named 554 Feb 21 13:14 frank.com.zone
這2個文件是自動從主服務器同步過來的。

DNS主從同步部署