1. 程式人生 > >002.DNS-BIND簡介

002.DNS-BIND簡介

一 Linux-BIND伺服器簡介

Bind是Berkeley Internet Name Domain Service的簡寫,它是一款實現DNS伺服器的開放原始碼軟體。已經成為世界上使用最為廣泛的DNS伺服器軟體,目前Internet上半數以上的DNS伺服器有都是用Bind來架設的,已經成為DNS中事實上的標準。

二 DNS伺服器型別

  • 快取伺服器:不負責解析,僅為加速,不需要註冊
  • 主DNS伺服器:負責解析本地客戶端請求
  • 輔助DNS伺服器:輔助伺服器的區域資料都是從主伺服器複製而來,其資料都是隻讀的

三 BIND簡介

3.1 bind詳解

  • 包名:bind
  • 程序:named
  • 協議:dns
  • 使用埠:53(tcp,udp)

相關包:

  • bind-chroot:將named程序的活動範圍限定在chroot目錄,保證安全性。
  • bind-devel:與開發相關的標頭檔案和庫檔案(編譯安裝bind時所需)
  • bind-libs:bind伺服器端和客戶端都使用到的公共庫檔案
  • bind-utils :  bind客戶端工具

程式檔案:/usr/sbin/named

主程式目錄:/var/named

主配置檔案:/etc/named.conf

bind許可權相關:安裝完named會自動建立使用者named系統使用者

3.2 bind配置檔案解釋

      1 /etc/logrotate.d/named/etc/named.conf #主配置檔案
      2
    •/etc/named.rfc1912.zones #區域配置檔案(用include指令包含在主配置檔案) 3 •/etc/named.root.key #根區域的key檔案以實現事務簽名; 4 •/etc/rndc.conf #rndc(遠端名稱伺服器控制器)配置檔案 5 •/etc/rndc.key #rndc加密金鑰 6 •/etc/sysconfig/named 7 •/var/named/named.ca #13個根伺服器存放檔案/var/named/named.empty 8 •/var/named/named.localhost 9 •/var/named/named.loopback

3.3 主配置檔案

named.conf,每個語句都要使用分號結尾;其功能如下:

  • 定義區域
  • 定義各區域的全域性配置
  • 定義檢視
  • 定義日誌

第一段:

  1 options {
  2 
  3 listen-on port 53 { 0.0.0.0/0; };
  4 
  5 listen-on-v6 port 53 { ::1; };
  6 
  7 directory "/var/named";
  8 
  9 dump-file "/var/named/data/cache_dump.db";
 10 
 11 statistics-file "/var/named/data/named_stats.txt";
 12 
 13 memstatistics-file "/var/named/data/named_mem_stats.txt";
 14 
 15 allow-query { any; };
 16 
 17 recursion yes;
 18 
 19 dnssec-enable yes;
 20 
 21 dnssec-validation yes;
 22 
 23 dnssec-lookaside auto;
 24 
 25 bindkeys-file "/etc/named.iscdlv.key";
 26 
 27 managed-keys-directory "/var/named/dynamic";
 28 
 29 pid=file "/run/named/named.pid";
 30 
 31 session-keyfile "/run/named/session.key";
 32 
 33 };

第一段主要配置項解釋:

  • listen-on:指定IPv4監聽的埠和IP,預設為53,IP位127.0.0.1;
  • directory:指定named讀取DNS資料檔案的目錄,預設為/var/named/;
  • dump-file:設定域名快取資料庫檔案的位置,預設為/var/named/data;
  • statistics-file:設定狀態統計檔案的路徑,預設為/var/named/data;
  • allow-query:設定允許DNS查詢的客戶端地址,預設值為localhost;
  • recursion:設定遞迴查詢,yes:雲訊遞迴查詢,no:不允許遞迴查詢,預設配置允許遞迴查詢。

第二段:

  1 logging { #定義日誌
  2 
  3 channel default_debug {
  4 
  5 file "data/named.run";
  6 
  7 severity dynamic;
  8 
  9 	};
 10 
 11 };

第二段主要配置項解釋:

  • channel:定義日誌輸出方式,有syslog、文字檔案、標準錯誤輸出或/dev/null等方式;
  • file:表示輸出到純文字檔案;
  • severity:表示訊息的嚴重性等級,有critical、error、warning、info、debug等;

第三段:

  1 zone "." IN {
  2 
  3 type hint;
  4 
  5 file "named.ca";
  6 
  7 allow-update { none; };
  8 
  9 };

第三段主要配置項解釋:

  • zone:定義一個正向區域,對應的域名;
  • type:型別,通常有master、slave和hit,含義如下——
  • master:表示定義的是主域名伺服器;
  • slave:表示定義的是輔助域名伺服器;
  • hint:表示定義的是網際網路中根域名伺服器。
  • file:指定存放dns記錄的資料檔名稱,預設路徑為/var/named;
  • allow-update:是否允許客戶主機或伺服器自行更新dns記錄。

3.4 區域檔案

區域檔案包括正向區域檔案和反向區域檔案。

  • 正向區域
  1 [[email protected] named]# vi /var/named/aliyun.com.zone
  2 $TTL 300;
  3 @   IN SOA  linuxmaster.aliyun.com. admin.aliyun.com. (
  4                     2017051720		;serial
  5                     1H			;refresh
  6                     5M			;retry
  7                     7D			;expiry
  8                     3D )		;minimum
  9     IN  NS  linuxmaster
 10     IN  MX 20 MX
 11 linuxmaster IN  A   172.24.8.10
 12 www         IN  A   172.24.8.30
 13 mirrors     IN  A   172.24.8.30
 14 ftp         IN  CNAME   www

正向區域檔案解釋:

  • TTL:定義區域中資料檔案裡面的各項記錄的預設TTL值;
  • SOA:SOA記錄,@代表相應的域名,每個區域資料檔案只能有一個SOA,其中引數有——
  • serial:表示配置檔案的修改版本,格式為年月日加上修改的次數;
  • refresh:設定輔助dns和主dns進行同步的間隔時間;
  • retry:如果輔助dns進行更新失敗後,間隔多久進行重試;
  • expiry:設定輔助dns與主dns同步失敗後,多長時間後清除對應的記錄;
  • minimum:預設最小的TTL值,如果在前面沒有設定TTL,則以此值為準。
  • NS:定義此主機屬於域名伺服器;
  • MX:定義一個郵箱交換器;
  • A指標:定義一個A記錄,即域名到IP的記錄;
  • CNAME:定義域名的別名。