DNS域名服務器

隨着ABC公司業務的擴張,計算機越來越多的情況下,讓員工記憶所有公司內部服務器的IP地址可能性不大,因此公司決定採用DNS解決方案,這樣實現主機之間的通訊可以變的更簡單。案例中我們使用的域爲abc.com域,這個是正向解析的域,網絡採用的是私有網絡:172.16.0.0/16。本案例僅對公司主要的服務器生產解析記錄,如果讀者需要更多的記錄,可以按照這些模版添加其他主機的記錄信息,在公司內部服務器列表見表4-10

4-10

服務器IP

服務器名稱

功能描述

172.16.0.254

dns1.abc.com

主域名服務器

172.16.0.253

dns2.abc.com

從域名服務器

172.16.0.100

fileserver.abc.com

文件服務器

172.16.0.101

printserver.abc.com

打印機服務器

172.16.0.200

www.abc.com

網站服務器

172.16.0.201

www.abc.com

網站服務器

172.16.0.25

mail.abc.com

郵件服務器

172.16.0.22

ntp.abc.com

時間服務器

1.         安裝軟件

[root@centos6 ~]# yum -y install bind

[root@centos6 ~]# yum -y install bind-chroot

[root@centos6 ~]# yum -y install bind-utils

2.         修改主配置文件

[root@centos6 etc]# cd /usr/share/doc/bind-9.8.2/sample/etc/

[root@centos6 etc]# cp named.conf /var/named/chroot/etc/

[root@centos6 etc]# chown root.named /var/named/chroot/etc/named.conf

[root@centos6 etc]# vim /var/named/chroot/etc/named.conf

  1. options 
  2. {        directory                   "/var/named";                   // "Working" directory 
  3.          dump-file                  "data/cache_dump.db"; 
  4.         statistics-file "data/named_stats.txt"; 
  5.         memstatistics-file "data/named_mem_stats.txt"; 
  6.          listen-on port 53      { any; }; 
  7.          allow-query               { any; }; 
  8.          allow-query-cache   { any; }; 
  9.          recursion yes; 
  10. }; 
  11. acl secondserver { 
  12.             172.16.0.253; 
  13.   }; 
  14.   zone "." IN { 
  15.             type hint; 
  16.             file "named.ca"; 
  17.   }; 
  18.   zone "abc.com" IN { 
  19.             type master; 
  20.             allow-transfer { secondserver; }; 
  21.             file "abc.com.zone"; 
  22.   }; 
  23.   zone "16.172.in-addr.arpa" IN { 
  24.             type master; 
  25.             allow-transfer { secondserver; }; 
  26.             file "172.16.zone"; 
  27.          }; 

3.         創建區數據文件

[root@centos6 etc]# cd /usr/share/doc/bind-9.8.2/sample/var/named/

[root@centos6 named]# cp named.ca /var/named/chroot/var/named/

[root@centos6 etc]# chown root.named /var/named/chroot/var/named/named.ca

[root@centos6 named]# cp named.localhost /var/named/chroot/var/named/abc.com.zone

[root@centos6 named]# chown root.named /var/named/chroot/var/named/abc.com.zone

[root@centos6 named]# vim /var/named/chroot/var/named/abc.com.zone

  1. $TTL 1D 
  2. @     IN SOA      dns1.abc.com. jacob.abc.com. ( 
  3.                                                10     ; serial 
  4.                                                1D    ; refresh 
  5.                                                1H    ; retry 
  6.                                               1W   ; expire 
  7.                                                3H )  ; minimum 
  8.          NS    dns1.abc.com. 
  9.          NS    dns2.abc.com. 
  10.          MX 10       mail.abc.com. 
  11. dns1                       IN A 172.16.0.254 
  12. dns2                       IN A 172.16.0.253 
  13. ntp.abc.com.    IN A 172.16.0.22 
  14. mail.abc.com.  IN A 172.16.0.25 
  15. fileserver      IN A 172.16.0.100 
  16. printserver        IN A 172.16.0.101 
  17. www                   IN A 172.16.0.200 
  18.                        IN A 172.16.0.201 

[root@centos6 named]# vim /var/named/chroot/var/named/ 172.16.zone

  1. $TTL 1D 
  2. @     IN SOA      dns1.abc.com. jacob.abc.com. ( 
  3.                                                10     ; serial 
  4.                                                1D    ; refresh 
  5.                                                1H    ; retry 
  6.                                                1W   ; expire 
  7.                                                3H )  ; minimum 
  8.              NS    dns1.abc.com. 
  9.              NS    dns2.abc.com. 
  10. 254.0        IN PTR      dns1.abc.com. 
  11. 253.0        IN PTR      dns2.abc.com. 
  12. 22.0         IN PTR      ntp.abc.com. 
  13. 25.0         IN PTR      mail.abc.com. 
  14. 100.0        IN PTR      fileserver.abc.com. 
  15. 101.0        IN PTR      printserver.abc.com. 
  16. 200.0        IN PTR      www.abc.com. 
  17. 201.0        IN PTR      www.abc.com. 

4.         服務管理

[root@centos6 ~]# iptables -I INPUT -p udp --dport 53 -j ACCEPT

[root@centos6 ~]# iptables -I INPUT -p tcp --dport 53 -j ACCEPT

[root@centos6 ~]# service named start

[root@centos6 ~]# chkconfig named on

1.         客戶端驗證

客戶端正確配置DNS服務器後,查詢工具比較多,常用的有nslookupdighost,下面分別演示這些命令的基本用法。

[root@centos6 ~]# nslookup www.abc.com

[root@centos6 ~]# nslookup 172.16.0.100

[root@centos6 ~]# dig www.abc.com

[root@centos6 ~]# dig abc.com MX

[root@centos6 ~]# host www.abc.com

4.1.1     部署從域名服務器

部署從域名服務器的作用是防止單點故障或實現負載均衡。如果只有一臺服務器當該服務器宕機時,將導致所有客戶端的地址解析出現問題。另外,爲了滿足大規模的查詢請求,我們可以創建多臺DNS服務器實現負載均衡。然而如果所有的DNS都作爲主服務器的話,會有大量的配置需要我們重複進行,再有就是當解析記錄發生改變後,各個服務器之間的區數據文件的版本比較混亂(不方便統一),所以我們需要部署從域名服務器,從域名服務器會從主域名服務器上下載數據文件,只要主服務器修改了數據文件中的記錄,從服務器可以自動同步數據。

1.         安裝軟件

[root@centos6 ~]# yum -y install bind

[root@centos6 ~]# yum -y install bind-chroot

[root@centos6 ~]# yum -y install bind-utils

2.         修改配置文件

[root@centos6 etc]# cd /usr/share/doc/bind-9.8.2/sample/etc/

[root@centos6 etc]# cp named.conf /var/named/chroot/etc/

[root@centos6 etc]# chown root.named /var/named/chroot/etc/named.conf

[root@centos6 etc]# vim /var/named/chroot/etc/named.conf

  1. options 
  2.          directory                   "/var/named";                   // "Working" directory 
  3.          dump-file                  "data/cache_dump.db"; 
  4.         statistics-file "data/named_stats.txt"; 
  5.         memstatistics-file "data/named_mem_stats.txt"; 
  6.          listen-on port 53      { any; }; 
  7.          allow-query               { any; }; 
  8.          allow-query-cache   { any; }; 
  9.          recursion yes; 
  10. }; 
  11.   zone "." IN { 
  12.             type hint; 
  13.             file "named.ca"; 
  14.   }; 
  15.   zone "abc.com" IN { 
  16.             type master; 
  17.             masters { 172.16.0.254; }; 
  18.             file "abc.com.zone"; 
  19.   }; 
  20.   zone "16.172.in-addr.arpa" IN { 
  21.             type master; 
  22.             masters { 172.16.0.254; }; 
  23.             file "172.16.zone"; 
  24.          }; 

3.         同步數據文件

從服務器進行同步操作前,需要創建一個BIND軟件可以進行讀取操作的目錄,以便將主服務器的數據文件保存至該目錄。

當從服務器的主配置文件修改完成後,通過啓動服務,BIND會自動根據主配置文件中的masters語句尋×××器,並將主服務器的數據文件下載至從服務器本地。完成第一次的數據同步後,從服務器會根據同步過來的數據文件中的SOA記錄選項,決定下次同步數據的時間,案例中主域名服務器的SOA記錄括號中有五條選項。

第一個選項10是序列號,從服務器會根據這個序列號來決定是否進行同步操作,如果服務器端數據文件的序列號大於從服務器的序列號,從服務器纔會與主服務器同步數據,該序列號建議使用時間格式,如20121212001表示20121212日的第一次修改(序列號只要是數字即可,BIND不強制要求具體數字格式)。

第二個選項1D,代表從服務器多久與主服務器進行序列號的對比(僅在主服務器序列號大於從服務器的序列號時,才進行數據同步),D代表Day,這裏爲1天。

第三個選項1H,代表如果從服務器請求連接主服務器時,由於網絡延遲,主服務器故障等原因,暫時無法連接到主服務器,那麼從服務器會每個一個小時再試一次。

第四個選項1W,代表如果從服務器嘗試一週後還是沒能連接到主服務器,則不再進行連接。

第五個選項3H,代表的是緩存的時間爲3小時。

 注意:在CentOS 6.3系統中從服務器同步數據文件時需要修改SELinux設置,否則將無權限進行同步操作。

[root@centos6 ~]# setsebool -P named_write_master_zones=1

[root@centos6 ~]# mkdir -p /var/named/chroot/var/named/slaves/

[root@centos6 ~]# chown root.named /var/named/chroot/var/named/slaves/

[root@centos6 ~]# chmod 775 /var/named/chroot/var/named/slaves/

[root@centos6 ~]# service named start

[root@centos6 ~]# chkconfig named on

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章