DNS服務器之理論基礎

一、什么是DNS

    DNS全稱為Domain Name System,即域名系統,其作用就是將我們經常使用的“網址”解析為IP地址。

    在互聯網上通信需要借助于IP地址,但人類對于數字的記憶能力遠不如文字,那么將IP地址轉換成容易記憶的文字是個好辦法,可是計算機只能識別0、1代碼,這時就需要一種機制來解決IP地址與主機名的轉換問題。

    早期由于網絡上的主機數量有限,主機名和IP的解析借助于hosts文件即可完成,Linux中此文件一般存放路徑為/etc/hosts,在此文件中手動記錄每個主機名與其IP的對應關系;但hosts文件的內容不能自動更新,一旦主機名或IP地址發生變化,需要手動對每一臺主機進行更新。

    隨著互聯網的發展,網絡上可供人們訪問的網站越來越多,hosts文件已經不能滿足需求;為了解決此問題,伯克利大學研究出了一套系統,被稱為BIND(Berkeley Internet Name Domain),也就是現在流行的DNS。

    DNS利用樹形目錄結構,將主機名的管理分配給不同的層級,這樣可以實現更加快速的完成主機名的查找,修改主機名解析時也更加方便。

二、相關概念

    1、域

        TLDTop Level Domain (頂級域名)

            組織域:.com, .org, .net, .edu,.gov,.mil,.cc,…

            國家域:.cn, .us, .tw, .iq,…

            反向域: .in-addr-arpa

        上面提到過,DNS采用分級的授權管理機制,其結構如下所示:

            blob.png

        根域與一級域由IANA直接管理。

    2、FQDN

        FQDN全稱為Fully Qualified Domain Name,即完全合格域名。

        FQDN由兩個部分組成:主機名和域名。因為DNS是逐級管理的,所以在不同的層級中主機名與域名也是不同的;以www.google.com為例,在第二層中,.com就是域名,google就是主機名,而到了第三層中,.google.com就成了域名,www就成了主機名。

        注意:主機名與域名并不是依據"."來劃分的,主機名中也可以包含"."號的,主要還是要根據域名的注冊情況來劃分。

    3、正向解析

        從FQDN轉換為IP地址稱為正向解析。

    4、反向解析 

        從IP地址轉換為FQDN稱為反向解析。   

    5、區域

        正向解析或反向解析中,每個域的記錄就是一個區域。

三、DNS的解析庫

    DNS的主要作用是進行主機名的解析。

    解析:根據用戶提供一種名稱,去查詢解析庫,以得到另一種名稱。       

    正向解析與反向解析使用不同的解析庫。

    正向解析庫:

         資源記錄:rr(resource record)

                   有類型的概念;用于此記錄解析的屬性。

         SOAStart of Authority,起始授權記錄,一個區域文件只能有一個。

         NSName Server,可以有多個。

         MXMail eXchange,郵件交換器。標明域內的郵件服務器,MX記錄有優先級屬性(0-99);數字越小,優先級越高。

         AFQDNàIP,專用于正向解析庫。

         PTRIPàFQDN,專用于反向解析庫。

         AAAAFQDNàIPv6,專用于正向解析庫。

         CNAMECanonical Name,正式名稱。

    解析庫文件同步的過程:區域傳送(單方向傳送)

            完全區域傳送:axfr

                將整個區域傳送到各服務器。

            增量區域傳送:ixfr

                只將區域有改動的記錄傳送到各服務器。

四、DNS的查詢過程

    DNS采用兩種查詢機制:遞歸和迭代。

    blob.png

    客戶端向DNS服務器發起查詢請求,DNS服務器搜索本地解析庫沒有結果,于是向根域發起查詢請求,根域告訴DNS服務器.com服務器上有它需要的資源,DNS服務器又向.com服務器發起查詢請求,結果被告知.google.com服務器上有它想要的結果,最后終于在.google.com服務器上找到了解析記錄,并返回給了客戶端。

    在上面的查詢過程中,客戶端只發起了一次請求,并得到了最后的結果,這種查詢方式被稱為遞歸。

    而DNS服務器在查詢過程中不停的發起請求,直到找到想要的結果,這種查詢方式被稱為迭代。

    這就好比你想知道某日本微電影女星的健康狀況,你去問了小A,雖然小A也不知道,但他好面子想表現,于是他向小B咨詢,小B讓他問問小C,小C讓他利用翻墻軟件去日本的網站上去看看,最后終于知道了答案并將告訴了你,在這個求知過程中你向小A發起的詢問就是遞歸的,對于你來說是最省心,而對于小A來說是比較悲催的;小A的發起查詢就是迭代的,對于小A來說是比較辛苦的,但對于小B、小C來說是基本上沒什么工作量的。

    注意:根不會為任何請求遞歸。

    DNS服務器并不需要在客戶端每次發起請求時都執行迭代查詢,DNS服務器會將之前的查詢結果在本地存儲一份,如果客戶端再次請求此資源,可以馬上做出響應,這個存儲空間稱為本地DNS緩存。

    另外我們可能還經常會聽到兩個概念權威DNS服務器和非權威應答。

    權威DNS服務器說的容易理解一點,就是如果本地DNS的配置文件中寫明了FQDN與IP的對應關系的,并授權管理這個域時,那么就稱這臺DNS服務器是該域的權威DNS服務器。

    客戶端得到的DNS查詢結果是從本地DNS緩存中獲得的,那么稱這個解析結果為非權威應答;非權威應答的結果不一定是正確的,有可能權威DNS服務器上記錄已修改,而緩存中還是未更新的記錄。

五、DNS的查詢順序

    1、本地hosts文件

    2、本地DNS緩存

    3、本地DNS服務器

    4、發起迭代查詢

六、DNS使用的端口號

    DNS協議使用udp/tcp的53端口提供服務,客戶端向DNS服務發起請求時,使用udp的53端口;DNS服務器間進行區域傳送的時候使用TCP的53端口。

七、DNS服務器類型

    1、DNS服務器

        為客戶端提供域名解析的主要區域,主DNS服務器宕機,會啟用從DNS服務器提供服務。

    2、DNS服務器

        主服務器DNS長期無應答,從服務器也會停止提供服務。

        主從區域之間的同步采用周期性檢查+通知的機制,從服務器周期性的檢查主服務器上的記錄情況,一旦發現修改就會同步,另外主服務器上如果有數據被修改了,會立即通知從服務器更新記錄。

    3、緩存服務器

        服務器本身不提供解析區域,只提供非權威應答。

    4、轉發服務器

        當DNS服務器的解析區域(包括緩存)中無法為當前的請求提供權威應答時,將請求轉發至其它的DNS服務器,此時本地DNS服務器就是轉發服務器。

       

       

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

(0)
petmasterpetmaster
上一篇 2015-04-28 19:18
下一篇 2015-04-29 16:52

相關推薦

  • 第四周練習

    1、復制/etc/skel目錄為/home/tuser1, 要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 cp -r /etc/skel /home/tuser1 chmod -R 700 /home/tuser1 2、編輯/etc/group文件,添加組hadoop。 vi /etc/group hadoop:x:2017 …

    Linux干貨 2017-08-04
  • MBR

    關于磁盤的使用,必須要弄明白MBR 分區劃分方式     centos 6:扇區劃分     centos 7:柱面劃分 MBR:Master Boot Record:512bytes 0磁道0扇區 512bytes=446bytes(boot loader) + 4*16byt…

    Linux干貨 2016-09-05
  • DNS 正反向解析 主從配置

    我的環境是     192.168.1.130    主DNS      192.168.1.112    從DNS DNS 的安裝包有bind bind-libs bind-utils 安…

    Linux干貨 2016-01-05
  • 第一天參與馬哥linux運維面授

    很高興認識大家,介紹一下,我叫袁亞瓊,來自美麗的云南。我是一個隨和而又不隨性95年女子,喜歡運動,擅長田徑。學食品檢測的,上學期間沒怎么接觸計算機,現在又來學專業計算機,內心還是有幾絲恐慌,希望在今后的學習路上得到各位學友和老師的指導和幫助。等工作穩定,可以去云南放松一下,云南是個吃喝玩樂的好地方,同時也是個感受慢節奏生活的佳地。云南歡迎您哦! 選擇學習li…

    Linux干貨 2018-03-26
  • Week6 Vim編輯器使用指南及練習

    vim編輯器 vim模式: 模式轉換.png 編輯–>輸入: i: 在當前光標所在字符的前面,轉為輸入模式; a: 在當前光標所在字符的后面,轉為輸入模式; o: 在當前光標所在行的下方,新建一行,并轉為輸入模式; I:在當前光標所在行的行首,轉換為輸入模式 A:在當前光標所在行的行尾,轉換為輸入模式 O:在當前光標所在行的上方,新建一行,…

    Linux干貨 2017-02-17
  • Apache配置壓縮優化時報錯——undefined symbol: inflateEnd

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://nolinux.blog.51cto.com/4824967/1345264    圣誕都過了,好久沒來51發博文了。最近一直在忙考試和其他一些私人事務,感覺長期不發博文,有點不好。不是不發,實在是最近…

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