域名系統

域名系統

域名系統(英文:Domain Name System,縮寫:DNS)是網際網路的一項服務。它作為將域名和IP地址相互映射的一個分散式資料庫,能夠使人更方便地訪問網際網路。DNS使用UDP埠53。當前,對於每一級域名長度的限制是63個字元,域名總長度則不能超過253個字元。

基本介紹


域名系統(Domain Name System,DNS)是Internet上解決網上機器命名的一種系統。就像拜訪朋友要先知道別人家怎麼走一樣,Internet上當一台主機要訪問另外一台主機時,必須首先獲知其地址,TCP/IP中的IP地址是由四段以“.”分開的數字組成(此處以IPv4的地址為例,IPv6的地址同理),記起來總是不如名字那麼方便,所以,就採用了域名系統來管理名字和IP的對應關係。
雖然網際網路上的節點都可以用IP地址惟一標識,並且可以通過IP地址被訪問,但即使是將32位的二進位IP地址寫成4個0~255的十位數形式,也依然太長、太難記。因此,人們發明了域名(Domain Name),域名可將一個IP地址關聯到一組有意義的字元上去。用戶訪問一個網站的時候,既可以輸入該網站的IP地址,也可以輸入其域名,對訪問而言,兩者是等價的。例如:微軟公司的Web伺服器的IP地址是207.46.230.229,其對應的域名是www.microsoft.com,不管用戶在瀏覽器中輸入的是207.46.230.229還是www.microsoft.com,都可以訪問其Web網站。
一個公司的Web網站可看作是它在網上的門戶,而域名就相當於其門牌地址,通常域名都使用該公司的名稱或簡稱。例如上面提到的微軟公司的域名,類似的還有:IBM公司的域名是www.ibm.com、Oracle公司的域名是www.oracle.com、Cisco公司的域名是www.cisco.com等。當人們要訪問一個公司的Web網站,又不知道其確切域名的時候,也總會首先輸入其公司名稱作為試探。但是,由一個公司的名稱或簡稱構成的域名,也有可能會被其他公司或個人搶注。甚至還有一些公司或個人惡意搶注了大量由知名公司的名稱構成的域名,然後再高價轉賣給這些公司,以此牟利。已經有一些域名註冊糾紛的仲裁措施,但要從源頭上控制這類現象,還需要有一套完整的限制機制,這個還沒有。所以,儘早註冊由自己名稱構成的域名應當是任何一個公司或機構,特別是那些著名企業必須重視的事情。有的公司已經對由自己著名品牌構成的域名進行了保護性註冊。

名字空間


層次結構

名字空間是指定義了所有可能的名字的集合。域名系統的名字空間是層次結構的,類似Windows的文件名。它可看作是一個樹狀結構,域名系統不區分樹內節點和葉子節點,而統稱為節點,不同節點可以使用相同的標記。所有節點的標記只能由3類字元組成:26個英文字母(a~z)、10個阿拉伯數字(0~9)和英文連詞號(-),並且標記的長度不得超過22個字元。一個節點的域名是由從該節點到根的所有節點的標記連接組成的,中間以點分隔。最上層節點的域名稱為頂級域名(TLD,Top-Level Domain),第二層節點的域名稱為二級域名,依此類推。

分配和管理

域名由網際網路域名與地址管理機構(ICANN,Internet Corporation for Assigned Names and Numbers)管理,這是為承擔域名系統管理、IP地址分配、協議參數配置,以及主伺服器系統管理等職能而設立的非盈利機構。ICANN為不同的國家或地區設置了相應的頂級域名,這些域名通常都由兩個英文字母組成。例如:.uk代表英國、.fr代表法國、.jp代表日本。中國的頂級域名是.cn,.cn下的域名由CNNIC進行管理。
CNNIC規定.cn域下不能申請二級域名,三級域名的長度不得超過20個字元,並且對名稱還做了下列限制:
① 註冊含有“CHINA”、“CHINESE”、“CN”和“NATIONAL”等字樣的域名要經國家有關部門(指部級以上單位)正式批准。
② 公眾知曉的其他國家或者地區名稱、外國地名和國際組織名稱不得使用。
③ 縣級以上(含縣級)行政區劃名稱的全稱或者縮寫的使用要得到相關縣級以上(含縣級)人民政府正式批准。
④ 行業名稱或者商品的通用名稱不得使用。
⑤ 他人已在中國註冊過的企業名稱或者商標名稱不得使用。
⑥ 對國家、社會或者公共利益有損害的名稱不得使用。
⑦ 經國家有關部門(指部級以上單位)正式批准和相關縣級以上(含縣級)人民政府正式批准,是指相關機構要出據書面文件表示同意××××單位註冊×××域名。如:要申請beijing.com.cn域名,則要提供北京市人民政府的批文。

頂級類別域名

除了代表各個國家頂級域名之外,ICANN最初還定義了7個頂級類別域名,它們分別是.com、.top、.edu、.gov、.mil、.net、.org、.com、.top用於企業,.edu用於教育機構,.gov用於政府機構,.mil用于軍事部門,.net用於網際網路路及信息中心等,.org用於非盈利性組織。
隨著網際網路的發展,ICANN又增加了兩大類共7個頂級類別域名,分別是.aero、.biz、coop、.info、.museum、.name、.pro。其中,.aero、.coop、.museum是3個面向特定行業或群體的頂級域名:.aero代表航空運輸業,.coop代表協作組織,.museum代表博物館;.biz、.info、.name、.pro是4個面向通用的頂級域名:.biz表示商務,.name表示個人,.pro表示會計師、律師、醫師等,.info則沒有特定指向。

域名系統組成


資源文件

早期網際網路上僅有數百台主機,那時候的域名與IP地址對應只需簡單地記錄在一個hosts.txt文件中,這個文件由網路信息中心(NIC,Network Information Center)負責維護。任何想添加到網際網路上的主機的管理員都應將其名字和地址E-mail給NIC,這個對應就會被手工加到hosts.txt文件中。每個主機管理員去NIC下載最新的hosts.txt文件放到自己的主機上,就完成了域名列表的更新。域名解析只是一個檢查本機文件的本地過程。
隨著網際網路上主機數量的膨脹,原有的方式已經無法滿足要求。現有域名系統於20世紀80年代開始投入使用。域名系統採用層次結構的名字空間,並且原來龐大的對應表被分解為不相交的、分佈在網際網路中的子表,這些子表稱為資源文件。

域名解析

前面已經說明了域名系統名字空間的層次結構,下面來具體看一下這一結構是如何同域名系統的域名伺服器(DNS,Domain Name Server)結合來實現域名解析的。
首先,根據域名系統域名空間的層次結構將其按子樹劃分為不同的區域,每個區域可看作是負責層次結構中這一部分節點的可管理的權力實體。例如,整個域的頂層區域由ICANN負責管理,一些國家域名及其下屬的那些節點又構成了各自的區域,像.cn域就由CNNIC負責管理。而.cn域下又被劃分為一些更小的區域,例如.fudan.edu.cn由復旦大學網路中心負責管理。
其次,每個區域必須有對應的域名伺服器,每個區域中包含的信息存儲在域名伺服器上。一個區域中可有兩個或多個域名伺服器,這樣即使其中一個域名伺服器出了故障,另一個域名伺服器仍然可以正常提供信息。一個域名伺服器也可以同時管轄多個區域。域名伺服器在接到用戶發出的請求后查詢自身的資源記錄集合,返回用戶想要得到的最終答案,或者當自身的資源記錄集合中查不到所需要的答案時,返回指向另外一個域名伺服器的指針,用戶將繼續向那個域名伺服器發出請求。所以說,域名伺服器不需要記錄所有下屬域名和主機的信息,對於其中的子域(如果存在),只需要知道子域的域名伺服器即可。
資源記錄是一個域名到值的綁定,它包括以下欄位:域名、值、類型、分類和生命期。域名欄位和值欄位分別用來表示解析的內容和解析返回的結果。類型欄位代表了值的種類:類型為A代表值欄位是一個IP地址,即用戶所要的最終答案;類型為NS代表值欄位是另一個域名伺服器的域名,該域名伺服器能夠知道如何解析域名欄位所指定的域名;類型為CNAME代表值欄位是由域名所指定的主機的一個別名;類型為MX代表值欄位是一個郵件伺服器的域名,該郵件伺服器接收由域名欄位所指定的域的郵件;類型PTR用於域名反解等。分類欄位允許指定其他的記錄類型。生命期欄位用於指出該資源記錄的有效期是多少。為減少域名解析時間,域名伺服器會緩存一些曾經查詢過的、來自其他域名伺服器的資源記錄。由於這些資源記錄會因為更改而失效,因此域名伺服器設置了生命期,到期的資源記錄會被清除出緩存。
根域名伺服器知道所有頂級域名的域名伺服器,對應於每個頂級域名,它都有兩條資源記錄:一條是NS資源記錄,域名欄位是該頂級域名,值欄位是該頂級域名解析的域名伺服器的域名;另一條是A資源記錄,用來指明該域名伺服器的域名對應的IP地址。綜合使用這兩條記錄,就可以知道對該域下的某個域名解析,應該繼續去哪個IP地址的域名伺服器尋找。第二層的域名伺服器類似地存放各個第三層域名伺服器的指針。第三層的域名伺服器會出現A、CNAME、MX等類型的資源記錄。每個域名伺服器都有根域名伺服器的地址記錄。
最後,一個需要域名解析的用戶先將該解析請求發往本地的域名伺服器。如果本地的域名伺服器能夠解析,則直接得到結果,否則本地的域名伺服器將向根域名伺服器發送請求。依據根域名伺服器返回的指針再查詢下一層的域名伺服器,依此類推,最後得到所要解析域名的IP地址。

域名反解

域名反解是指給出一個IP地址,找出其對應的域名,這也是利用DNS來實現的。舉個例子,假設一個要反解的IP地址為202.120.225.9,系統將其改寫為9.225.120.202. in-addr.arpa,然後按域名解析的方式查詢。這需要在被查詢主機的本地域名伺服器上有一條對應於9.225.120.202.in-addr.arpa的資源記錄,類型是PTR,值是其域名。

中文網址與中文域名


中文網址

由於網際網路發源於美國,因此域名也是由英文字母組成的,對於這種英文表示方式,中國人並不適應,而且它也很難融合。實際上,中國的企業或組織在網上登記的名稱與其真實名稱往往大相徑庭。例如,大家都知道《解放日報》,但知道它的域名www.jfdaily.com的,恐怕不多。傳統經濟正同網路相融合,如果客戶無法直接根據企業名稱、品牌猜出其域名,那麼企業原有的品牌優勢就不能直接延伸到網上,這是大部分中國企業,甚至是進駐國內市場的外企都會碰到的一個尷尬問題。更尷尬的是,為了不被人惡意搶注、冒充,進而影響自身形象,一個企業可能要同時註冊很多相近的域名,例如www.jiefangribao.com、www.jiefangdaily. com、www.liberationdaily.com等,這將是一筆很大的開銷。
鑒於此,國內開始探索網路地址的中文化。1999年,www.3721.com在國內首先提出了中文網址的概念。使用中文網址,用戶在訪問時不必再記憶繁瑣、冗長的英文域名,可以不需要再輸入www.、.com等前後綴,中文的企業名稱或產品名稱就可以直接作為網址,大大拓展了品牌的影響力。例如,可以直接使用“人民日報”、“新華社”、“古墓麗影”等。www.3721.com又進一步推出了網路實名,網路實名提供了中文網址、英文網址、拼音網址和數字網址等4種訪問方式。
使用中文網址需要安裝一個客戶端軟體。運行該軟體后,只要在瀏覽器地址欄輸入中文、拼音字頭,甚至股票代碼,就能直接到達相應網頁,無需去任何網站搜索。

中文域名

2000年年初,CNNIC推出了中文域名註冊試驗系統。信息產業部於2000年11月發布了《關於網際網路中文域名管理的通告》,通告對中文域名的註冊體系進行了規範。2001年2月,CNNIC在其網站上宣布中文通用域名頂級伺服器已經開始提供解析服務。
CNNIC的中文域名將同時提供兩種方案:一種是以.cn結尾的中文域名,另一種是純中文域名,形如信息中心。網路、聯想。公司,其中的點號也可以用中文的句號代替。整套系統同現有域名系統兼容,並且支持簡繁體的完全互通解析。另外,中文域名註冊后還可以支持中文電子郵件地址功能和中文虛擬主機等應用服務。
中文網址和中文域名都是為了解決中國人不適應網際網路用英文方式表示而提出的解決方案。兩者看上去很相似,但是本質上卻有很大差別。首先,中文網址以域名為基礎。舉例來說,假如要乘計程車去中央電視台,你可以告訴司機它的門牌號,這相當於域名,你也可以直接告訴司機說“我要去電視台”,這就好比網址。但不可否認,門牌號是基礎,而直接說的“電視台”算是一個別稱。其次,在層次結構上,中文網址是一層平行結構,沒有域和子域的概念區分;而中文域名則保持了域名的層次結構特性,一個大的機構可以為其各個部門建立中文域名體系,例如:某專業. 某系. 某大學. 中國。最後,中文域名可以支持其他應用服務,例如E-mail等,而中文網址則適合於智能化的搜索。

結構運行


Internet域名系統是一個樹型結構,其形式如下:com(企業)、net(網路運行服務機構)、 gov(政府機構)、org(非贏利性組織)、edu(教育)域由InterNic管理,其註冊、運行工作由Network Solution公司負責。
新頂級域名

域名系統

7個新的頂級域名分別是:firm(公司企業)、shop(商店)、web(希望突出萬維網活動的實體)、arts(主要從事娛樂文化活動的實體)、rec(主要從事娛樂文化實體)、info(主要從事信息服務實體)、nom(一些希望在網際網路上發布個人信息的人)將於1998年啟動,這些域名的註冊服務由多家機構承擔,CNNIC也有幸成為註冊機構之一;按照ISO-3166標準制定的國家域名,一般由各國的NIC(Network Information Center,網路信息中心)負責運行。我國域名體系分為類別域名和行政區域名兩套。

類別域名

類別域名是指圖中最下面一行前面的六個。
域名,分別依照申請機構的性質依次分為:AC-科研機構;COM、TOP-工、商、金融等專業;EDU-教育機構;GOV-政府部門;NET-網際網路路、接入網路的信息中心和運行中心;ORG-各種非盈利性的組織。

行政區域名

行政區域名是按照我國的各個行政區劃分而成的,其劃分標準依照國家技術監督局發布的國家標準而定,包括“行政區域名”34個,適用於我國的各省、自治區、直轄市,分別為:BJ-北京市;SH-上海市;TJ-天津市;CQ-重慶市;HE-河北省;SX-山西省;NM-內蒙古自治區;LN-遼寧省;JL-吉林省;HL-黑龍江省;JS-江蘇省;ZJ-浙江省;AH-安徽;FJ-福建省;JX-江西省;SD-山東省;HA-河南省;HB-湖北省;HN-湖南省;GD-廣東省;GX-廣西壯族自治區;HI-海南省;SC-四川省;GZ-貴州省;YN-雲南省;XZ-西藏自治區;SN-陝西省;GS-甘肅省;QH-青海省;NX-寧夏回族自治區;XJ-新疆維吾爾自治區;TW-台灣;HK-香港;MO-澳門。
CN域名除edu點cn由CernNic(教育網)運行外,其他均由CNNIC運行。

形式


域名伺服器通常會有兩種形式:權威域名伺服器,以及緩存域名伺服器。
權威域名伺服器
下列情況需要有權威域名伺服器:想要向全世界提供DNS信息,並對請求給出權威應答。註冊了類似 exampleorg的域,而需要將IP指定到其下的主機名上。某個IP地址塊需要反向DNS項(IP 到主機名)。備份伺服器,或常說的從(slave) 伺服器,會在主伺服器出現問題或無法訪問時來應答查詢請求。
緩存域名伺服器
下列情況需要有緩存域名伺服器:本地的DNS伺服器能夠緩存,並比直接向外界的域名伺服器請求更快地得到應答。
當有人查詢www.FreeBSDorg時,解析器通常會向上級ISP的域名伺服器發出請求,並獲得回應。如果有本地的緩存DNS伺服器,查詢只有在第一次被緩存DNS伺服器發到外部世界。其他的查詢不會發向區域網外,因為它們已經有在本地的緩存了。

域名解析


概述

就像我們初次拜訪一個人一樣,我們要知道人家的門牌號,然後按照地址去找。在Internet上只知道某台機器的域名還是不夠的,還要有辦法去找到那台機器。尋找這台機器的任務由網上一種被稱為域名伺服器的設備來完成的,而完成這一任務的過程就稱為域名解析。

過程

當一台機器a向其域名伺服器A發出域名解析請求時,如果A可以解析,則將解析結果發給a,否則,A將向其上級域名伺服器B發出解析請求,如果B能解析,則將解析結果發給a,如果B無法解析,則將請求發給再上一級域名伺服器C,如此下去,直至解析到為止。

伺服器


DNS的全稱是Domain Name Server,一種程序,它保存了一張域名(domain name)和與之相對應的IP地址 (IP address)的表,以解析消息的域名。域名是Internet上某一台計算機或計算機組的名稱,用於在數據傳輸時標識計算機的電子方位(有時也指地理位置)。域名是由一串用點分隔的名字組成的,通常包含組織名,而且始終包括兩到三個字母的後綴,以指明組織的類型或該域所在的國家或地區。
之所以域名解析不需要很長時間,是因為上網接入商,比如通過陽光DNS接入北京電信,河南電信等,為了要加速用戶打開網頁的速度,通常在他們的DNS伺服器中緩存了很多域名的DNS記錄,再根據用戶所在地做出網路分配。這樣這個接入商的用戶要打開某個網頁時,接入商的伺服器不需要去查詢域名資料庫,而是把自己緩存中的DNS記錄直接使用,從而加快用戶訪問網站的速度。這是其最大的優點。
缺點是上網接入商ISP的緩存會存儲一段時間,只在需要的時候才更新,而更新的頻率沒有什麼標準。有的ISP可能1小時更新一次,有的可能長達一兩天才更新一次。
所以新註冊的域名一般來說解析反倒比較快。因為所有的ISP都沒有緩存,用戶訪問時ISP都是要查詢域名資料庫,得到最新的DNS數據。
而老域名如果更改了DNS記錄,但世界各地的ISP緩存數據卻並不是立即更新的。這樣不同ISP下的不同用戶,有的可以比較快的獲取新的DNS記錄,有的就要等ISP緩存的下一次更新。