使用bind的軟件 實現DNS的域名解析

一: DNS基礎知識
  1.計算機名稱
    a. netbios名
    b. FQDN名
  2.名稱解析
    a.什麼域名解析
      將計算機名稱翻譯成IP地址的過程稱之爲域名解析。
    b.netbios命稱解析
      —廣播(通過向網絡中發送廣播包的方式獲取對方的ip地址)    
      —INhost文件解析(通過向inhost文件中添加對方的ip地址解析)
      —wins解析(通過wins服務器解釋對方的ip地址)
    c.FQDN解析
       —host文件解析(和inhost一樣)
       —NIS 解析(通過NIS服務器解析)
       —dns解析 
  3. DNS的體系結構
    a.名稱空間
    b.DNS服務器
      —主服務器
      —從服務器
      —緩存服務器
     c.DNS客戶機
   4.DNS的名稱解析過程
     a.正向解析(名稱——ip地址)
     b.反向解析(ip地址——名稱)
 二:配置DNS服務器的過程
    1.安裝bind軟件
     a.rpm方式 
    #rpm -vih bind (主程序)
    #rpm -vih bind-chroot(使用chroot模式)
    #rpm -vih caching-nameserver(緩存服務器)   
    b.編譯方式(chroot)
   #groupadd named (新建named用戶組)
   #useradd -g named named(新建named用戶名並指定用戶組爲named)
  創建chroo環境 
   #mkdir /usr/local/chroot
   #mkdir /usr/local/chroot/etc
   #mkdir /usr/local/chroot/dev
   #mkdir /usr/local/chroot/var
   #mkdir /usr/local/chroot/var/run
   #mkdir /usr/local/chroot/var/named
   #mkdir /usr/local/chroot/dev/null C 13
   #mkdir /usr/local/chroot/dev/zero C 15
   #mkdir /usr/local/chroot/dev/random C 18
   #chmodnamed:named /usr/local/chroot/var/named/run
  #cp /etc/localtime/ /usr/local/chroot/etc
安裝bind軟件
# tar -zxvf bind....tar.gz
# cd bind....
# ./configure --prefix=/usr/local/bind --enable-threeads --disable-ipv6
# make
# make intall
 創建相關配置文件
#touch /usr/local/chroot/etc/named.conf
#/usr/local/bind/sbin/rndc-confgen >/usr/local/chroot/etc/named
#從ftp:/ftp.internic.org下載根區域數據庫文件到/usr/local/chroot/var/named
 
  2.修改named.conf文件配置DNS屬性
     #vi /etc/named.conf (rpm 方式安裝的bind默認的路徑在/etc下)
   a. options {
    子語句; 
 };
   其中子語句有:
    directory "路徑";
   設置區域數據庫文件的存放路徑
    recursion yes/no;
   設置服務器是否支持遞歸查詢
    forwarders {ip 地址;.....};
   設置轉發的地址
    allow-transfer {ip 地址;.....};
  設置服務器允許和那些dns服務器進行區域複製
    allow-recursion {ip 地址;.....};
  設置服務器允許和那些客戶機進行遞歸查詢
    allow-query {ip 地址;.....};
  設置服務器允許哪些客戶機進行查詢
    blank-hole {ip 地址;.....};
  設置服務器拒絕哪些客戶機查詢
    listen-on [port 端口號] {ip 地址;.....};
     設置服務器監聽的端口與地址
    
    b. zone "區域名" IN {
                                        子語句
};
    子語句:
      type master/slave/hint;
     設置區域類型
      file "文件名";
     設置區域數據庫文件名
      masters {ip 地址;};
      設置當type爲slave時候主服務器的位置
      allow-update { none;ip 地址; key "名稱"; };
  
    c.include "文件路徑";
     包含指定的文件路徑
    d. view "名稱" {
           math-client {ip 地址列表;};                  
           zone "區域名"{.....};
             }//定義解析視圖
    e. logging {
            channel "通道名"{//定義記錄通道
             選項;
             category "類別名" {//設置指定類別的日誌採用哪個通道記錄
            "通道名"}
}//設置dns內部日誌的記錄方法
 
   channel 的子選項:
    file 文件名 [versions 數字] [size 數字];//設置將日誌記錄的指定的文件中
     syslog 服務器的類型
    //設置dns利用syslog記錄
    severity 日誌等級
  //設置記錄指定等級的日誌
   print-category yes/no;
  //設置是否記錄事件發生的時間
    print-serverity yes/no;
   //設置是否記錄事件發生的等級
 dns 內部事件的類型:
       queries  查詢事件
       update   動態更新
       resolver  名字解析
       config    配置文件的分析和處理
       client    處理客戶端的請求
       default   所有爲明確的事件
 
     g. acl 名稱 { ip 地址/網絡號;};
    //定義地址列表
 
     h. controls {
             [ inet ip 地址 //設置rcdc監聽的地址
               port 數字 //設置rndc監聽的端口
               allow {地址列表;}];//設置允許遠程連接rndc的客戶機列表
            };
   //設置rndc的工作參數
  i. key "名稱" {
      algorithm   hmac—md5;
      secret   "密文"
};//定義管理密鑰
 
 
   3.創建區域數據庫文件
   $TTL 數字;
   $ORIGIN 區域名
   $INCLUDE 文件路徑
 [區域名/@/...] [TTL] IN SOA 主機名 mail地址(
        序列號 //數據庫文件的序號
        更新間隔 //從服務器需要多長時間更新一次
        重試間隔     //如果從服務器更新失敗等多長時間重試一次
        最大有效時間  //從服務器始終無法更新則在最大有效時間後從服務器的數據庫文件失效
        默認TTL值  //定義默認TTL值
 -NS 記錄
//設置區域的名稱服務器的位置
 -A 記錄
 // 設置主機名對應的ip地址
 -CNAME 記錄
//定義主機的別名
 -PTR 記錄
//定義反向指針設置ip地址對應的主機名
 -MX 記錄
 //設置區域的郵件服務器位置
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章