2009/09/12

what is DNS?

1.什麼是DNS?

網域名稱系統(Domain Name Server)為網際網路一項核心服務,可作為IP位址與網域名稱(Domain Name)相互對映的一項資料庫,讓使用者更容易存取網際網路上的資源,而不需要記錄無意義的數字串。

2.DNS發展歷史
DNS最早於1983年由Paul Mockapetris發明,規範於RFC 882文件;1987年發表RFC1034與1035修正舊版後確立DNS規範,此後再無與DNS相關之改動。早期domain name的IP對應表是由hosts檔案紀錄,但電腦數量一多,管理上便會產生衝突、負載、以及一致性的問題。

3.Domain結構
Internet分為許多domain,而domain下又細分為許多domain。基本上每個網域內的分佈由一部主機負責管理,而集中的資料便整理為DNS服務。DNS是一種分散式名稱對應系統,類似樹狀結構,結構如下圖所示:

其中domain與IP間的對應關係分為兩種命名空間:

I.Domain => IP(forward mapping)
  此命名空間為上述結構,root分為sub domain,各個子網域再往下分為更多子網域。例如www.sinica.edu.tw => 140.109.4.130 代表負責sinica.edu.tw這個網域的DNS Server可查到一筆www => 140.109.4.130的紀錄。

II.IP => Domain(reverse mapping)
   在此命名空間裡,所有IP組成為一個arpa.in-addr的top domain,以上述例子反推,www.sinica.edu.tw => 140.109.4.130代表負責4.109.140.in-addr.arpa這個domain的DNS Server可查詢一筆記錄為130 => www.sinica.edu.tw。

然而有兩點必須注意:
A.Forward mapping與reverse mapping不一定同一server。
B.Domain與子網路並沒有一對一的關係,可以多子網對應一網域。

4.DNS解析運作原理
DNS主要運作方式有兩種:遞迴式(recursive)及交談式(iterative)。
I.遞迴式(Recursive Query)
  DNS Client僅給local DNS server一個詢問,然後local DNS就會不斷查到答案為止,最後再把結果傳回給Client端,這種方法為遞迴式。
右圖DNS Client端查詢www.sinica.edu.tw的IP位址,而local DNS由root name server問起,依序找到tw的name server,再回報找edu.tw的DNS,edu.tw回報給local找尋sinica.edu.tw的name server,最後獲得IP後,local server回報IP給client端結束查詢。
II.交談式(Iterative Query)
   右圖的方法中,local DNS對其他DNS發出詢問後獲得進一步線索,發問者(local DNS)再根據線索進一步找出答案,結束查詢。一般而言root name server因考慮負載問題,只接受iterative query。

5.DNS管理工具 – nslookup
Nslookup是針對DNS Server測試及troubleshooting的工具,也能檢視DNS資料庫中各資料的類型屬性。其中最常見的資料類型如下:

查詢不同資料類型:資源記錄檔中的資源記錄,資源記錄分成網域名稱,存活時間(TTL),種類(CLASS),型態(TYPE)與內容(VALUE)等五個欄位。

SOA:Start of Authority 型態, 用來描述一個 zone 授權的開始
A:主機IP,32位元整數
MX:郵件交換
CNAME:別名,網域名稱
HNFO:描述主機,以ASCII說明CPU與OS
NS:Name Server型態

使用nslookup亦可查詢DNS Server的各項紀錄,或者列出區域內hostname對應IP以及區域資料。

0 Comments:

張貼留言