Firefox google linux shell 编程 java wordpress Windows 开源 Android 云计算 Ubuntu 微软 程序员 centos apache mysql php Python nginx

DNS服務的配置與管理(2) DNS的理論知識

1. DNS域名空間

如果網絡規模較小,那麽使用hosts文件是一個非常簡單的解決方案,但對於目前已經包括有幾十億臺主機的Internet,hosts文件很明顯無法滿足要求。所以在Internet中才又引入了DNS系統,它的工作機制相比hosts要復雜、高效得多。

DNS系統采用的是分布式的解析方案,整個DNS架構是一種層次樹狀結構,這個樹狀結構稱為DNS域名空間。

 

在這個樹狀結構的最頂層稱為根域,根域用“·”表示,相應的服務器稱為根服務器,互聯網管理委員會規定,整個域名空間的解析權都歸根服務器所有,也就是說根服務器對互聯網上所有的域名都享有完全的解析權!同時為了減輕根服務器的壓力,又采用了一種“委派”機制,將位於根域下一層的頂級域分別委派給不同的頂級域服務器進行解析。
如根服務器把com域的域名解析權委派給com域服務器,以後凡是接收到以com結尾的域名解析請求,根服務器都會轉發給com域服務器,由它對域名進行解析。
由根服務器委派的域名主要有:net、org、edu、gov、cn、uk……,這些被根服務器委派的域名稱為頂級域名。
每個頂級域名都有預設的用途,例如com域名用於商業公司,edu域名用於教育機構,gov域名用於政府機關等等,這種頂級域名也被稱為頂級機構域名。根服務器還針對不同國家進行了域名委派,例如把所有以cn結尾的域名委派給中國互聯網管理中心,以uk結尾的域名委派給英國互聯網管理中心,cn、uk這些頂級域名被稱為頂級地理域名。
每個被委派的域名服務器再同樣使用委派的方式向下發展,例如中國互聯網管理中心在.cn頂級域名下面又設置了一些二級域名:.com.cn、.net.cn、.edu.cn……,並將這些二級域名的解析權委派給相應的服務器。

當一個公司或個人要申請域名時,就得去這些頂級或者二級域名服務器那裏進行註冊。例如新浪公司想申請使用sina.com.cn域名,這時新浪就要向負責.com.cn域名的DNS服務器提出申請,只要sina.com.cn還沒有被其他公司或個人使用,而且申請者按時足額繳納了費用,負責.com.cn域名的服務器就會把sina.com.cn這個域名委派到新浪公司自己的DNS服務器上。

這樣通過層層委派,就逐步形成了現有的這種分布式的域名空間架構。這種架構把域名解析權最終下放到各公司自己的DNS服務器上,這樣既有利於及時更新記錄,同時對平衡流量壓力也很有好處。

對於有些公司雖然註冊了域名,但是並不希望花費財力來架設DNS服務器進行域名解析,這時可以將域名解析權委托給一些域名服務提供商,由其代為解析。如萬網就是一家國內著名的域名服務提供商。

2. DNS域名結構

在DNS這種層次樹狀域名空間中,每一層都有不同的含義和相應的表示方法。

(1)對於最頂層的根域(root),一般用一個“.”表示。

(2)頂級域,直接處於根域下層,由根域對其進行委派,一般代表一種類型的組織機構或國家地區。

按使用範圍不同,頂級域分為三種類型:
     國際通用的頂級域名,包括net、com、org。

     美國專用的頂級域名,包括edu、gov、mil等

     國家或地區頂級域名,包括cn、jp、hk、uk等

世界上所有國家的組織或個人都可以在國際通用頂級域名下面註冊,而美國專用的頂級域名則只有美國的組織或個人可以使用,國家頂級域名則為每個國家所專有,只有該國的組織或個人可在其下面註冊。

(3)二級域,在頂級域下面,由頂級域對其進行委派,用來標明頂級域內的一個特定的組織。

在Internet中,頂級域和二級域都由ICANN(互聯網名稱與數字地址分配機構)負責管理和維護,以保證它們的唯一性。國家頂級域名下面的二級域名則是由所在國家的網絡部門統一管理的。

(4)子域,在二級域的下面所創建的域,可以由各個組織或用戶自由申請註冊。

(5)主機,是域名空間的最下面一層,也就是一臺具體主機的計算機名。

如上圖中的www、mail都是具體的計算機的名字,我們可以用www.xxx.com、mail.xxx.com來表示它們,這種表示方式稱為FQDN名(完全合格域名),也就是這臺主機在域中的全名。我們平時上網時所輸入的網址也都是一些FQDN名,如www.sina.com.cn,這其實是表示我們要訪問“sina.com.cn”域中一臺名為“www”的計算機。DNS的作用就是將每個域中的FQDN名解析為這些計算機所對應的ip地址,以使用戶可以通過名字訪問它們。

3. DNS名稱解析的方式

在DNS這種分布式的體系結構中,DNS服務器如何進行域名解析呢?比如一臺客戶機想要訪問網站www.benet.com.cn,整個DNS解析的過程如下圖所示。

客戶機首先把解析請求發送到自己的本地域名服務器上,如果這臺DNS服務器中正好有這個名字所對應的IP,那就可以直接將結果發回給客戶機。如果服務器中沒有相關記錄,那就得展開下面的一系列求助過程。
首先他要把這個域名發送到根服務器去請求解析,根服務器發現這個域名是以cn結尾的,於是告訴查詢者這個域名應該詢問負責cn的DNS服務器。這時查詢者會轉而向負責cn的域名服務器發出查詢請求,負責cn域名的服務器發現域名是以com.cn結尾,就將負責com.cn的DNS服務器發給查詢者。查詢者只能再向com.cn服務器發出查詢請求,com.cn服務器回答說“www.benet.com.cn”是以benet.com.cn結尾的域名,以benet.com.cn結尾的域名已經被委派到DNS服務器benet.com.cn了,因此這個域名的解析應該去問他。於是查詢者最後向benet.com.cn服務器發出查詢請求,這次應該可以如願以償了,benet.com.cn服務器會告訴查詢者所需要的答案,查詢者拿到這個答案後,會把這個查詢結果放入自己的緩存中,如果在緩存的有效期內有其他DNS客戶再次請求這個域名,DNS服務器就會利用自己緩存中的結果響應用戶,而不用再去根服務器那裏跑一趟了。

在上面的名稱解析的過程中,分別用到了兩種不同類型的查詢,分別是客戶機和本地DNS服務器之間的遞歸查詢以及DNS服務器與服務器之間的叠代查詢。

遞歸查詢:客戶端計算機和DNS服務器之間都是采用遞歸查詢,客戶端得到結果只能是成功或失敗 。 
叠代查詢:DNS服務器與服務器之間進行的查詢。從根服務器開始逐級往下查詢,直至找到最佳結果。
在叠代查詢的過程中,根服務器非常重要,從理論上來講,如果根服務器全部崩潰,那麽整個互聯網也將癱瘓。在已安裝好的DNS服務器的屬性設置中有一項“根提示”,即是一項允許本地DNS服務器查詢根DNS服務器的功能,其中列出了13臺根服務器的地址。對於Internet,這13臺根服務器至關重要,所以為了提高安全性,這些根服務器分別部署在不同的國家,其中10臺設置在美國,另外分別各有一臺設置於英國、瑞典和日本。

延伸阅读

    评论