自己動手搭建DNS服務器

前言:

    在我們平時上網中,訪問的都是域名,那麼域名是如何轉換爲IP地址的呢?進而訪問我們的服務器主機的呢?這時候就需要用到DNS服務器了。DNS是由域名解析器和域名服務器組成的,域名服務器是指保存有該網絡中所有主機的域名和對應IP地址,並具有將域名轉換爲IP地址功能的服務器。




    那麼接下就開始搭建DNS服務器吧!

wKiom1cHsTjQTQ59AACb_ywGqfY974.png



1.首先搭建主DNS服務器,ch1主機配置如下:


[root@ch1 ~]# yum -y install bind        ## 安裝bind程序
[root@ch1  ~]#  ntpdate 172.18.0.1                ## 同步時間服務器
[root@ch1 ~]# vim /etc/named.conf        ## 修改DNS服務器配置文件

wKioL1cHwffhDVixAAA95oyakBM222.png

[root@ch1 ~]# named-checkconf            ## 檢查配置文件語法錯誤
[root@ch1 ~]# vim /etc/named.rfc1912.zones        ## 在此配置文件中添加區域

wKiom1cHtPGB3f2AAAATS9LPMs8456.png

[root@ch1 ~]# vim /var/named/test.com.zone        ##在/var/named目錄下建立區域數據文件

wKioL1cJEQzBlmmJAABX-uOIEGA247.png


[root@ch1 named]# vim /var/named/172.18.20.zone         ## 建立反向解析區域數據文件

wKiom1cHu7eRjFjzAAAWVA5nIZg894.png


[root@ch1 ~]# chown :named /var/named/test.com.zone       ## 修改屬組爲named
[root@ch1 ~]# chmod o= /var/named/test.com.zone         ## 移除其他的權限
[root@ch1 named]# named-checkzone test.com /var/named/test.com.zone  ## 檢測區域文件語法錯誤
[root@ch1 named]# named-checkzone 20.18.172.in-addr.arpa /var/named/172.18.20.zone
[root@ch1 named]# service named start                 ## 啓動DNS服務
[root@ch1 named]# dig -t A www.test.com @172.18.20.10    ## 測試DNS服務器172.18.20.10是否能正常解析A記錄
[root@ch1 named]# dig -x 172.18.20.11 @172.18.20.10      ## 測試DNS服務器172.18.20.10是否能反向解析172.18.20.11


主DNS服務器搭建完畢




2.搭建從DNS服務器,ch2配置如下


[root@ch2 ~]# yum -y install bind        ## 安裝bind程序
[root@ch2 ~]# ntpdate 172.18.0.1         ## 同步時間服務器
[root@ch2 ~]# vim /etc/named.rfc1912.zones        ## 定義一個從區域

wKioL1cHwHKxfsXsAAAOT3wiXg8727.png

[root@ch2 ~]# named-checkconf         ## 檢查語法錯誤
[root@ch2 ~]# service named start        ## 啓動DNS服務
[root@ch2 slaves]# cat test.com.zone        ## 查看區域配置文件是否能夠同步


注意:要在主DNS服務器上配置一條指向從DNS服務器的NS記錄



3.配置子域


[root@ch3 ~]# yum -y install bind         ## 安裝bind程序
[root@ch3 ~]# ntpdate 172.18.0.1           ## 同步時間服務器
[root@ch3 ~]# vim /etc/named.conf          ## 修改配置文件

wKioL1cH0HGSLAz9AAAyfckZMP0791.png

[root@ch3 ~]# vim /etc/named.rfc1912.zones  ## 建立區域配置

wKioL1cJEKKynwJGAAAXAncqnsU492.png

[root@ch3 ~]# vim /var/named/ops.test.com.zone         ## 建立區域配置文件

wKiom1cJETixUdJxAAA_8xg6OmE197.png

[root@ch3 ~]# named-checkconf                     ## 檢查語法是否錯誤
[root@ch3 ~]# service named start                 ## 啓動服務   
[root@ch3 ~]# dig -t A www.ops.test.com @172.18.20.12        ## 測試子域是否能夠正常解析
[root@ch3 ~]# dig -t A www.test.com @172.18.20.12            ## 測試子域是否能夠解析父域


注意:子域同樣需要主DNS服務器上的授權



總結:


1. DNS是應用層協議,端口號爲tcp/53和udp/53


2. DNS查詢的過程

    

wKioL1cJFUaCybXAAAFRE1LVtDo680.png

    

    (1)客戶機將查詢www.test.com的信息傳遞到自己的首選DNS服務器。

    (2)DNS客戶機的首選DNS服務器檢查區域數據庫,由於此服務器沒有test.com域的授權記            錄,因此,它將查詢信息傳遞到根域DNS服務器,請求解析主機名稱。

    (3)根域DNS服務器把負責解析“com”頂級域的DNS服務器的IP地址返回給DNS客戶機的首選          DNS服務器。

    (4)首選DNS服務器將請求發送給負責“com”域的DNS服務器。

    (5)負責“com”域的服務器根據請求將負責“test.com”域的DNS服務器的IP地址返回給首          選DNS服務器。

    (6)首選DNS服務器向負責“test.com”區域的DNS服務器發送請求。

    (7)由於此服務器具有www.test.com的記錄,因此它將www.test.com  的IP地址返回給首          選DNS 服務器。

    (8)客戶機的首選DNS服務器將www.test.com的IP 地址發送給客戶機。

    (9)域名解析成功後,客戶機將http請求發送給Web服務器。

    (10)Web服務器響應客戶機的訪問請求,客戶機便可以訪問目標主機。


3. DNS服務器類型

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

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


4. DNS區域數據庫文件常見類型

        SOA:起始授權記錄; 一個區域解析庫有且只能有一個SOA記錄

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

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

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

        CNAME:別名記錄;

        PTR:Pointer,IP --> FQDN

        MX:Mail eXchanger,郵件交換器;



5. DNS的配置文件

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

            或包含"include"設定的其它文件;

                /etc/named.iscdlv.key

                /etc/named.rfc1912.zones

                /etc/named.root.key

        解析庫文件:

            /var/named/目錄下;

                一般名字爲:ZONE_NAME.zone


6. DNS測試工具

    dig命令:

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

    用於測試dns系統,因此其不會查詢hosts文件;

    查詢選項:

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

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

    反向解析測試:    dig  -x  IP

    模擬完全區域傳送:    dig  -t  axfr  DOMAIN  [@server]


7. DNS中的安全相關的配置

    訪問控制指令:

    allow-query  { }; 允許查詢的主機;白名單;

    allow-transfer { }; 允許向哪些主機做區域傳送;默認爲向所有主機;

    allow-recursion { }; 允許哪此主機向當前DNS服務器發起遞歸查詢請求; 

        allow-update { }; DDNS,允許動態更新區域數據庫文件中內容;

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