DNS(1) 基礎理論之一

此篇主要介紹DNS的概念、DNS層次體系、服務器端的解析方式。

 
DNS 是域名系統 (Domain Name System) 的縮寫,機器之間只能互相認識IP地址,它們之間的轉換工作稱爲域名解析,域名解析需要由專門的域名解析服務器來完成,DNS就是進行域名解析的服務器。
其實,域名的最終指向是IP。
DNS:Domain Name System 域名管理系統 域名是由圓點分開一串單詞或縮寫組成的,每一個域名都對應一個惟一的IP地址,這一命名的方法或這樣管理域名的系統叫做域名管理系統。
簡單的說DNS的作用就是,將域名翻譯爲ip的過程,就是dns解析。
 
DNS名稱的解析方法
主要有兩種:一是通過HOSTS文件解析,二是通過DNS服務器解析。
1.HOSTS文件
這是最初的一種查詢方式,它是由人工進行輸入、刪除、修改所有DNS名稱與IP地址對應數據。顯然網絡較大時是不適用的。
WIN2003中,HOSTS文件位於%SYSTEMROOT%System32DriversEtc目錄中。是一個純文本文件
如下圖所示就是一個Hosts文件的例子,我們在圖中可以很清楚地看到Hosts文件把www.baidu.com解析爲119.75.213.61
 
2.DNS服務器
DNS的設計要求使用分佈式結構,既可以允許主機分散管理數據,同時數據又可以被整個網絡所使用。管理的分散有利於緩解單一主機的瓶頸,緩解流量壓力,同時也讓數據更新變得簡單。DNS還被設計使用有層次結構的名稱空間爲主機命名,以確保主機域名的唯一性。
目前DNS採用的是分佈式的解析方案。具體是這樣的,互聯網管理委員會規定,域名空間的解析權都歸根服務器所有,也就是說,根服務器對互聯網上所有的域名都享有完全的解析權!
那這個根服務器不就相當於全世界唯一的Hosts文件了嗎?呵呵,不要着急,根服務器用了一個簡單的操作,就改變了這種結構。根服務器使用的是什麼操作?委派!下圖就是根服務器委派的示意圖,如下圖所示,根服務器把com結尾的域名解析委派給其他的DNS服務器,以後所有以com結尾的域名根服務器就都不負責解析了,而由被委派的服務器負責解析。而且根服務器還把以net,org,edu,gov等結尾的域名都一一進行了委派,這些被委派的域名被稱爲頂級域名,每個頂級域名都有預設的用途,例如com域名用於商業公司,edu域名用於教育機構,gov域名用於政府機關等等,這種頂級域名也被稱爲頂級機構域名。根服務器還針對不同國家進行了域名委派,例如把所有以CN結尾的域名委派給中國互聯網管理中心,以JP結尾的域名委派給日本互聯網管理中心,CN,JP這些頂級域名被稱爲頂級地理域名
 
這裏有2個很重要的概念,一個是完全合格域名FQDN,另一個就是委派delegation
FQDN
全域名(FQDN,Fully Qualified Domain Name)是指主機名加上全路徑,全路徑中列出了序列中所有域成員。全域名可以從邏輯上準確地表示出主機在什麼地方,也可以說全域名是主機名的一種完全表示形式。從全域名中包含的信息可以看出主機在域名樹中的位置。例如,myjj公司的Web服務器的全域名可以是www.myjj .com. ,而域名中以點結尾的則認爲是全域名。這種區別在理解和控制解析過程時是非常重要的。句點實際上指出了域名樹的根。
什麼是區域委派
一個完整的DNS區域包含以自己的DNS域名爲基礎命名空間的所有DNS命名空間的信息,當基於此DNS命名空間新建一個DNS區域時,新建的區域稱爲子區域。
例如,完整的a.ns.yb.com區域包含了以 .com爲基礎命名空間的所有DNS命名空間的信息,yb.com. 則稱爲.com的一個子區域,而 ns.yb.com. 被成爲 yb.com的子域。
 
默認情況下,DNS區域管理自己的子區域,並且子區域伴隨DNS區域一起進行復制和更新。不過,你可以將子區域委派給其他DNS服務器來進行管理,此時,被委派的服務器將承擔此DNS子區域的管理,而父DNS區域中只是具有此子區域的委派記錄。
區域委派適用於許多環境,常見的場景有:
  • 將某個子區域委派給某個對應部門中的DNS服務器進行管理;
  • DNS服務器的負載均衡,將一個大區域劃分爲若干小區域,委派給不同的DNS服務器進行管理;
  • 將子區域委派給某個分部或遠程站點。
你只能在主要區域中執行區域委派。對於任何一個被委派的子區域,父DNS區域中只是具有指向子區域中權威DNS服務器的A記錄和NS記錄,而實際的解析過程必須由委派到的子區域中的權威DNS服務器完成,即被委派到的DNS服務器上必須具有以被委派的子區域爲域名的主要區域。
總結要點:
  DNS名稱體系是有層次的,域是其層次結構的基本單位,任何一個域最多屬於一個上級域,但可以有多個或沒有下級域。在同一個域中不能有相同的下級域或主機名,但在不同的域中則可以有相同的下級域名或主機名。
  1.根域:(Root Domain)根域只有一個,根域是默認的,一般不需要表示出來。DNS命名空間都是由位於美國的INTERNIC負責管理域進行授權管理的。在根域服務器中並沒有保存全世界的所有的DNS名稱,其中只保存着頂級域的DNS服務器名稱與IP地址的對應關係。每一層的DNS服務器只負責管理其下一層域的DNS服務器名稱與IP地址的對應關係。
  2.頂級域(Top-Level Domain,TLD)
  在根域之下的第一級域便是頂級域。頂級域位於最右邊。頂級域有兩種類型的劃分方法:機構域和地理域。比如:.com是機構域 .cn是地理域。
  3.各級子域(Subdomain)
  除了根域和頂級域之外,其它域均稱爲子域。一個域可以有多個子域。
  4. 主機名(Host Name)
  位於最左邊的便是域主機名。
  5.反向域(in-addr.arpa)
  反向域使用一個IP地址的一個字節值來代表一個子域,這樣反向域in-addr.arpa就被劃分爲256個子域,每個子域代表該字節的一個可能值0-255。。根據同樣的方法,又可以將每一個子域進一步劃分爲256個子域。這樣,可以對每個子域繼續劃分,直到將全部的地址空間都在反向域中表示出來。
 
DNS名稱解析的查詢模式
DNS:域名系統 用戶在訪問互聯網時通過輸入www.yb.com 其實輸入的是一個計算機名,用戶計算機把它交給DNS服務器,服務器在接到請求後會迴應用戶計算機一個IP地址,用戶計算機在通過DNS服務器返回的IP地址訪問互聯網。如下圖所示
 
  上圖中,DNS客戶機查詢DNS服務器,要求獲得某臺計算機的IP,由於DNS服務器能夠根據自己DNS數據庫中對應查詢,所以它將自己資源記錄中的www.yb.com=1.1.1.1返回給客戶機。
  客戶機把所要訪問的計算機名交給DNS服務器,然後服務器開始查詢。DNS服務器查詢有3種:1、遞歸查詢 2、迭代查詢 3、轉發器
  1、遞歸查詢:遞歸即是有來有往
 
 
  當DNS客戶機發送給DNS服務器要求解析某個計算機名時,DNS服務器查找自己的數據庫,如果數據庫中有對應的域名和IP的映射信息,則把該域名所對應的IP地址返回給客戶機。如果服務器在自己的數據庫中沒有發現該資源記錄,則宣告查詢失敗
  2、迭代查詢:
迭代查詢指的是一臺DNS服務器發往令外一臺DNS服務器的查詢
迭代的意思就是若在某地查不到,該地就會告知查詢者其它地方的地址。讓查詢轉到其它地方去查
 
 
 
迭代查詢的詳細過程:
  ① 客戶機向本地DNS服務器發起請求,問www.yb.com的IP地址是多少?
  ② 本地DNS服務器收到DNS客戶機的迭代查詢,根服務器作出相應,提供靠近所提交域名的DNS服務器的IP地址
  ③ 本地DNS服務器向靠近所提交的DNS服務器發起迭代查詢,以此類推,直到本地DNS服務器收到所要查詢的資源記錄
  ④ DNS服務器收到資源記錄後發送給本地DNS服務器
  ⑤ 本地DNS服務器將資源記錄迴應給DNS客戶機
 
  3、轉發器
  轉發器通過內部DNS服務器把用戶的發來的請求(內部DNS服務器無法解析的請求)轉發給外部網絡上的DNS服務器進行解析
  ①客戶機向本地DNS服務器發起DNS請求:www.yb.com的IP是?
  ②本地DNS服務器自己的資源記錄中沒有該記錄,由於配置了轉發功能,把DNS客戶機發的請求轉發給了外網的DNS服務器
  ③外網DNS服務器把資源記錄返回給本地DNS服務器
  ④本地DNS服務器把該記錄迴應給客戶機
 
 
 
     下一篇主要介紹:DNS客戶端的解析過程
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章