DNS服務之bind安裝配置與應用

    BIND是實現DNS服務的一套軟件(官方站點:isc.org),其包含了服務器端程序named(由bind程序包提供,監聽套接字:53/tcp、53/udp),和客戶端工具host、nslookup、dig(由bind-utils程序包提供)。爲保證服務器的安全性,bind還提供了一種“沙箱機制”,bind-chroot是將原文件系統的根“/”替換成“/var/named/chroot”來使用。

     目前主流的bind程序依舊是9.x系列。使用yum install bind命令即可安裝bind程序,安裝完成後會自動添加named用戶,named組。使用rpm -qc bind可查看安裝完成後生成的配置文件列表。

wKioL1UvdUyiPt1oAAJ4zzIs4Nc670.jpg

     其服務腳本是:/etc/rc.d/init.d/,主配置文件:/etc/named.conf、/etc/named.rfc1912.zones,以及/var/named/下以“.zone”爲後綴的區域數據解析庫文件。/etc/named.conf由3段組成,見圖示。

wKioL1UvdS3AQhT3AAUmLHDAkuo895.jpg

    要想配置成一臺可供他人服務的DNS服務器,還需要修改配置文件/etc/named.conf(幫助文檔 man named.conf)。必須的配置有:

    ① 監聽的地址:配置能與外部進行通信的地址,也可以將此項註釋掉,表示監聽在本機(注:本機在此不表示127.0.0.1)如:本機IP是172.16.24.1,則可配置如下:

      listen-on port 53 {127.0.0.1;172.16.24.1;};

    ② 允許所有主機查詢(也可定義爲一部分主機查詢,詳見下文):

      allow-query     { any; };

    ③ 關閉dnssec相關配置,並註釋掉ISC DLV key:    

      dnssec-enable no;
      dnssec-validation no;
      dnssec-lookaside no;
      /* Path to ISC DLV key 
      bindkeys-file "/etc/named.iscdlv.key";
      managed-keys-directory "/var/named/dynamic";
      */

     ④ 定義zone,其格式是如下:

       zone "ZONE_NAME" IN {
       type master|slave|forward;/*唯有根域.的type爲hint*/
       file "ZoneData_FILE"; /*區域數據解析庫文件,工作目錄是:/var/named/,通常以.zone命名。*/
       };

注:a.ZONE_NAME的定義,正向區域直接寫域名即可,反向區域定義格式爲:逆向網絡地址.in-addr.arpa,如:1.168.192.in-addr.arpa

    b.若type是slave,還要註明master服務器的IP;若是forward,file項可無。  

    ⑤ 根據實際需求自定義區域數據解析庫文件(在/var/named/目錄下),定義完成後記得將文件的屬組改爲named。

各項配置都完成之後,可以使用named-checkconf檢查配置文件是否有語法錯誤,使用named-checkzone "ZONE_NAME" /path/to/ZoneData_FILE檢查區域解析數據庫文件是否有語法錯誤。    

    ⑥ 啓動named,並測試

       service named start
       dig -t A www.baidu.com @localhost


客戶端工具dig的使用

dig常用來測試DNS服務是否正常的工具,供攻城師們及時排查DNS故障。其常用語法格式爲

dig [@DNS_Server] [-t RR_Type]  Name [Query_Options]

當不指定DNS_Server時,dig將使用/etc/resolv.conf中定義的DNS服務器

 dig @192.168.120.132 -t A www.test.com

wKioL1UvdxLiQFzHAATCg-SWwW0005.jpg

 其常用命令:dig @192.168.120.132 -t axfr  Zone_Name表示查看該區域文件的所有資源類型

wKioL1UvfGDBAP4QAASbG1GZSNU789.jpg

其常用的查詢選項有 +[no]trace表示是否跟蹤其查詢過程

 dig @192.168.120.132 -t A www.baidu.com +trace

wKioL1UvfJ6i6nj2AAqd9_wf8g0653.jpg

   示例 配置DNS服務器爲某正向區域(test.com)的主DNS服務器

    ① 配置其成爲緩存DNS服務器

    ② 在/etc/named.rfc1912.zones中定義區域zone

       vim /etc/named.rfc1912.zones
       …… …… …… …… …… ……
       zone "test.com" IN {
       type master;
       file "test.com.zone";
       allow-update { none; };
       };

     ③ 定義區域數據解析庫文件test.com.zone,並參照named.empty修改其訪問權限以及屬主、屬組

       vim test.com.zone
       $TTL 600
       $ORIGIN test.com.
       @ IN SOA ns.test.com. admin.ns.test.com. (
                             201504101 ;序列號
                             1H ;1小時後刷新
                             5M ;5分鐘後重試
                             1W ;1周後失效
                             1H );緩存TTL是1小時 
         IN NS ns ;由於定義了ORIGIN,此處相當於ns.test.com.。
         IN MX 10 mx
       ns IN A 1.1.1.1
       mx IN A 2.2.2.2
       www IN A 3.3.3.3
       www IN A 3.3.3.4
       pop3 IN A 4.4.4.4
       web IN CNAME www
       imap4 IN CNAME pop3
      chmod 640 test.com.zone
      chown :named test.com.zone

④ 檢查語法是否配置有誤

     named-checkconf
     named-checkzone "test.com" test.com.zone

⑤ 重載DNS服務

    service named reload

⑥ 使用dig工具驗證結果

dig -t A www.test.com @localhost

結果表明,當有同一主機的多條A記錄時,DNS服務器會以“輪詢”的方式向客戶端提供查詢服務。

wKioL1UvfdazR3ciAAITv3rwAho608.jpg

wKiom1UvfIKysdzrAAISUN4DfNQ601.jpg


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