Linux初級運維(二十三)——Centos7操作系統搭建DNS服務器

一、DNS基本概念

    1、DNS概念:

        DNS:Domain Name System ,域名解析系統,因特網上作爲域名和IP地址相互映射的一個分佈式數據庫,能夠使得用戶可以方便的訪問互聯網,而不用去記主機對應的IP地址的過程叫做域名解析。

        DNS協議運行在UDP協議之上,使用端口號53。 DNS服務器的功能:每個IP地址都有一個主機名,主機名由一個或多個字符串組成,字符串之間用小數點隔開。有了主機名,就不要去記每臺設備的IP地址,只需要記住相對直觀有意義的主機名就可以了。這就是DNS協議所要完成的功能。

    2、DNS映射方式:

        主機名到IP地址的映射有兩種方式:1、靜態映射:每臺設備上都配置主機到IP地址的映射,各設備獨立維護自己的映射表,而且只供本設備使用。2、動態映射:建立一套域名解析系統(DNS),只在專門的DNS服務器上配置主機到IP地址的映射,網絡上需要使用主機名通信的設備,需要再DNS服務器上查詢主機對應的IP地址。

        通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析(或主機名解析)。在解析域名時,可以首先採用靜態域名解析的方法,如果靜態域名解析不成功,再採用動態域名解析的方法。可以將一些常用的域名放入靜態域名解析列表中,這樣可以大大提高域名解析效率。

    3、DNS常用的資源記錄類型

        A:地址 此記錄列出特定主機名的IP地址。這是名稱解析的重要記錄

        CNAME:標準名稱 此記錄指定標準主機名的別名

        MX:郵件交換服務器,此記錄列出了負責接收到域中的電子郵件的主機。

        NS:名稱服務器此記錄指定負責給定區域的名稱服務器

    4、DNS服務器類型:

            緩存服務器:不負責解析,僅爲加速,不需要註冊

            主DNS服務器:負責解析本地客戶端請求

            輔助DNS服務器:輔助服務器的區域數據都是從主服務器複製而來,其數據都是隻讀的。

    5、dig命令:

        語法:dig -t 資源記錄類型 名稱@server-ip

        工作機制:不加“@server-ip”:根據 /etc/resolv.conf 配置的解析文件類查詢

        image.png

        加“@server-ip”:根據指定的DNS服務器來解析,繞過了本地解析庫中設置的DNS服務器。

        image.png

        dig -x IP @server-ip :查詢反向解析

        image.png

        dig -t 資源記錄類型 名稱+trace:追蹤解析過程

        

二、環境配置

    1、操作系統:CentOS Linux release 7.6.1810 (Core)  Windowserver2008R2

    2、DNS服務器IP地址:

            Domain Name: melvin.com

            主DNS服務器:LinuxMaster.melvin.com     172.28.5.156

            備DNS服務器:LinuxSlave.melvin.com      172.28.5.157

            輔助DNS服務器:Win2008Slave.melvin.com     172.28.5.158

            輔助DNS服務器:

            web主機:www.melvin.com        172.28.5.156   172.28.5.157   172.28.5.158

            ftp主機: ftp.melvin.com    CNAME    www.melvin.com.

            mx郵件服務器:mx.melvin.com.        172.28.5.158

    3、正向解析思路:以172.28.5.165的機器爲DNS服務器,其他服務器(例如:172.28.5.155)通過DNS服務器172.28.5.156解析後以域名melvintest.com來訪問172.28.5.155,在172.28.5.155上通過域名melvintest.com來登錄172.28.5.156.

    4、反向解析設計思路:以172.28.5.156爲DNS服務器,通過172.28.5.155主機的IP來查詢其域名:melvintest.com

三、正向解析配置

    1、DNS服務器需要安裝bind、bind-chroot、bind-utils

        yum -y install bind bind-utils bind-chroot

        image.png

        編輯配置文件 /etc/named.conf :

           vim /etc/named.conf 

        禁用如下三行: 

          image.png

        啓動named服務:

            service named start

            image.png    

        驗證named服務是否啓動:

        netstat -ntlp

       image.png 

        配置開機啓動:

        systemctl enable named 

        image.png

    2、配置區域配置文件:

         編輯區域配置文件: /etc/named.rfc1912.zones

          vim /etc/named.rfc1912.zones

        新建區域如下:

         image.png

    3、創建區域數據文件(/var/named/***.zone)可以複製 name.localhost文件 然後進行修改

        在/var/named下建立“zone_name.zone”文件,通常只包含宏定義和資源記錄,且第一個記錄必須是SOA記錄,(格式如下):

            $TTL 600;

            name[TTL] IN RR_TYPE value

        注: 一個FQDN可對應多個IP ;負載均衡

                多個FQDN可對應一個IP; 一臺主機有多個名稱,且可以用CNAME定義

            vim melvin.com.zone 

        image.png

    4、測試配置文件及區域文件是否存在語法錯誤

        使用命令:named-checkconf

                          named-checkzone "melvin.com.zone" /var/named/data/melvin.com.zone

            image.png

    5、確保主配置文件和各區域解析庫文件的權限爲640,屬主爲root,屬組爲named;

        (1)檢查主配置文件的權限

            image.png

        (2)檢查區域解析庫文件/var/named/melvin.com.zone的權限:

            image.png    

        (3)更改權限

            image.png

    6、重啓服務

            systemctl restart named

    7、更改iptables和selinux的設置(如果不瞭解此兩項可以暫時關閉)

        systenctl stop firewalld

        vi /etc/sysconfig/selinux

    8、分別使用(dig/nslookup)在Linux/Windows主機進行查詢DNS相關資源記錄。

        (1)使用dig命令在Linux主機上進行DNS資源查詢

        dig -t SOA melvin.com @172.28.5.156

        image.png

        (2)使用nslookup命令在windows系統平臺下測試DNS相關資源記錄:

        image.png

        image.png

        以上操作步驟,一臺能夠正向解析的bind服務器就配置成功了。

四、配置反向解析bind服務

        正向解析與反向解析各自採用不同的解析庫,一臺DNS服務器可以只有正向解析庫或只有反向解析庫,也可以同時提供正向/反向解析。

        反向區域的區域名稱格式:

        ReverseIP.in-add.arpa.

        例如:假如網絡地址爲 172.16.100.1  那麼規則命名爲100.16.172.in-addr.arpa

        這裏我本地的內網IP地址爲:172.28.5.0 ,所以則寫成 5.28.172.in-addr.arpa

    1、修改配置文件 /etc/named.conf , 添加反向解析區域配置文件

        vim /etc/named.conf 

        image.png

    2、創建反向區域解析文件 28.172.zone   (可以複製 melvin.com.zone這個文件,然後進行修改)

        vim /var/named/28.172.zone

        image.png

    3、檢查語法錯誤

        named-checkconf

        named-checkzone "28.172.zone"  /var/named/28.172.zone

        image.png

    4、設置權限

        image.png

    5、重啓dns服務

        systemctl restart named

    6、使用Windows系統客戶端進行驗證解析

        image.png

    以上配置步驟完成了主bind服務器的配置方法,能夠實現正向解析,同時也可以實現反向地址解析

五、rndc的相關知識

    1、什麼是rndc:

        rndc:Remote Name Domain Controller ,遠程名稱域控制器,rndc是BIND安裝包提供的一種控制域名服務運行的工具。

        rndc 通過一個TCP連接與名字服務器通信,發送經過數字簽名認證的命令。在當前版本的rndc和named中,唯一支持的認證算法是HMAC-MD5 , 在連接的兩端使用共享密鑰。它爲命令請求和名字服務器的響應提供TSIG類型的認證。所有經由通道發送的命令都必須被一個服務器所知道的key_id簽名。

        監聽端口:953/tcp

        語法:

        rndc [-b address] [-c config] [-s server] [-p port]

        [-k key-file] [-y key] [-V] command

        command is one of the follwoing:

        reload Reload configuration file and zones .  #重新加載配置文件和區域文件

        reconfig Reload configuration file and new zones only .  #重新加載配置文件和新的區域文件

        freeze Suspend updates to all dynamic zones.

        stats Write server statistics to the statistics file. #將服務器統計信息寫入統計文件中

        stop Save pending updates to master files and stop the server.

        halt Stop the server without saving pending updates.

        flush Flushes all of the server's caches. #清空DNS緩存

        status Display status of the server. #顯示bind服務器的工作狀態

    2、rndc的調試和日誌:    

        調試:顯示程序運行中的詳細信息(會產生I/O,正常情況下建設關閉)

        調試級別:0,1,2,3 ....

        提升調試級別:

            rndc trace

            rndc trace LEVEL

            rndc notrace

        打開查詢日誌:記錄查詢動作(會增加磁盤I/O)

        rndc querylog

            image.png

六、區域傳送原理

    1、爲什麼需要區域傳送:

        DNS輔助服務器是一種容錯設計,考慮的是一旦DNS主服務器出現故障或因負載太重無法及時響應客戶機請求,輔助服務器將挺身而出代替主服務器。輔助服務器的區域數據都是從主服務器複製而來,因此輔助服務器的數據都是隻讀的,當然,如果有必要,我們可以很輕鬆地輔助服務器升級爲主服務器。輔助服務器從主服務器複製區域數據的過程叫“區域傳送”。區域傳送使用TCP的53號端口。

    2、區域傳送的類型:

        (1)完全區域傳送(AXFR)

        (2)增量區域傳送(IXFR)

    3、區域傳送原理

        image.png

        image.png

七、輔助DNS服務器的配置

        注意:輔助DNS是針對區域來說的;如果有多臺DNS服務器,必須爲每個DNS服務器建立NS記錄,否則主DNS將不向其發送通知;

    1、區域的定義:

        

        zone “區域名稱” IN {

         type slave; #區域類型爲輔助

         file "slaves/ZONE_NAME.zone"; #區域文件必須保存在slaves目錄下,放在其他目錄沒有權限

         masters { #指出主服務器是誰,注意:花括號前後要有一個空格

         MASTER_DNS_IP;

         MASTER_DNS2_IP;

         };

        };

    2、輔助DNS和區域傳送的配置:

        第一步:先創建一個輔助DNS (分別在LinuxSlave 和win2008的虛擬主機中實現)

        (1)在LinuxSlave主機上安裝bind服務並做相應的配置:

        yum -y install bind bind-chroot bind-utils

        image.png

        編輯/etc/named.rfc1912.zones,添加如下記錄:

        image.png

        檢查語法錯誤: 

        named-checkconf

        (2)在主DNS服務器所在LinuxMaster主機上的區域文件/var/named/melvin.com.zone 和/var/named/28.172.zone中添加相應的記錄:

        image.png

        image.png

        檢查語法錯誤、重讀配置文件

        image.png

        在主DNS服務器上,用dig命令做下檢測,看看新增加的記錄是否出現:

        image.png

        image.png

    3、在windows server 2008 R2 上配置輔助DNS

        準備工作:配置好網絡,是的win2008虛擬機能夠ping通主DNS服務器並安排好DNS相關組件。

        image.png

        image.png

        image.png

        win2008 服務器創建DNS服務器角色:

        image.png

        image.png

        image.png

        image.png

        image.png

        image.png

        image.png

        新建DNS區域:

        image.png

        image.png

        image.png

        image.png

        image.png

        image.png

        同樣的方法創建反向代理區域:

        image.png

        第二步:實現從主DNS服務器完全同步區域數據文件,查看日誌文件驗證輔助服務器是否完成同步:

        在輔助DNS服務器上使用dig命令檢測是否能從主DNS服務器同步數據(完全區域傳送)

        image.png

        在輔助DNS服務器上查看對應的區域文件是否已經有了:

        ls /var/named/slaves/

        image.png

        第三步:在主DNS服務器上新增一條資源記錄並查看日誌文件,然後到輔助DNS服務器上查看日誌是否完成增量數據同步

        image.png

        rndc reload

        image.png

        查看輔助DNS服務器日誌信息:

        image.png

        第四步:在windows客戶端用nslookup 命令來驗證輔助DNS的配置

        image.png

八、DNS服務器配置總結

    1、每個DNS服務器必須要有一個對應的NS資源記錄;

    2、創建slave的時候,其配置文件類型必須是type slave ;必須指定主服務器的IP地址

    3、可以使用dig -t axfr test.com @server_IP 從主DNS服務器拉取所有解析庫資源記錄;

    4、主輔同步完成後,將自動在slave服務器上的slaves/目錄下生成zone文件,這些區域文件是從主DNS同步過來的,一般爲只讀,不建議更改slave的zone文件;

    5、在主DNS上修改區域文件時,必須將SOA記錄的serial加1因爲slave是通過serial值來進行判斷更新的(windows系統上是自動完成的);

    6、DNS的日誌默認全部保存在/var/log/messege文件中;

    7、DNS的解析依賴於解析庫,所以就算是所配置的內容是完全不存在的也可以解析(且正向解析和反向解析的解析是各自獨立的)。需要注意,正向解析力沒有PTR記錄,而反向解析庫裏不需要A記錄、MX記錄和CNAME記錄。

        

        

        

          

        



        

        

    

        

        

        

          

        

            

            

        

            

    

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