DNS基礎及使用BIND搭建域名服務器

    本文主線是DNS服務相關概念和服務器搭建,在此之前了解一下域名這個東東很有其必要性,因為DNS服務就是應域名而生的。那么域名是什么哪?

    域名

    域名是用一串用點分開的字符串來表示的internet上的某一臺或者一組計算機的名稱,用于在數據傳輸時標識計算機的電子方位。舉個例子來說,如果我們要去訪問www.magedu.com這個站點,實際上是應該輸入該網站的IP地址來訪問的,但是由于無論是IPv4還是IPv6地址都相當的難以記憶,為此我們通過域名來對其進行管理,利用其見名知意的特性來方便我們記憶,而系統底層仍然是以IP地址來通信的,這種域名與IP地址之間的轉換是由DNS服務來完成的。以www.magedu.com來說明一下域名的組成部分:

   blob.png

    類型:標記域名的類別(如 com, cn, edu, org, gov等)

     域名:如上面的magedu,

     主機名:標記一個域內的具體的主機

    DNS(Domain Name System)

    由上述可知,當我們訪問internet上的網站時,我們輸入的是域名,域名通過某種機制轉為IP地址后再由系統底層完成IP之間的相互通訊,而這種能夠完成域名與IP地址間的相互轉換的機制就是DNS服務。DNS服務一般是由dns服務器來實現的,提供dns服務的服務器將域名和IP之間的相互映射信息以分布式數據庫的形式存儲起來,每一條映射記錄稱作一條資源記錄,當用戶(一般是客戶端、應用程序等)利用域名訪問互聯網中的主機時,會向dns服務器提請域名解析請求,待dns服務器經查詢對應的映射資源記錄返回IP地址后,利用此IP方可與該主機進行通信,流程圖如下:

    blob.png

    在linux中,域名的解析通常有兩種方式:一種是hosts文件中的IP地址和域名的直接映射;一種是通過dns服務器來解析,同一個域名默認是先讀取hosts文件來解析,如其中無此記錄,再轉向dns服務器請求解析,兩種解析方式的優先級在/etc/nsswitch.conf中定義

     blob.png

     我們同樣用www.magedu.com  來測試此處的優先級特性

     blob.png

     默認hosts文件中是沒有對應的www.magedu.com 解析條目的,對其進行ping操作

     blob.png

     地址是域名對應的目的IP,在hosts文件中指定它的IP地址來測試

     blob.png

     blob.png

     看到了吧,ping操作的目的IP是我們指定的IP地址了。

     DNS資源記錄

     DNS服務器中域名與IP地址相互轉換的映射信息以文本形式存儲在其區域解析中,每一行表示一對對應關系,稱之為資源記錄(RR Resource Record),每一條資源記錄都包含域名、IP地址和其它屬性信息。

     資源記錄的基本屬性信息:

         資源記錄的格式

         [name]      [ttl]       IN        type         value

         name   資源記錄引用的域對象名,可以是單臺主機或者整個域,字段值: "."是根域 "@"是默認域,即當前域

         ttl    生存時間字段,以秒為單位定義該資源記錄的信息存放在DNS緩存中的時間長度。此字段缺省采用SOA記錄中的最小ttl值(即1小時)

         IN     固定關鍵字,不可缺省

         type   資源記錄類型

                 1、A(host)          A記錄,成為主機記錄,DNS名稱到IP地址的映射,用于正向解析。

                 2、AAAA(host)       采用IPv6地址主機記錄

                 3、CNAME              別名記錄,用于定義A記錄的別名

                 4、MX(mail exchange)郵件交換器器記錄,用于告知郵件服務器進程將郵件發往指定的另一臺郵件服務器。

                 5、NS                 用于標識區域的DNS服務器,即負責此區域的權威名稱服務器,一個區域可以有多條NS記錄,也就是說一個區域可以有一臺主dns服務器,一臺或多臺從dns服務器。

                 6、PTR                是IP地址到DNS名稱的映射,用于反向解析。

                 7、SOA                用于一個區域的開始,SOA記錄后的所有信息均是用于控制這個區域的,每個區域數據庫文件必須包含一個SOA記錄,并且必須是其第一條資源記錄,用于標識DNS服務器管理的起始位置,SOA說明能解析這個區域的dns服務器哪個是主服務器。 

         value   用于指定與當前資源記錄有關的數據,該字段的內容取決于字段類型

         blob.png        

     DNS的客戶端查詢工具

     在我們配置dns服務器或者客戶端訪問網絡出現故障時,我們常常需要一些工具來查看dns服務的一些信息來排除故障,在Linux中有3中dns信息查詢工具,我們來一一說明一下

      1、host 命令

        使用方法:

        host DOMAIN_NAME //host后面直接跟域名可以查詢到域名對應的ip地址

       blob.png

       host -t TYPE NAME SERVER

          -t TYPE    //指定資源記錄的類型

          NAME       //指定需要查詢的資源記錄的name字段內容

          SERVER     //指定用于解析該域名的DNS服務器

       blob.png

     2、nslookup 交互式DNS客戶端查詢命令

       用法:

       nslookup

       >server x.x.x.x      //指定用哪臺DNS服務器來執行解析

       >set type={A|NS|MX}  //定義需要查詢的資源記錄的類型

       >NAME                //指定需要查詢的資源記錄的name字段內容

       blob.png

     3、dig 可以詳細顯示查詢結果的命令

        用法:

        dig -t TYPE NAME @SEVER

           -t TYPE     //指定資源記錄的類型

           NAME       //指定需要查詢的資源記錄的name字段內容

           SERVER     //指定用于解析該域名的DNS服務器

       blob.png

       dig -x NAME @SERVER

           -x //特指做反向解析

       blob.png

       dig功能擴展選項

          +trace      開啟dns查詢跟蹤

          +notrace    關閉dns查詢跟蹤

          +recurse    開啟dns遞歸查詢

          +norecurse   關閉dns遞歸查詢

       下面是dns查詢跟蹤示例 

       blob.png

       由上圖可以看到,客戶端發出查詢請求后,請求信息離開192.168.1.1這個本地服務器后,依根域–>一級域–>二級域–>目的主機的方式來完成查詢的,其實,此處用到了dns查詢的兩種方式迭代查詢和遞歸查詢,在客戶端向本地dns請求查詢過程式遞歸查詢,而本地dns之后的則使用迭代查詢。

       遞歸查詢:

          客戶端發出查詢請求,本地dns接收到后將請求信息發往根與服務器,根域服務器收到請求信息后,將請求信息發往以及域服務器,以及域服務器收到請求信息后,將請求信息發往二級域服務器,二級收到請求信息后將最終結果發給一級域服務器,一級與服務器收到結果后將結果放給根域服務器,根域服務器收到結果后將結果發給本地dns服務器,本地dns服務器將結果發給客戶端,完成查詢操作。

       blob.png

       迭代查詢:客戶端發送查詢請求給本地dns服務器,本地dns服務器收到請求將該請求發給根域服務器,根域服務器經查詢后得到該請求對應的一級域服務器的IP地址,并將該地址發給本地dns服務器;本地dns服務器得到一級域服務器地址后,向一級域服務器發送查詢請求,一級域服務器經查詢后,將請求對應的二級域服務器的地址發送給本地dns服務器;本地dns服務器得到二級域服務器地址后,向二級域服務器發送查詢請求,二級服務器將查詢到的最終結果發送給本地dns服務器,本地dns服務器將其發給客戶端,完成查詢操作。

          blob.png

     DNS服務器搭建

     一、dns服務器的類型

        1、主DNS服務器(Primary DNS Server, Master)

          主DNS服務器存儲著一個域的zone配置文件,所有的關于域配置與修改都在此服務器上進行。

        2、從DNS服務器(Secondary DNS Server,Slave)

          從DNS服務器主要為主DNS提供冗余和負載均衡用,其自身不能更改域內的管理性數據信息,也不能手動創建、修改、刪除資源記錄,只能從主DNS服務器同步拉取。

        3、緩存DNS服務器(Cache Only Server)

          不存儲任何zone配置文件,不提供域名解析功能,僅僅依靠DNS緩存信息為客戶端提供服務,通常用于加速站點訪問速度和負載均衡

      二、配置主DNS服務器

        運行環境:

           CentOS 6.5

           VMware Workstation 10.0

           域名   nod.com

           ip地址:192.168.5.244

           主dns服務器ip地址 192.168.5.244           

       1、bind安裝

         DNS服務一般是由DNS服務器軟件來提供的,在眾多DNS服務軟件中bind是使用最廣泛的軟件,兼容于windows、linux、MAC OS等,該軟件由ISC進行開發和維護的。bind服務名named,默認使用TCP和UDP協議,監聽兩者的53端口,rndc默認使用953端口。

         通過yum方式安裝bind和bind-utils # yum -y install bind bind-utils 。bind-utils則是bind提供的一組管理工具,有dig,nslookup,host,nsupdate,用來進行域名解析查詢和DNS調試工作。

         確認軟件安裝成功:

         blob.png

         查看安裝bind生成的文件和路徑信息

         blob.png

         blob.png

       2、配置named主配置文件     

         blob.png

       3、主配置文件修改完畢后就可以啟動服務了

          執行 chkconfig named on,永久開機啟動named服務

          執行 service named start啟動named服務

         blob.png

         blob.png

         使用 ss -tunl查看服務端口是否被監聽

         blob.png

       4、編輯/etc/named.rfc1912.zones配置文件,定義正向測試域。

         blob.png

         為nod.com域創建正向域解析文件nod.com.zone,區域解析庫文件都存放于/var/named目錄下以命名方式為“域名.zone”

         

         blob.png

         配置正向解析庫文件之后,我們就可以嘗試對DNS服務器進行測試了,在此之前為了保證服務正常啟動,對主配置文件和區域文件做測試。

          blob.png

          為便于測試,關掉防火墻和selinux

          blob.png

          使用dig工具測試服務器是否可用

          blob.png

          A記錄測試成功,解析結果為我們設置指定的ip地址,我們再測試一下MX記錄

          blob.png

        5、MX記錄測試也沒有問題,下面我們再為其創建逆向解析庫文件,測試逆向解析,首先在主配置文件聲明逆向解析區域。

          blob.png

          為反向解析區域創建反向解析庫文件

          blob.png

            由于默認named服務有named用戶身份運行,因此修改逆向解析庫文件的屬組為named,權限改為640 

          blob.png

             使用service named configtest ,測試所有的配置文件和區域解析庫文件

             blob.png 

             測試通過,進行反向解析測試

          blob.png

          逆向解析成功,至此,主dns服務器配置完成。 

          

         

         

     

    

    

         

    

      

 

       

 

原創文章,作者:Silently,如若轉載,請注明出處:http://www.www58058.com/5085

(1)
SilentlySilently
上一篇 2015-06-11
下一篇 2015-06-11

相關推薦

  • 邏輯卷

    §·邏輯卷管理器LVM介紹 ※·LVM邏輯卷的簡單描述 lvm(logical volume manager 邏輯卷管理器)的可以彈性的調整文件系統的容量,支持任何塊設備,需要使用dm模塊:device mapper設備映射,將一個或多個底層設備組織成一個邏輯設備的模塊。 lvm的重點在于彈性的調整文件系統的容量,而并非在于數據的存儲效率及安全上面…

    Linux干貨 2016-08-30
  • iptables 實現應用層過濾

        在linux環境中,工作于內核空間的netfilter和工作于用戶空間的iptables共同組成了其功能強大且操作靈活的防火墻系統,對進出主機或內外網之間的流量基于IP地址、通信協議、端口以及連接狀態等進行管控,然而,對于一些使用非固定端口或者通信協議的應用程序,默認是沒有辦法做限制的,比如聊天軟件QQ、下載工具迅雷等,不過我們可…

    Linux干貨 2015-07-10
  • linux安裝

    點擊開始運行\\172.16.0.1\python10 用戶名:python10 密碼:python10magedu 運行 ftp://172.16.0.1 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?…

    Linux干貨 2018-03-17
  • Linux-系統啟動的基本過程 以及相關破環修復實驗。

    這章簡單描述下系統的啟動流程,主要以破環修復實驗為主: 系統啟動基本過程:       Linux系統啟動過程大致按照如下步驟進行(這是一個簡述):        第一階段:BIOS啟動引導階段;       …

    2017-07-10
  • Shell腳本編程之入門基礎(一)

    Shell腳本編程   一、本章節一內容:    編程基礎    腳本基本格式    變量    運算    條件測試   在本章節開始之前,我們先回顧下前面的知識點內容。前面學習了Linux的基礎入門,了解到計算機是運行二進制指令的,而我…

    Linux干貨 2016-08-12
欧美性久久久久