DNS入門介紹之二

上次介紹了DNS的一部分內容,下面我們繼續講有關DNS的域名服務器和解析過程。

七、名字服務器和區

存儲關於域名空間的信息的程序叫做名字服務器( name server)。名字服務器通常含有域名空間中某一部分的完整信息,這一部分我們稱爲區( zone), 區的內容是從文件或其他名字服務器中加載而來。 這時我們就說這個名字服務器對這個區具有權威( authority)。一個名字服務器也可以同時對多個區具有權威。

wKioL1iIQ--jwCwjAAEbqQWEMXI989.png

其實域和區是相對而言的,在一個域中,通過授權將全部或者部分管理內容下發給區進行管理。像在edu的域中,通過授權將berkeley.edu劃分爲區,稱爲berkeley.edu區。其實在berkeley.edu區中還可以將管理內容再次下放給相應的區,那麼berkeley.edu區就變成了下面區的域了。

名字服務器只會加載區而不是域。

wKiom1iIRBPjoMAFAAESvlw3x9I499.png

八、區數據文件

主名字服務器從本機中加載數據的文件叫做區數據文件( zone data file)。我們也

常常稱之爲數據文件( data file)或數據庫文件( database file)。輔名字服務器也

能從數據文件中加載區數據。輔名字服務器常常被配置成爲:將主名字服務器傳送

過來的區數據備份到本機的數據文件當中。如果後來輔名字服務器被“殺死”, 再重

啓動時,它會首先讀備份的數據文件,然後檢查它的區數據是否是最新的。這樣一

來,既避免了傳送還未更改的區數據,又爲在主名字服務器關閉時提供了數據源。

九、遞歸

wKioL1iIRLOTsXrxAAFRBDmXins766.png

遞歸查詢將大部分的解析負擔置於一個名字服務器上。遞歸或遞歸解析( recursive resolution)指的是名字服務器在收到遞歸查詢時所使用的解析過程。正如編程中的遞歸算法,名字服務器只重複一個簡單的過程(向遠程名字服務器提出查詢,再遵照指示)直到收到結果。在遞歸方式中,解析器向(本地)名字服務器發送一個關於某個域名信息的遞歸查

詢。被查詢的名字服務器必須返回所請求的數據或者是出錯說明,出錯可能包括所請求的類型數據不存在或所給域名不存在。名字服務器不能只將查詢者指向另一個名字服務器,因爲該查詢是遞歸的。當名字服務器收到一個它無法回答的遞歸查詢時,它將向“最有可能知道的”名字服務器進行查詢。最有可能知道的名字服務器是指與所要尋找域名最接近的區的權

威。例如,如果名字服務器收到一個要求查找域名girigiri.gbrmpa.gov.au的遞歸查詢,它首先檢查自己是否知道誰是girigiri.gbrmpa.gov.au 的權威名字服務器。如果它知道,就將查詢發往其中一個名字服務器。如果不知道,它就會檢查自己是否知道 gbrmpa.gov.au 的名字服務器,然後是 gov.au,再就是 au。默認值是根區,檢查到這兒一定會停止,因爲每個名字服務器都知道根名字服務器的域名和地址。這樣就會造成解析器的工作反覆,因爲服務器會一直返回結果給解析器,直到沒有數據返回或者找到相應的域名地址。

十、在權威名字服務器間選擇

BIND名字服務器使用一種稱爲 “往返時間” ( roundtrip time)或RTT的度量( metric)

對同一個區的權威名字服務器進行選擇。 往返時間是指遠程名字服務器響應查詢的時間長度。每次 BIND 名字服務器向遠程名字服務器發送查詢時,都啓動一個內部計時器。當它收到響應時就停止計時,記錄下該遠程名字服務器過了多長時間才響應。當名字服務器要選擇向哪個名字服務器發送查詢時,它就選擇具有最小 RTT的名字服務器。

在 BIND 名字服務器查詢某個名字服務器之前,先給它一個隨機的 RTT 值,不過這

個值比任何真實的 RTT 值都要小。這就保證在根據真實 RTT 值選擇之前, BIND 名字服務器會以隨機的順序查詢某個區的所有名字服務器。

十一、地址到名字的映射

在Internet 域名空間中就特地劃出一部分名字空間作爲此用,這部分名字空間被稱爲in-addr.arpa域。

in-addr.arpa域中的節點都是用數字來作標號的, 這些數字就是以點分字節 (dottedoctet)來表示的 IP 地址。(用點分隔四個0 到 255 之間的數字稱爲“點分字節”表示法,這是表示 32 位 IP 地址的常用方法。)比如說, in-addr.arpa 最多有 256 個子

域,分別和 IP地址中的第一個字節的每個可能值相對應。這些子域又可以有 256個自己的子域,分別和第二個字節每個可能的值相對應。最後,在第四層下面,與最後一個字節相連的資源記錄給出了這個IP地址對應的主機或網絡的全稱域名。 這個龐大的域: in-addr.arpa。

在讀域名的時候, IP 地址應該倒過來顯示,因爲名字是從葉子往根的方向讀的。比如說,如果 winnie.corp.hp.com 的 IP 地址是 15.16.192.152,那麼它相應於in-addr.arpa 子域的名字就是 152.192.16.15.in-addr.arpa,該 IP地址反向映射到域名 winnie.corp.hp.com。IP 地址是以與名字空間相反的方向來表示的, IP 地址的第一個字節在 in-addr.arpa域的底部。這樣一來,IP地址就能從上至下正確地讀出了。

wKiom1iIRPqiv0m6AADyHFEq25Y942.png

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