DNS主從同步部署
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主從同步部署