網域名稱系統

維基百科,自由的百科全書
(已重新導向自 DNS)
前往: 導覽搜尋
Crystal 128 yast dns.png

網域名稱系統英文Domain Name System,縮寫DNS)是網際網路的一項服務。它作為將網域名稱IP位址相互對映的一個分布式資料庫,能夠使人更方便的存取網際網路。DNS 使用TCPUDP53。當前,對於每一級網域名稱長度的限制是63個字元,網域名稱總長度則不能超過253個字元。

開始時,網域名稱的字元僅限於ASCII字元的一個子集。2008年,ICANN透過一項決議,允許使用其它語言作為網際網路頂級網域名稱的字元。使用基於Punycode碼的IDNA系統,可以將Unicode字串對映為有效的DNS字符集。因此,諸如「x.中國」這樣的網域名稱可以在位址列直接輸入,而不需要安裝外掛模組。但是,由於英語的廣泛使用,使用其他語言字元作為網域名稱會產生多種問題,例如難以輸入,難以在國際推廣等。

歷史[編輯]

DNS最早於1983年由保羅·莫卡派喬斯(Paul Mockapetris)發明;原始的技術規範在882號網際網路標準草案(RFC 882)中發行。1987年發行的第1034和1035號草案修正了DNS技術規範,並廢除了之前的第882和883號草案。在此之後對網際網路標準草案的修改基本上沒有涉及到DNS技術規範部分的改動。

早期的網域名稱必須以英文句號「.」結尾,當用戶存取 www.wikipedia.org 的HTTP服務時必須在址欄中輸入:http://www.wikipedia.org.,這樣DNS才能夠進行網域名稱解析。如今DNS伺服器已經可以自動補上結尾的句號。

記錄型別[編輯]

DNS系統中,常見的資源記錄型別有:

  • 主機記錄(A記錄):RFC 1035定義,A記錄是用於名稱解析的重要記錄,它將特定的主機名對映到對應主機的IP位址上。
  • 別名記錄(CNAME記錄): RFC 1035定義,CNAME記錄用於將某個別名指向到某個A記錄上,這樣就不需要再為某個新名字另外建立一條新的A記錄。
  • IPv6主機記錄(AAAA記錄): RFC 3596定義,與A記錄對應,用於將特定的主機名對映到一個主機的IPv6位址。
  • 服務位置記錄(SRV記錄): RFC 2782定義,用於定義提供特定服務的伺服器的位置,如主機(hostname),埠(port number)等。
  • NAPTR記錄: RFC 3403定義,它提供了正規表式方式去對映一個網域名稱。NAPTR記錄非常著名的一個應用是用於ENUM查詢。

技術實現[編輯]

概述[編輯]

DNS 透過允許一個名稱伺服器把他的一部分名稱服務(眾所周知的zone)「委託」給子伺服器而實現了一種階層的名稱空間。此外,DNS還提供了一些額外的資訊,例如系統別名、聯繫資訊以及哪一個主機正在充當系統組或域的信件樞紐。

任何一個使用IP的電腦網路可以使用DNS來實現他自己的私有名稱系統。儘管如此,當提到在公共的Internet DNS 系統上實現的網域名稱時,術語「網域名稱」是最常使用的。

這是基於386個全球範圍的「根網域名稱伺服器」(分成13組,分別編號為A至M)[1]。從這386個根伺服器開始,餘下的Internet DNS 名稱空間被委託給其他的DNS伺服器,這些伺服器提供DNS名稱空間中的特定部分。

軟體[編輯]

DNS系統是由各式各樣的DNS軟體所驅動的,包括:

網域名稱字元擴充功能[編輯]

Punycode是一個根據RFC 3492標準而製定的編碼系統,主要用於把網域名稱從地方語言所採用的Unicode編碼轉換成為可用於DNS系統的編碼。而該編碼是根據網域名稱相異字表(由IANA制定),Punycode可以防止所謂的IDN欺騙

網域名稱解析[編輯]

舉一個例子,zh.wikipedia.org作為一個網域名稱就和IP位址208.80.154.225相對應。DNS就像是一個自動的電話號碼簿,我們可以直接撥打wikipedia的名字來代替電話號碼(IP位址)。DNS在我們直接呼叫網站的名字以後就會將像zh.wikipedia.org一樣便於人類使用的名字轉化成像208.80.154.225一樣便於機器識別的IP位址。

DNS查詢有兩種方式:遞迴 和 迭代。DNS客戶端設定使用的DNS伺服器一般都是遞迴伺服器,它負責全權處理客戶端的DNS查詢請求,直到返回最終結果。而DNS伺服器之間一般採用迭代查詢方式。

以查詢 zh.wikipedia.org 為例:

  • 客戶端傳送查詢報文"query zh.wikipedia.org"至DNS伺服器,DNS伺服器首先檢查自身快取,如果存在記錄則直接返回結果。
  • 如果記錄老化或不存在,則
  1. DNS伺服器向根網域名稱伺服器傳送查詢報文"query zh.wikipedia.org",根網域名稱伺服器返回 .org 域的權威網域名稱伺服器位址,這一級首先會返回的是頂級網域名稱的權威網域名稱伺服器。
  2. DNS伺服器向 .org 域的權威網域名稱伺服器傳送查詢報文"query zh.wikipedia.org",得到 .wikipedia.org 域的權威網域名稱伺服器位址。
  3. DNS伺服器向 .wikipedia.org 域的權威網域名稱伺服器傳送查詢報文"query zh.wikipedia.org",得到主機 zh 的A記錄,存入自身快取並返回給客戶端。

WHOIS(網域名稱資料庫查詢)[編輯]

一個網域名稱的所有者可以透過查詢WHOIS資料庫[2]而被找到;對於大多數根網域名稱服務器, 基本的WHOIS由ICANN維護,而WHOIS的細節則由控制那個域的域序號產生器構維護。

對於240多個國家代碼頂級網域名稱(ccTLDs),通常由該網域名稱權威序號產生器構負責維護WHOIS。例如中國網際網路資訊中心(China Internet Network Information Center)負責 .CN 網域名稱的WHOIS維護,香港網際網路註冊管理有限公司(Hong Kong Internet Registration Corporation Limited) 負責 .HK 網域名稱的WHOIS維護,台灣網路資訊中心 (Taiwan Network Information Center) 負責 .TW 網域名稱的WHOIS維護。

爭議[編輯]

反對[編輯]

當前對於DNS系統的控制方式,常常受到指責。最常被攻擊的焦點是壟斷企業或准壟斷企業對DNS的濫用,例如VeriSign公司,以及對於頂級網域名稱的分配。

也有些人宣稱很多DNS伺服器軟體無法在動態IP分配上很好的工作,儘管這是某些特定實現的失敗而非協定本身的問題。

安全性[編輯]

此外,一些駭客透過偽造DNS伺服器將用戶引向錯誤網站,以達到竊取用戶隱私資訊的目的。大約有68000台這種DNS伺服器[3]

相關條目[編輯]

參考文獻[編輯]

  1. ^ (英文)Root Server Technical Operations Assn. [2014年1月28日]. 
  2. ^ http://whois.net/
  3. ^ JORDAN ROBERTSON. Use of Rogue DNS Servers on Rise. The Associated Press. [2008-02-18]. 

外部連結[編輯]