BIND與dns

一.DNS基礎數據庫

1.常見的dns解析方式:緩存

    正向解析:由主機名解析出IP地址
安全

    反向解析:由IP地址解析出主機名
bash

2.名稱域:層級分佈式數據庫 (金字塔型)服務器

    第一層:    根域 " . "表示
分佈式

    第二層     頂級域(宏觀上分爲倆種)
ide

                1.用於正向解析的組織域和地理域
工具

                2.用於反向解析的反向域:in-addr.arpa
spa

    第三層     二級域日誌

            三級域

            四級域

            .....

    最後會解析到一個:徹底合格域名(FQDN) ,也是主機名的徹底名稱。

注意:1.由於正向解析和反向解析用的是不一樣的頂級域,所以使用的不是一個數據庫;

   2.主機名或域名的書寫要從低級域到高級域寫,如

    頂級域 com

    二級域 baidu

    三級域 www

    則其域名爲 www.baidu.com. 由於根域是惟一的因此根域的 " ."通常能夠省略

3.名字查詢的類型

遞歸查詢:要求有明確結果的查詢;必須返回一個確定的或否認的答案;

迭代查詢:按照必定的順序和步驟依次向不一樣服務器發出查詢請求,儘可能要求返回一個答案;

    查詢結果的分類:

        權威答案:本身負責的區域,本身服務器數據庫中有的

        非權威答案:本身沒有數據庫沒有,但緩存服務器由,或者從其餘服務器迭代得來的

    一次完整的名稱解析:

1.服務器本地數據庫中有結果,直接返回權威答案/etc/hosts文件;

   

2.服務器不維護該域,但已經有緩存的結果,直接返回非權威答案;(dns服務器能夠在網卡的配置文件添加,也能夠在 /etc/resolv.conf文件中填寫 格式爲nameserver *.*.*.*)

3.服務器不維護該域,緩存中也沒有結果,(遞歸後返回否認答案)因而開始迭代查詢:

1) 詢問根域的NS服務器;返回頂級域的NS服務器

2) 詢問頂級域的NS服務器 返回二級域的NS地址;

3) 直到找到對應主機所在域的NS服務器,得到解析結果;

4) 緩存這次查詢結果並用緩存中的數據響應客戶端;

4.名字服務器:每一個域下負責數據庫管理的服務器

    包括:主名稱服務器  從名稱服務器  緩存名稱服務器

各服務器區別:

    主名稱服務器:是所維護的區域數據庫文件的主體,對這些區域的文件數據具備,讀寫權限

    從名稱服務器:也稱爲輔助服務器,從主服務器那兒複製數據到本地,沒有寫權限,只有讀權限

    緩存名稱服務器:不負責區域的數據庫管理,緩存最近解析過的數據

   一般爲了數據庫安全考慮須要多個從服務器:同時也須要保證主從服務器數據的一致性

    如何保證主從數據庫的一致性?

            1.序列號:數據庫的版本號;每次數據庫更新會變動版本號

2.刷新時間間隔:從服務器到主服務器檢查序列號的變動狀況的時間間隔;(若檢測到數據庫序列號變動,會請求主服務器的數據複製到從服務器)

3.重試時間間隔:從服務器到主服務器的序列號檢查請求失敗之後,再次嘗試發送請求的時間間隔;一般來說,重試時間間隔要遠遠小於刷新時間間隔;

4.過時時間:名稱服務器始終沒法聯繫主名稱服務器,從服務器會代替主服務器工做,從名稱服務器最大的連續工做時長;

5.否認答案的緩存時長:當服務器遞歸查詢返回否認答案後,答案會存放在緩存中,須要用此項讓其銷燬

    要保證上述功能實現:須要保證主從服務器的時間保持一致

      

服務器的時間同步:

1.互聯網中的時間服務器; 在/etc/ntp.conf 文件中添加時間服務器

2.局域網中自建時間服務器;用ntpdate同步區域內時間

6.主從服務器數據傳輸的類型

全量傳送:

AXFR,將整個數據庫文件傳送至從服務器;

增量傳送:

IXFR,僅傳送自上次數據庫傳送之後發生變化的內容;

7.名稱服務器數據庫中用於咱們解析的內容,稱爲資源記錄 稱做「RR」

       RR的格式:

        

資源記錄的格式:

DN|FQDN [TTL]IN RR_TYPEVALUE

        其中FQDN 和TTL 能夠用全局定義的宏繼承,通常能夠省略不寫

        如:FQDN :繼承$ORIGIN 

           TTL:繼承$TTL

        資源記錄的類型及格式:

    ① SOA:Start Of Authority,起始受權記錄;此記錄在數據庫中只能有一條,且必須放在第一條

        內容:

                域名;

數據緩存的時間;

NS服務器的主機名;

管理員的郵箱地址;

序列號,刷新時間間隔,重試時間間隔,過時時間及否認答案的緩存時間;

       格式示例

         咱們先定義宏:

            $ORIGIN baidu.com.  (定義時根域的點必定寫) 

            $TTL 86400

        baidu.com     86400    IN    SOA    ns1.baidu.com. root.baidu.com. 111 1H 5M 1W 1D

        (FQDN)    (ttl)          (RR)      (名稱服務器)  (管理員郵箱地址) (主從時間配置)

     其中  @              IN     SOA    ns1.baidu.com. root.baidu.com. 111 1H 5M 1W 1D   主機名能夠用@繼承,TTL能夠省略

       ②NS記錄:標識當前域中被受權的名稱服務器

        格式

        baidu.com    IN    NS    ns1,baidu.com.

       ③MX記錄:標識域中的郵件服務器的主機名稱,標識從域名到徹底合格域名的映射關係;

            MX資源記錄包含了一個優先級,0-65535,數字越小優先級越高;

        格式

        baidu.com     IN    MX    10    mail.baidu.com.

       ④A記錄:標識從徹底合格域名到IPv4地址的映射關係;

        ns1.baidu.com.    IN    A    172.16.0.145

        www.baidu.com.    IN    A    172.16.100.100

        ⑤CNAME:標識從徹底合格域名到徹底合格域名的映射關係(別名記錄)

        格式

        ftp.baidu.com.     IN    CNAME    www.baidu.com.

        ⑥AAAA:標識從徹底合格域名到IPv6地址的映射關係;

二:dns的配置,及Bind軟件的使用

    1.bind軟件的服務主程序是:named

        named程序監聽的端口號:

53/TCP:完成區域傳送;

53/UDP:完成主機名的解析查詢;

953/TCP:rndc程序的監聽端口;

    2.bind軟件的主要組成

        主配置文件:/etc/named.conf

        輔助配置文件:在主配置文件中使用include命令包含就行

        主程序:/usr/sbin/named

        遠程管理程序:/usr/sbin/rndc

        配置文件檢索工具:/usr/sbin/named-checkconf

        區域文件檢測工具:/usr/sbin/named-checkzone

        日誌文件:/var/log/named.log

        區域文件的存放目錄:/var/named

        存放輔助區域文件的目錄/var/named/slaves

相關文章
相關標籤/搜索