歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 網絡基本功 - 細說DNS

網絡基本功 - 細說DNS

日期:2017/2/27 15:54:16   编辑:Linux教程

介紹
因特網上作為域名和IP地址相互映射的一個分布式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析(或主機名解析)

DNS基礎:

DNS命名空間是一個分層結構,類似於Unix文件系統。如下圖的分層空間所示。 每個節點都有一個標簽,最多可以有63個字符。樹結構的根部是一個特殊的標簽為null的節點。樹結構中節點的域名就是一串標簽列表,從該節點開始,一直到根節點,通過dot來將標簽分開。(這是與Unix文件系統不同的地方,將路徑名放在最前沿著樹結構下來)。樹結構中的每一個節點必須有一個唯一的域名,但是樹結構中不同的point可以有相同的標簽。

域名分為絕對域名與相對域名。絕對域名也稱為完全合格的域名FQDN(Full Qualified Domain Name),它是以“.”結尾的域名,例如sun.tuc.noao.edu.。如果不以“.”結尾,則假設該域名需要被補充完整。域名如何補充則取決於使用的DNS軟件。

頂級域名分為三個區域:
  1. arpa是用來做反向域名解析的特殊域。
  2. 七個3字母域名稱為普通域名,也有稱為組織域。
  3. 所有兩個字母域名是基於ISO 3166國家代碼,稱為國家域名或地理域名。

上圖中沒有顯示的很重要的一點是DNS中責任的分派。沒有一個單一的實體來管理樹中的每一個標簽。相反,一個實體(網卡)維持樹中的一部分(頂級域名)並將其他責任分配給zone中其他實體。

zone指DNS樹中分開管理的子樹。例如,二級域名就是一個常見的zone,noao.edu。很多二級域名又分為更小的zone。例如,一所大學按照系別,公司按照部門分為分為更小的zone。

熟悉Unix文件系統的會注意到DNS樹按zone分區很像邏輯Unix文件系統分為物理磁盤分區。如同我們從上圖中無法看出zone的委托授權管理位於何處,從Unix文件系統的類似圖中也難以看出哪個目錄在哪個磁盤分區上。

一旦zone的委托授權分派好,zone的負責人需要為其提供多個域名服務器。當zone中安裝了新的機器,zone的DNS管理員為其分配域名與IP地址,並將信息輸入域名服務器的數據庫中。域名服務器委托授權管理一個或多個zone。zone管理人員必須為其提供一台主域名服務器以及一個或多個二級域名服務器。主服務器和二級服務器必須相互獨立並冗余,以使zone不會受到單點故障的影響。主服務器和二級服務器的區別在於,主服務器從磁盤文件加載zone的所有信息,而二級服務器從主服務器獲取所有信息。這一過程稱為zone transfer。

當新的機器添加到zone中,管理員將合適的信息(至少需要名稱和IP地址)添加到主服務器系統的磁盤文件中。之後告知主域名服務器重新讀取自己的配置文件。二級服務器定期查詢(通常3小時一次),如果主服務器有新的數據,二級服務器通過zone transfer來獲取。

當域名服務器沒有所需信息時怎麼辦呢?它必須聯系另外一台域名服務器。這是DNS的分布式特性。並不是每一台服務器都知道如何聯系其他域名服務器,但每一台服務器都知道如何聯系根域名服務器。根服務器的IP地址存放於主服務器的配置文件中。主服務器必須知道根服務器的IP地址,而非DNS名。之後,主服務器獲知所有二級域名服務器的名稱和位置(即IP地址)。整個交互過程是:發起請求的域名服務器必須聯系根服務器,根服務器告知請求服務器聯系另外一台服務器,這樣逐級進行。

DNS的一個基本屬性是緩存。即,當一個域名服務器收到一條映射信息(如一個主機名的IP地址),它會將該信息放入緩存,以使之後的查詢可以使用緩存後的結果,而無需額外發起對其他服務器的查詢。
Copyright © Linux教程網 All Rights Reserved