DNS服務器原理以及搭建主-輔DNS服務器操作指南

 DNS服務器原理以及搭建主-輔DNS服務器操作指南

 

    DNS(Domain Name Server,域名服務器)是進行域名(domain name)和與之相對應的IP地址 (IP address)轉換的服務器。DNS中保存了一張域名(domain name)和與之相對應的IP地址 (IP address)的表,以解析消息的域名。 域名是Internet上某一臺計算機或計算機組的名稱,用於在數據傳輸時標識計算機的電子方位(有時也指地理位置)。域名是由一串用點分隔的名字組成的,通常包含組織名,而且始終包括兩到三個字母的後綴,以指明組織的類型或該域所在的國家或地區。


  主-輔DNS服務器:

    主DNS服務器:維護所負責解析的域數據庫的那臺服務器,讀寫操作均可進行

    輔助DNS服務器:從主DNS服務器那裏或其他的從DNS服務器那裏“複製”一份解析庫,但只能進行讀操作

      “複製”操作的實施方式:

         序列號:serial,也即是數據庫的版本號,主服務器數據庫內容發生變化時,其版本號遞增

         刷新時間間隔:refresh,從服務器每隔多久到主服務器檢查序列號更新狀況

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

         過期時長:expire,從服務器始終聯繫不到主服務器時,多久之後放棄從主服務器同步數據,停止提供服務

         否定答案的緩存時長:negative answer ttl


    主服務器“通知”從服務器隨時更新數據


    區域傳送:

        全量傳送:axfr,傳送整個數據庫

        增量傳送:ixfr,僅傳送變量的數據



    區域(zone)和域(domain):

       listen.com域:

         FQDN --> IP

           正向解析庫;區域

         IP --> FQDN

           反向解析庫;區域


    區域數據庫文件:

       資源記錄:resource record,簡稱rr

         記錄類型:A,AAAA,PTR,SOA,NS,CNAME,MX


         SOA:Start Of Authority,起始授權記錄:一個區域解析庫有且只能有一個SOA記錄,而且必須放在第一條

         NS:Name Server,域名服務記錄:一個區域解析庫可以有多個NS記錄,其中一個爲主的

         A:Address,地址記錄:FQDN --> IPv4

         AAAA:地址記錄:FQDN -->IPv6

         CNAME:Canonical Name,別名記錄

         PTR:Pointer,IP -- FQDN

         MX:Mail eXchanger,郵件交換器

           優先級:0-99,數字越小優先級越高


         資源記錄的定義格式:

            語法:  name   [TTL]   IN    RR_TYPE     value


         注意:

           (1)TTL可以全局繼承

           (2)@表示當前區域的名稱

           (3)相鄰的兩條記錄其name名稱相同時,後面的看省略

           (4)對於正向區域來說,各MX、NS等類型的記錄的value爲FQDN,此FQDN應該有一個A記錄


      程序包:(程序包使用yum安裝即可)

         bind-libs:被bind和bind-utils包中的程序共同用到的庫文件

         bind-utils:bind客戶端程序集,例如:dig,host,nslookup等

         bind:提供dns server程序、以及幾個常用的測試程序

         bind-chroot:選裝,讓named運行與jail模式下



      bind:

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

            或包含進來其他文件

                /etc/named.lscdlv.key

                /etc/named.rfc1912.zones

                /etc/named.root.key

         解析庫文件:

            /var/named/目錄下

                一般名字爲:ZONE_NAME.zone


         注意:

             (1)一臺DNS服務器可同時爲多個區域提供解析

             (2)必須要有跟解析庫文件,named.ca

             (3)還應該有兩個區域解析庫文件,localhost和127.0.0.1的正方向解析庫

                  正向:named.localhost

                  方向:named.loopback


        rndc:remote name domain contoller(遠程名稱域觸發器)

            953/tcp,但默認監聽與127.0.0.1地址,因此僅允許本地使用


        bind程序安裝完成之後,默認即可做緩存名稱服務器使用,如果沒有專門負責解析的區域,直接即可啓動服務

            CentOS 6:service named start

            CentOS 7:systemctl start named.service


        主配置文件格式:

            全局配置段:

               options{......}

            日誌配置段:

               logging{......}

            區域配置段:

               zone{......}

                  那些由本機負責解析的區域或轉發的區域

            注意:每個配置語句必須以分號結尾



            緩存名稱服務器的配置:

               監聽能與外部主機通信的地址;

                   listen-on port 53 {127.0.0.1;};


               學習時,建議關閉dnssec(配置文件默認路徑爲/etc/named.conf)

                   dnssec-enable no;

                   dnssec-validation no;

                   dnssec-lookaside no;


               關閉僅允許本地查詢:

                   //allow-query     { localhost; };



            檢查配置文件語法錯誤:

                #named-checkconf [/etc/named.conf]


            測試工具:

                dig,host,nslookup等


                dig命令:

                   dig [-t RR_type] name [@SERVER] [query options]


                      用於測試DNS系統,因此不會查詢host文件


                      查詢選項:

                         +[no]trace:跟蹤解析過程

                         +[no]recurse:進行遞歸解析


                示例:

                   ~]# dig -t A www.baidu.com

                   ~]# dig +trace -t A www.baidu.com

                   ~]# dig -t A www.baidu.com @192.168.73.133


                   注意:反向解析測試

                      dig -x IP

                   模擬完全區域傳送:

                      dig -t axfr DOMAIN [@SERVER]



                host命令:

                   host [-t RR_type] name SERVER_IP

                  示例:

                     ~]# host -t A www.baidu.com 192.168.73.133



                nslookup命令:

                   nslookup [-options] [name] [server]

                   交互式模式:

                      nslookup>

                         server ip:以指定的IP爲DNS服務器進行查詢

                         set q=RR_TYPE:要查詢的資料記錄類型

                         name:要查詢的名稱


                  示例:

                     [root@localhost named]# nslookup 

                     > server 192.168.73.133

                     Default server: 192.168.73.133

                     Address: 192.168.73.133#53

                     > set q=A

                     > www.baidu.com

                     Server: 192.168.73.133

                     Address: 192.168.73.133#53


                     Non-authoritative answer:

                     www.baidu.com  anonical name = www.a.shifen.com.

                     Name: www.a.shifen.com

                     Address: 163.177.151.109

                     Name: www.a.shifen.com

                     Address: 163.177.151.110



                rndc命令:named服務控制命令

                    rndc status

                    rndc flush


主DNS服務器配置步驟:


            配置解析一個正向區域:

               以listen.com域爲例:

               (1)定義區域

                  在主配置文件中或主配置文件輔助配置文件中實現

                     zone"ZONE_NAME" IN {

                        type {master|slave|hlnt|forward};

                        file "ZONE_NAME.zone";

                     };


                     注意:區域名字即爲域名


               (2)建立區域數據文件(主要記錄爲A或AAAA)

                  在/var/named/目錄下建立區域數據文件


                     文件爲/var/named/listen.com.zone

                     [root@localhost named]# cat /var/named/listen.com.zone 

                     $TTL 3600

                     $ORIGIN listen.com.

                     @           IN       SOA     ns1.listen.com.    admin.listen.com. (

                                   2018120401  

                                   1H

                                   10M

                                   3D

                                   1D)

                                 IN        NS      ns1.listen.com.

                                 IN        MX  10  mx1

                                 IN        MX  20  mx2    

                     mx2         IN        A       192.168.73.142

                     mx1         IN        A       192.168.73.141

                     ns1         IN        A       192.168.73.133

                     ns2         IN        A       192.168.73.140

                     www         IN        A       192.168.73.133

                     web         IN        CNAME   www


                    權限及數組修改:

                      #chgrp named /var/named/listen.com.zone

                      #chmod o= /var/named/listen.com.zone


                    檢查語法錯誤:

                      #named-checkzone ZONE_NAME ZONE_FILE

                      #named-chekconf


               (3)讓服務器重載配置文化和區域數據文件

                   #rndc reload 或 #systemctl reload named.service


            配置解析一個反向區域:

               (1)定義區域

                  在主配置文件中或主配置文件輔助配置文件中實現

                     zone"ZONE_NAME" IN {

                        type {master|slave|hlnt|forward};

                        file "ZONE_NAME.zone";

                     };

                     

                     注意:方向解析區域的名字

                         反寫的網段地址.in-addr.arpa

                            73.168.192.in-addr.arpa


               (2)定義區域解析庫文件(主要記錄爲PTR)

                  示例:

                    [root@localhost named]# cat 73.168.192.in-addr.arpa.zone 

                    $TTL 3600

                    $ORIGIN 73.168.192.in-addr.arpa.


                    @      IN     SOA      ns1.listen.com.    admin.listen.com.(

                               2018120401

                               1H

                               10M

                               3D

                               12H)

                           IN     NS      ns1.listen.com.

                   142     IN     PTR     mx2.listen.com.

                   141     IN     PTR     mx1.listen.com.

                   133     IN     PTR     ns1.listen.com.

                   140     IN     PTR     ns2.listen.com.

                   133     IN     PTR     www.listen.com.


                    權限及數組修改:

                      #chgrp named /var/named/listen.com.zone

                      #chmod o= /var/named/listen.com.zone


                    檢查語法錯誤:

                      #named-checkzone ZONE_NAME ZONE_FILE

                      #named-chekconf


               (3)讓服務器重載配置文化和區域數據文件

                   #rndc reload 或 #systemctl reload named.service


輔助DNS服務器配置:


       配置一個從區域:

          On Slave

            (1)定義區域

              定義一個從區域:

                 zone "ZONE_NAME" IN {

                     type slave;

                     file "slaves/ZONE_NAME.zone";

                     masters { MASTER_IP };

                 };


                 配置區域語法檢查:

                 #named-checkconfig

            (2)重載配置

              #rndc reload

              #systemctl reload named.service

                    

          On Master

            (1)確保區域數據文件中爲每個從服務配置NS記錄,並且在正向區域需要爲每個從服務器的NS記錄的主機名配置一個A記錄,且此A後面的地址爲真正的從服務器的IP地址


          注意:時間要同步

              ntpdate命令


  



以下爲主DNS服務器相關配置文件配置內容:


[root@www ~]# tail -11 /etc/named.rfc1912.zones 

zone "listen.com" IN {

    type master;

    file "listen.com.zone";

allow-update { none; };

};

zone "73.168.192.in-addr.arpa" IN {

    type master;

    file "73.168.192.in-addr.arpa.zone";

allow-update { none; };

};



[root@www ~]# cat /var/named/listen.com.zone 

$TTL 3600

$ORIGIN listen.com.

@           IN       SOA     ns1.listen.com.    admin.listen.com. (

                2018120401  

                1H

                10M

                3D

                1D)

            IN        NS      ns1.listen.com.

            IN        MX  10  mx1

            IN        MX  20  mx2    

mx2         IN        A       192.168.73.142

mx1         IN        A       192.168.73.141

ns1         IN        A       192.168.73.133

ns2         IN        A       192.168.73.140

www         IN        A       192.168.73.133

web         IN        CNAME   www


ops         IN        NS      ns1.ops

ns1.ops     IN        A       192.168.73.136



[root@www ~]# cat /var/named/73.168.192.in-addr.arpa.zone 

$TTL 3600

$ORIGIN 73.168.192.in-addr.arpa.


@      IN     SOA      ns1.listen.com.    admin.listen.com. (

            2018120402

            1H

            10M

            3D 

            12H )

        IN     NS      ns1.listen.com.

142     IN     PTR     mx2.listen.com.

141     IN     PTR     mx1.listen.com.

133     IN     PTR     ns1.listen.com.

140     IN     PTR     ns2.listen.com.

133     IN     PTR     www.listen.com.


輔助DNS服務器區域配置文件內容:


[root@bogon slaves]# tail -10 /etc/named.rfc1912.zones 

zone "listen.com" IN {

        type slave;

        file "slaves/listen.com.zone";

        masters { 192.168.73.133; };

};

zone "73.168.192.in-addr.arpa" IN {

        type slave;

        file "slaves/73.168.192.ip-addr.arpa.zone";

        masters {192.168.73.133;};

};


注意:輔助DNS服務器的區域解析庫文件會根據主DNS服務器自動生成,默認路徑爲/vat/named/slaves下

[root@bogon ~]# ll /var/named/slaves/

總用量 8

-rw-r--r--. 1 named named 474 1月   4 13:52 73.168.192.ip-addr.arpa.zone

-rw-r--r--. 1 named named 608 1月   4 13:46 listen.com.zone



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