本页使用了标题或全文手工转换

域名系统

维基百科,自由的百科全书
跳到导航 跳到搜索
Crystal 128 yast dns.png

'網域名稱系統英文Domain Name System,縮寫 'DNS)是互聯網的一項服務。它作為將域名IP地址相互映射的一個分佈式數據庫,能夠使人更方便地訪問互聯網。 DNS使用TCPUDP端口53[1]。當前,對於每一級域名長度的限制是63個字符,域名總長度則不能超過253個字符。

開始時,域名的字符僅限於ASCII字符的一個子集。 2008年,ICANN通過一項決議,允許使用其它語言作為互聯網頂級域名的字符。使用基於Punycode碼的IDNA系統,可以將Unicode字符串映射為有效的DNS字符集。因此,諸如“XXX.臺灣”、“XXX.中國”的域名可以在地址欄直接輸入並訪問,而不需要安裝插件。但是,由於英語的廣泛使用,使用其他語言字符作為域名會產生多種問題,例如難以輸入,難以在國際推廣等。

歷史[编辑]

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系統上實現的域名時,術語“域名”是最常使用的。

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

軟件[编辑]

DNS系統是由各式各樣的DNS軟件所驅動的,例如:

國際化域名[编辑]

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

域名解析[编辑]

舉一個例子,zh.wikipedia.org 作為一個域名就和IP地址198.35.26.96 相對應。 DNS就像是一個自動的電話號碼簿,我們可以直接撥打198.35.26.96 的名字zh.wikipedia.org 來代替電話號碼(IP地址)。 DNS在我們直接呼叫網站的名字以後就會將像zh.wikipedia.org 一樣便於人類使用的名字轉化成像198.35.26.96 一樣便於機器識別的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數據庫[3]而被找到;對於大多數根域名伺服器,基本的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服务器大约有68000台[4]

相关条目[编辑]

参考文献[编辑]

  1. ^ (英文)P. Mockapetris. [https ://tools.ietf.org/html/rfc1035 RFC 1035 - DOMAIN NAMES - IMPLEMENTATION AND SPECIFICATION] 请检查|url=值 (帮助): Page 32. 1987-11. The Internet supports name server access using TCP [RFC-793] on server port 53 (decimal) as well as datagram access using UDP [RFC-768] on UDP port 53 (decimal). 
  2. ^ (英文)Root Server Technical Operations Assn. [2014年1月28日]. 
  3. ^ https://whois.net/
  4. ^ JORDAN ROBERTSON. Use of Rogue DNS Servers on Rise. The Associated Press. [2008-02-18]. (原始内容存档于2008-02-17). 

外部链接[编辑]