003.DNS主從正反解析部署
一 實驗環境
1.1 實驗需求
- 配置正向解析bind
- 配置反向解析bind
- 配置輔助dns的bind
- 實現主輔dns之間的區域傳送
1.2 環境規劃
主dns:CentOS6.8-01 172.24.8.10 linuxmaster.aliyun.com
輔dns:CentOS6.8-02 172.24.8.11 linuxslave.aliyun.com
yum+www伺服器:CentOS7-03 172.24.8.30 mirrors.aliyun.com
client:CentOS6.8-03 172.24.8.20
Domain Name:aliyun.com
二 配置正向解析
- 第一步:使用YUM安裝DNS所使用的軟體包(BIND)
- 第二步:建立或修改主配置檔案(/etc/named.conf)
- 第三步:建立區域資料檔案(/var/named/***.zone)
- 第四步:使用相關命令(named-checkconf、named-checkzone)測試配置檔案及區域檔案是否存在語法錯誤
- 第五步:確保主配置檔案和各區域解析庫檔案的許可權為640,屬主為root,屬組為named;
- 第六步:重啟服務或重新載入配置檔案
- 第七步:更改iptables和selinux的設定(如果不瞭解此兩項可以暫時關閉它們)
- 第八步:分別使用(dig/nslookup)在Linux/Windows主機進行查詢DNS相關資源記錄
2.1 安裝bind
1 [root@linuxmaster ~]# yum -y install bind
2.2 配置主配置檔案
1 [root@linuxmaster ~]# cat /etc/named.conf 2 …… 3 options { 4listen-on port 53 { 127.0.0.1; }; 5listen-on-v6 port 53 { ::1; }; 6directory"/var/named";#存放區域檔案根目錄,下面給出的相對路徑都是相對此目錄 7dump-file"/var/named/data/cache_dump.db"; 8statistics-file "/var/named/data/named_stats.txt"; 9memstatistics-file "/var/named/data/named_mem_stats.txt"; 10allow-query{ localhost; };#允許哪些主機查詢 11recursion yes;#是否允許遞迴查詢 12 13dnssec-enable yes; 14dnssec-validation yes; 15 16/* Path to ISC DLV key */ 17bindkeys-file "/etc/named.iscdlv.key"; 18 19managed-keys-directory "/var/named/dynamic"; 20 }; 21 22 logging {#定義日誌 23channel default_debug { 24file "data/named.run"; 25severity dynamic; 26}; 27 }; 28 29 zone "." IN {#定義根區域檔名稱 30type hint; 31file "named.ca";#相對路徑,即可/var/named/named.ca 32 }; 33 34 include "/etc/named.rfc1912.zones";#定義區域配置檔案,若要新增也可以在此使用include 35 include "/etc/named.root.key";#根區域的key檔案,與事務簽名相關 36 註釋以下三行—— 37 //listen-on port 53 { 127.0.0.1; }; 38 //listen-on-v6 port 53 { ::1; }; 39 //allow-query{ localhost; }; 40 [root@linuxmaster ~]# service named start#啟動named服務 41 [root@linuxmaster ~]# ss -taunl | grep "53" 42 [root@linuxmaster ~]# netstat -tlun#驗證服務正常啟動
2.3· 區域配置檔案中新增zone
1 [root@linuxmaster ~]# vi /etc/named.conf #在zone檔案中增加區域 2 …… 3 zone "aliyun.com" IN { 4 type master; 5 file "aliyun.com.zone"; 6 }; 7 ……
2.4 新建區域zone檔案
1 [root@linuxmaster ~]# cd /var/named/ 2 [root@linuxmaster named]# cp /var/named/named.localhost /var/named/aliyun.com.zone 3 [root@linuxmaster named]# vi /var/named/aliyun.com.zone 4 $TTL 300; 5 @IN SOAlinuxmaster.aliyun.com. admin.aliyun.com. ( 62017051720 71H 85M 97D 103D ) 11INNSlinuxmaster 12INMX 20 MX 13 linuxmaster INA172.24.8.10 14 wwwINA172.24.8.30 15 mirrorsINA172.24.8.30 16 ftpINCNAMEwww 17 [root@linuxmaster ~]# named-checkconf#檢查配置檔案 18 [root@linuxmaster named]# named-checkzone "aliyun.com.zone" /var/named/aliyun.com.zone 19 zone aliyun.com.zone/IN: loaded serial 2017051720 20 OK
2.5 修改許可權
1 [root@linuxmaster ~]# chmod 640 /var/named/aliyun.com.zone 2 [root@linuxmaster ~]# chown root:named /var/named/aliyun.com.zone 3 注意:確保主配置檔案和各區域檔案許可權為640,屬主為root,屬組為named。 4 [root@linuxmaster ~]# service named restart
2.6 關閉防火牆和SELinux
1 [root@linuxmaster ~]# service iptables stop 2 [root@linuxmaster ~]# setenforce 0 3 [root@linuxmaster ~]# service named restart
2.7 測試解析
將dns修改為主dns伺服器地址,之後ping linuxmaster.aliyun.com測試。
三 反向解析bind配置
正向解析與反向解析各自採用不同的解析庫,一臺DNS伺服器可以只有正向解析庫或只有反向解析庫,也可以同時提供正向/反向解析。
反向區域的區域名稱格式:
ReverseIP.in-addr.arpa.
例如:假設網路地址為172.16.100.1 那麼規則命名為100.16.172.in-addr.arpa
3.1 區域配置檔案中新增反向zone
1 [root@linuxmaster ~]# vi /etc/named.conf 2 …… 3 zone "8.24.172.in-addr.arpa" IN { 4type master; 5file "8.24.172.zone"; 6 }; 7 ……
3.2 新建反向區域zone檔案
1 [root@linuxmaster ~]# /var/named/8.24.172.zone 2 $TTL 300; 3 @IN SOAlinuxmaster.aliyun.com. admin.aliyun.com. ( 42017051720 51H 65M 77D 83D ) 9INNSlinuxmaster.aliyun.com. 10 8.10INPTR linuxmaster.aliyun.com. 11 8.30INPTR www.aliyun.com. 12 8.30INPTR mirrors.aliyun.com. 13 8.10INPTR mx.aliyun.com.
注意:
反向解析不需要CNAME記錄,且MX記錄決不允許出現在反向解析庫裡;
8.10 ip地址沒寫全會自動從主配置檔案中定義的區域名“24.172.in-addr.arpa”,沒寫全最後面不需要加.
1 [root@linuxmaster ~]# named-checkconf#檢查配置檔案 2 [root@linuxmaster ~]# named-checkzone "aliyun.com.zone" /var/named/aliyun.com.zone 3 zone aliyun.com.zone/IN: loaded serial 2017051720 4 OK 5 [root@linuxmaster ~]# named-checkzone "aliyun.com.zone" /var/named/8.24.172.zone 6 zone aliyun.com.zone/IN: loaded serial 2017051720 7 OK
3.3 修改許可權
1 [root@linuxmaster ~]# chmod 640 /var/named/24.172.zone 2 [root@linuxmaster ~]# chown root:named /var/named/24.172.zone
注意:確保主配置檔案和各區域檔案許可權為640,屬主為root,屬組為named。
1 [root@linuxmaster ~]# service named restart
3.4 關閉防火牆和SELinux
1 [root@linuxmaster ~]# service iptables stop 2 [root@linuxmaster ~]# setenforce 0 3 [root@linuxmaster ~]# service named restart
3.5 測試解析
將dns修改為主dns伺服器地址,之後在Windows客戶端使用nslookup測試。
四 輔助DNS配置
輔助DNS是針對區域來說的,如果有多臺DNS伺服器,必須為每個DNS伺服器建立NS記錄,否則主DNS將不向其傳送通知。
4.1 定義區域
1 zone “區域名稱” IN { 2type slave; #區域型別為輔助 3file "slaves/ZONE_NAME.zone";#區域檔案必須儲存在slaves目錄下,放在其他目錄沒有許可權 4masters { #指出主伺服器是誰,注意:花括號前後要有一個空格 5MASTER_DNS_IP; 6MASTER_DNS2_IP; 7}; 8 };
4.2 輔DNS上安裝bind
1 [root@linuxslave ~]# yum -y install bind
4.3 區域配置檔案中新增輔助zone
1 [root@linuxslave ~]# vi /etc/named.rfc1912.zones#建議新增在named.rfc1912.zones裡 2 …… 3 zone "aliyun.com" IN { 4type slave; 5file "slaves/aliyun.com.zone"; 6masters { 172.24.8.10; };#主DNS的地址 7 }; 8 zone "8.24.172-addr.arpa" IN { 9type slave; 10file "slaves/24.8.172.zone"; 11masters { 172.24.8.10; }; 12 }; 13 [root@linuxslave ~]# named-checkconf#檢查配置
4.4 輔助dns關閉防火牆和SELinux
1 [root@linuxslave ~]# service iptables stop 2 [root@linuxslave ~]# setenforce 0 3 [root@linuxslave ~]# service named restart
4.5 主DNS正向解析新增輔助DNS記錄
1 [root@linuxmaster ~]# vi /var/named/aliyun.com.zone 2 $TTL 300; 3 @IN SOAlinuxmaster.aliyun.com. admin.aliyun.com. ( 42017051720 51H 65M 77D 83D ) 9INNSlinuxmaster 10INNSlinuxslave 11INMX 20 MX 12 linuxmasterINA172.24.8.10 13 linuxslaveINA172.24.8.11 14 wwwINA172.24.8.30 15 mirrorsINA172.24.8.30 16 mxINA172.24.8.10 17 ftpINCNAMEwww
4.6 主DNS反向解析新增輔助DNS記錄
1 [root@linuxmaster ~]# vi /var/named/8.24.172.zone 2 $TTL 300; 3 @IN SOAlinuxmaster.aliyun.com. admin.aliyun.com. ( 42017051720 51H 65M 77D 83D ) 9INNSlinuxmaster.aliyun.com. 10INNSlinuxslave.aliyun.com. 11 8.10INPTR linuxmaster.aliyun.com. 12 8.11INPTR linuxslave.aliyun.com. 13 8.30INPTR www.aliyun.com. 14 8.30INPTR mirrors.aliyun.com. 15 8.10INPTR mx.aliyun.com.
4.7 檢查配置
1 [root@linuxmaster ~]# named-checkconf#檢查配置檔案 2 [root@linuxmaster ~]# named-checkzone "aliyun.com.zone" /var/named/aliyun.com.zone 3 zone aliyun.com.zone/IN: loaded serial 2017051720 4 OK 5 [root@linuxmaster ~]# named-checkzone "aliyun.com.zone" /var/named/8.24.172.zone 6 zone aliyun.com.zone/IN: loaded serial 2017051720 7 OK 8 [root@linuxmaster ~]# service named restart
檢視主DNS往輔助DNS的資料同步情況
4.8 檢視輔助dns
1 [root@linuxslave ~]# yum -y install bind-utils#安裝客戶端 2 [root@linuxslave ~]# dig -t axfr aliyun.com @172.24.8.10#檢視輔助dns同步情況
1 [root@linuxslave ~]# cat /var/named/slaves/aliyun.com.zone
注意:輔助DNS資源記錄是從主DNS同步過來的,不能手動更改。
Windows客戶端檢測。
總結:
- 1、每個DNS伺服器必須要有一個對應的NS資源記錄;
- 2、建立slave的時候,其配置檔案型別必須是type slave; 必須指定主伺服器的 IP地址 ;
- 3、可以使用dig -t axfr test.com @server_IP 從主DNS伺服器拉取所有解析庫資源記錄;
- 4、主輔同步完成後,將自動在slave伺服器上的slaves/目錄下生成zone檔案,這些區域檔案是從主DNS同步過來的,一般為只讀,不建議更改slave的zone檔案;
- 5、在主DNS上修改區域檔案時,必須將SOA記錄的serial加1 因為slave是通過serial值來進行判斷更新的(windows系統上是自動完成的);
- 6、DNS的日誌預設全部儲存在/var/log/messege 檔案中;
- 7、DNS的解析依賴於解析庫,所以就算是所配置的內容是完全不存在的也可以解析(且正向解析和反向解析的解析庫是各自獨立的)。需要注意,正向解析裡沒有PTR記錄,而反向解析庫裡不需要A記錄、MX記錄和CNAME記錄