1. 程式人生 > >003.DNS主從正反解析部署

003.DNS主從正反解析部署

重啟 directory ever 完全 named logs 現在 1.2 bind配置

一 實驗環境

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

二 配置正向解析

  1. 第一步:使用YUM安裝DNS所使用的軟件包(BIND)
  2. 第二步:創建或修改主配置文件(/etc/named.conf)
  3. 第三步:創建區域數據文件(/var/named/***.zone)
  4. 第四步:使用相關命令(named-checkconf、named-checkzone)測試配置文件及區域文件是否存在語法錯誤
  5. 第五步:確保主配置文件和各區域解析庫文件的權限為640,屬主為root,屬組為named;
  6. 第六步:重啟服務或重新加載配置文件
  7. 第七步:更改iptables和selinux的設置(如果不了解此兩項可以暫時關閉它們)
  8. 第八步:分別使用(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 {
  4         listen-on port 53 { 127.0.0.1; };
  5         listen-on-v6 port 53 { ::1; };
  6         directory       "/var/named";	#存放區域文件根目錄,下面給出的相對路徑都是相對此目錄
  7
dump-file "/var/named/data/cache_dump.db"; 8 statistics-file "/var/named/data/named_stats.txt"; 9 memstatistics-file "/var/named/data/named_mem_stats.txt"; 10 allow-query { localhost; }; #允許哪些主機查詢 11 recursion yes; #是否允許遞歸查詢 12 13 dnssec-enable yes; 14 dnssec-validation yes; 15 16 /* Path to ISC DLV key */ 17 bindkeys-file "/etc/named.iscdlv.key"; 18 19 managed-keys-directory "/var/named/dynamic"; 20 }; 21 22 logging { #定義日誌 23 channel default_debug { 24 file "data/named.run"; 25 severity dynamic; 26 }; 27 }; 28 29 zone "." IN { #定義根區域文件名稱 30 type hint; 31 file "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 SOA  linuxmaster.aliyun.com. admin.aliyun.com. (
  6                     2017051720
  7                     1H
  8                     5M
  9                     7D
 10                     3D )
 11     IN  NS  linuxmaster
 12     IN  MX 20 MX
 13 linuxmaster IN  A   172.24.8.10
 14 www         IN  A   172.24.8.30
 15 mirrors     IN  A   172.24.8.30
 16 ftp         IN  CNAME   www
 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 {
  4     type master;
  5     file "8.24.172.zone";
  6 };
  7 ……

3.2 新建反向區域zone文件

  1 [root@linuxmaster ~]# /var/named/8.24.172.zone
  2 $TTL 300;
  3 @   IN SOA  linuxmaster.aliyun.com. admin.aliyun.com. (
  4                     2017051720
  5                     1H
  6                     5M
  7                     7D
  8                     3D )
  9     IN  NS  linuxmaster.aliyun.com.
 10 8.10        IN  PTR linuxmaster.aliyun.com.
 11 8.30        IN  PTR www.aliyun.com.
 12 8.30        IN  PTR mirrors.aliyun.com.
 13 8.10        IN  PTR 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 {
  2    type slave; 				#區域類型為輔助
  3    file "slaves/ZONE_NAME.zone";	        #區域文件必須保存在slaves目錄下,放在其他目錄沒有權限
  4    masters { 				#指出主服務器是誰,註意:花括號前後要有一個空格
  5      MASTER_DNS_IP;
  6      MASTER_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 {
  4     type slave;
  5     file "slaves/aliyun.com.zone";
  6     masters { 172.24.8.10; };				#主DNS的地址
  7 };
  8 zone "8.24.172-addr.arpa" IN {
  9     type slave;
 10     file "slaves/24.8.172.zone";
 11     masters { 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 SOA  linuxmaster.aliyun.com. admin.aliyun.com. (
  4                     2017051720
  5                     1H
  6                     5M
  7                     7D
  8                     3D )
  9     IN  NS  linuxmaster
 10     IN  NS  linuxslave
 11     IN  MX 20 MX
 12 linuxmaster	IN  A   172.24.8.10
 13 linuxslave	IN  A   172.24.8.11
 14 www		IN  A   172.24.8.30
 15 mirrors		IN  A   172.24.8.30
 16 mx			IN  A   172.24.8.10
 17 ftp			IN  CNAME   www

4.6 主DNS反向解析添加輔助DNS記錄

  1 [root@linuxmaster ~]# vi /var/named/8.24.172.zone
  2 $TTL 300;
  3 @   IN SOA  linuxmaster.aliyun.com. admin.aliyun.com. (
  4                     2017051720
  5                     1H
  6                     5M
  7                     7D
  8                     3D )
  9     IN  NS  linuxmaster.aliyun.com.
 10     IN  NS  linuxslave.aliyun.com.
 11 8.10        IN  PTR linuxmaster.aliyun.com.
 12 8.11        IN  PTR linuxslave.aliyun.com.
 13 8.30        IN  PTR www.aliyun.com.
 14 8.30        IN  PTR mirrors.aliyun.com.
 15 8.10        IN  PTR 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記錄

003.DNS主從正反解析部署