DNS&BIND入門

    本文主要論述DNS基本原理,BIND正反向解析、主從同步、子域授權及view


    1、DNS基本原理

DNS:Domain Name Service,域名服務器,基於udp和tcp完成名稱解析服務

    C/S架構的協議--客戶端、服務端;監聽於53/udp,53/tcp兩個端口;屬於應用層協議

    

BIND:Bekerley Internat Name Domain-->ISC

    BIND是DNS在互聯網上最著名的實現,提供DNS和DHCP服務


DNS查詢類型

    遞歸查詢:一般客戶機和服務器之間屬遞歸查詢,即當客戶機向DNS服務器發出請求後,若DNS服務器本身不能解析,則會向另外的DNS服務器發出查詢請求,得到結果後轉交給客戶機;

    迭代查詢:一般DNS服務器之間屬迭代查詢,如:若DNS2不能響應DNS1的請求,則它會將DNS3的IP給DNS2,以便其再向DNS3發出請求;

    wKiom1VE3I3wXHrlAAKx51vwajY304.jpg


名稱服務器:域內負責解析本域內的名稱的主機,通常用ns#(name server)表示

    根服務器:從AM編號,其中:美國10(1個主根和9個輔根)、歐洲2(位於英國和瑞典)、亞洲1(位於日本)1個爲主根服務器,放置在美國弗吉尼亞州的杜勒斯,由美國VeriSign公司負責運營維護,其餘12個均爲輔根服務器。

    因爲迭代查詢極耗資源,所以DNS服務器通常只爲自己組織內的客戶端做解析,通過在權限上加以限制來實現

DNS解析類型

    FQDN-->IP(正向解析)

        FQDN:Full Qualified Domain Name--完全限定域名

    IP-->FQDN(反向解析)

        反向解析難度極大,目前應用:郵件服務器根據反向解析,拒絕接收來自沒有域名的站點發來的信息以降低垃圾郵件的數量

    注意:正、反向解析是兩個不同的名稱空間,是兩棵不同的解析樹;各需要一個解析庫來分別負責本地域名的正向和反向解析

DNS服務器類型

    DNS服務器

    從(輔助)DNS服務器

    緩存DNS服務器

    轉發器

    DNS服務器:維護所負責解析的域內的解析庫(解析庫由管理員維護)

                 序列號:解析庫的版本號;同步解析庫的前提:主服務器解析庫內容發生變化,其序列號遞增加1

                  刷新時長:從服務器向主服務器請求同步解析庫的時間間隔

                  重試時長:從服務器向主服務器請求同步解析庫失敗時,再次嘗試的時間間隔

                  過期時長:從服務器始終聯繫不到主服務器時,多久之後放棄從服務器角色,停止服務

                  否定應答的TTL:解析得到的否定答案的緩存時長

    DNS服務器:解析庫從主DNS服務器或其他DNS服務器“複製”(區域傳送)而來

                區域傳送:全量傳送:傳送整個解析庫

                                增量傳送:傳送解析庫變化的那部分內容      

    緩存DNS服務器:不負責解析任何域,也不用註冊域名,用於幫助域內的客戶端向互聯網的DNS服務器發送請求,把結果返回給客戶端的同時在服務器上做一份緩存


    2、BIND正反向解析

(1)基本概念

一次完整解析的流程

    Client-->hosts文件-->DNS Service

        Local Cache-->DNS Server(recursion)-->Server Cache-->iteration(迭代)

    解析答案有兩種:

        肯定答案                 權威答案

         否定答案                 非權威答案

            請求的條目不存在等原因導致無法返回結果

區域解析庫,由衆多RR組成 

     資源記錄:Resource Record--RR

      記錄類型:AAAAAPTRSOANSCNAMEMX

資源記錄的類型標記了主機在域內處於什麼樣的角色上

       SOA:Start OfAuthority,起始授權記錄;一個解析庫有且僅有一個SOA記錄,且必須爲解析庫的第一條記錄;定義了當前解析庫爲哪個區域所用,由誰負責;

       A:internetAddress,FQDN-->IPv4

       AAAA:internetAddress,FQDN-->IPv6

       PTR:PoinTeR,IP-->FQDN

       NS:NameServer,專用於標明當前區域的DNS服務器

       CNAME:Canonical Name,別名記錄

       MX:MaileXchanger,郵件交換器,標明該域實現郵件交換的主機是誰

     資源記錄定義的格式

      語法格式:name  [TTL]  IN  rr_type  value

TTL:解析得到結果在客戶端的緩存時長,在服務器端由管理員定義

       注意

        1TTL可從全局繼承

        2@可用於引用當前區域的名字

        3)相鄰的兩個資源記錄的name相同時,後續的可以省略

        4)同一個名字可以通過多條記錄定義多個不同的值,此時DNS服務器會以輪詢方式響應

        5)同一個值也可能定義多個不同的名字,僅表示通過多個不同的名字可以找到同一個主機

       SOA

         name:當前區域的名字,例如“magedu.com.”;

         value:有多部分組成

           1、當前區域的主DNS服務器的FQDN,也可以使用當前區域的名字

           2、當前區域管理員的郵箱地址,但地址中不能使用@符號,一般用“.”替換

           3主從服務協調屬性的定義以及否定答案的統一的TTL

        示例                 [TTL]

         magedu.com.  86400   IN   SOA   ns.magedu.com.   nsadmin.magedu.com.(                                                       2015042301    序列號(一般不要超過10位數字)

  2H            刷新時長

  10M           重試時長

  1W            過期時長

  1D            否定答案的TTL

             

       NS:

         name:當前區域的名字

         value:當前區域的某DNS服務器的名字,例如ns.magedu.com.

        注意:

         (1)一個區域可以有多個NS記錄

          2)對NS記錄而言,任何一個NS記錄後面的服務器名字,都應該在後續有一個A記錄

         示例

magedu.com.  IN   NS   ns1.magedu.com.

magedu.com.  IN   NS   ns2.magedu.com.

       

       MX

         name:當前區域的名字

         value:當前區域的某郵件服務器(smtp服務器)的主機名

        注意

            1)一個區域內,MX記錄可以有多個,但是每個記錄的value之前應該有一個數字(0-99),表示此服務器的優先級,數字越小,優先級越高

            2)對MX記錄而言,任何一個MX記錄後面的服務器名字,都應該在後續有一個A記錄

         示例

         magedu.com.   IN   MX  10  mx1.magedu.com.

         magedu.com.   IN   MX  10  mx2.magedu.com.

 

       A

         name:某主機的FQDN,例如www.magedu.com.

         value:主機名對應的主機地址

         示例

         www.magedu.com.  IN   A   1.1.1.1

         www.magedu.com.  IN   A   1.1.1.2

同一個名字可以通過多條記錄個不同的值,DNS解析時會輪詢響應,即:第一次解析時解析爲1.1.1.1,第二次解析爲1.1.1.2,第三次1.1.1.1,第四次1.1.1.2。。。

         mx1.magedu.com.   IN   A   1.1.1.3

         mx2.magedu.com.   IN   A   1.1.1.3

同一個值有多個不同的名字

         注意

          避免用戶寫錯名稱時給否定答案,可以通過泛域名解析進行解析至某特定地址

      例如假設百度網址www.baidu.com對應的是1.1.1.4,若A記錄寫成“www.baidu.com IN A 1.1.1.4”,則用戶在輸入“ww.baidu.com”或“baidu.com”時會無法解析到1.1.1.4,得到否定答案,但如果在A記錄上加上兩條“*.baidu.com IN A 1.1.1.4”“baidu.com IN A 1.1.1.4,就可以正確解析到1.1.1.4。這就是泛域名解析的應用

 

       AAAA

         name: FQDN

         value: IPv6

       

       PTR

         nameIP,有特定格式,把IP反過來寫,例如1.2.3.4要寫作4.3.2.1;且有特定後綴:in-addr.arpa.,所以完整寫法爲4.3.2.1.in-addr.arpa.

         valueFQDN

         示例

         4.3.2.1.in-addr.arpa.  IN   PTR   www.magedu.com.

        簡寫成

         4   IN   PTR   www.magedu.com.

         注意:網絡地址及後綴可省略,主機地址仍然要反寫

 

       CNAME

         name:別名的FQDN

         value:正式名字的FQDN

        示例:

         web.magedu.com.   IN   CNAME  www.magedu.com.

(2)正向解析

緩存名稱服務器的配置

監聽外部地址即可(通過修改配置文件來實現)wKiom1VFhGvh_jz6AAPiMkjfYp4795.jpg

dnssec:Domain Name System Security Extensions (DNSSEC)DNS安全擴展,是由IETF提供的一系列DNS安全認證的機制。它提供了一種來源鑑定和數據完整性的擴展,但不去保障可用性、加密性和證實域名不存在。

      測試建議關閉dnssec,通過註釋下圖各選項來實現

wKioL1VFhgnSg2pfAAB8MDxqCNk913.jpg

除此之外,下圖選項也必須註釋掉或改爲any,否則服務器只允許本機查詢

               wKiom1VFhL_SfKCXAAAWCE2B9r0411.jpg

wKioL1VFhi-xoHPbAAJgupBke8I686.jpg

wKiom1VFhMbiXa5AAALvSbxHJFM794.jpg

wKioL1VFhj6SIGUlAAPsMN6X9ss604.jpg

wKiom1VFhNOT1yM1AACsAc6xCGc435.jpg

正向解析測試wKioL1VFhsPCr0k1AAIY0xrp6CI678.jpg


(3)反向解析

wKiom1VFhbzyKyxeAAEtjgoO1Uk078.jpg

wKioL1VFhzDR3ihhAAHttWAQ4o4870.jpg

wKiom1VFhcmQQC20AAHw9mTJp5s209.jpg

              反向解析測試

wKioL1VFh23w5hm8AAJHJCc93gk338.jpg


    3、主從同步

wKiom1VFhijg-yVwAAJOKksuqJY512.jpg

wKioL1VFh5nwKS04AAQjd3OHyhQ327.jpg

wKiom1VFhi3SIF4HAAGhWLlIOfQ416.jpg

wKioL1VFh5_BThx3AAOJCaJtQTI419.jpg

wKiom1VFhjmxJ4zoAAGrWwAURH8780.jpg

6、主從服務器時間應該同步,可通過ntp進行

 

7bind程序的版本應該保持一致,否則,應該從高,主低


  4、子域授權

子域授權

分佈式數據庫的實現依賴於子域授權

正向解析區域的子域授權方法:

glue record:粘合記錄,將上級服務器和下級服務器建立起關聯

在父域的解析庫文件中定義一個子域的DNS

ops.magedu.com.         IN         NS         ns1.ops.magedu.com.

ops.magedu.com.         IN         NS         ns2.ops.magedu.com.

ns1.ops.magedu.com.         IN         A         1.1.1.1

ns2.ops.magedu.com.         IN         A         1.1.1.2

 

fin.magedu.com.         IN         NS         ns1.fin.magedu.com.

fin.magedu.com.         IN         NS         ns2.fin.magedu.com.

ns1.fin.magedu.com.         IN         A         3.1.1.1

ns2.fin.magedu.com.         IN         A         3.1.1.2

注意:子域和父域的服務器無須在一個網絡內,只要通過互聯網彼此間能通信即可

wKiom1VFhn6xkR93AAKoU5smaKk501.jpg

wKioL1VFh--AS7ypAAHppQ96-as052.jpg

    5、BIND view(視圖)

一個bind服務器可以定義多個view,每個view中可以定義一個或多個zone

每個view匹配一組客戶端;

多個view內可能需要對同一個區域進行解析,但使用不同的區域解析庫文件;

 

定義格式

view VIEW_NAME {

match-clients {  };

}

 

注意

(1) 一旦啓用了view,所有的zone都只能定義在view中;

(2) 僅需在允許遞歸請求的客戶所在的view中定義根區域;

(3) 客戶端請求到達時,是自上而下檢查每個view所服務的客戶端列表;

wKioL1VFiBuA0-W4AAHFWA0upus587.jpg

wKioL1VFiBzzD69-AAExEsnRZ6U253.jpg

wKiom1VFhrTBDFwmAARNXncVDjs482.jpg

wKiom1VFhraC2lWnAAG6sIAbrHI597.jpg

wKioL1VFiCbhAdpSAAJAvWkA0qs962.jpg

wKiom1VFhsLzqxkpAAJeNlu5E2g958.jpg

wKioL1VFiDfzpUZKAAJnZKkRd2A519.jpg

wKiom1VFhtOjqZnqAAO3JTTP_CE440.jpg




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