DNS服務

DNS簡介

  DNS(英文全稱:Domain Name System域名系統)是互聯網的一項服務。它是將域名和ip地址相互映射的一個分佈式數據庫

  網絡通訊大部分是基於TCP/IP的,而TCP/IP是基於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網站。

  我們訪問網站時,在瀏覽器地址欄中輸入域名,就能看到所需要的頁面,這是因為有一個叫「DNS服務器」的計算機自動把我們的域名「翻譯」成了相應的IP地址,然後調出IP地址所對應的網頁。

域名系統

  域名系統在全世界保持唯一性,也就是全球通用一份。

  •   每一個域名都是一個標號序列,用字母(A-Z,a-z,大小寫等價)、數字(0-9)和連接符(-)組成。
  •   標號序列總長度不能超過255個字符,它由點號分割成一個個的標號。
  •   每個標號應該在63個字符之內,每個標號都可以看成一個層次的域名。
  •   級別最低的域名寫在左邊,級別最高的域名寫在右邊。

  域名服務主要是基於UDP實現的,服務器的端口號為53

域名服務器

  域名服務器就是裝有域名系統的主機。

分類 作用
根域名服務器 最高層次的域名服務器,本地域名服務器解析不了的域名就會向其求助
頂級域名服務器 負責管理在該頂級域名服務器下註冊的二級域名
權限域名服務器 負責一個區的域名解析工作
本地域名服務器 當一個主機發出DNS查詢請求時,這個查詢請求首先發給本地域名服務器

  註:一個域名服務器所負責的範圍,或者說有管理權限的範圍,就稱為區。

  •   每個層的域名上都有自己的域名服務器,最頂層的是根域名服務器。
  •   每一級域名服務器都知道下級域名服務器的IP地址。
  •   為了提高安全性, 每一級至少設置兩個或以上的域名服務器。

 域名解析過程

  當一個用戶在地址欄輸入www.baidu.com時,DNS解析過程大致如下:

  1.瀏覽器先檢查自身緩存中有沒有被解析過的這個域名所對應的ip地址,如果有(也就是命中),解析過程結束。

  瀏覽器對緩存域名的大小和緩存時間也是有限制的,通常情況下為幾分鐘到幾小時不等,域名緩存時間可以通過TTL屬性設置,如果緩存時間過長,一旦域名解析到IP地址有變化,會導致客戶無法解析到變化後的IP地址,導致該域名不能正常解析;反之,如果緩存時間過短,會導致每次用戶訪問網站時都要重新解析一次域名,所以需要設置合理的緩存時間。

  2.如果瀏覽器緩存中沒有,瀏覽器會檢查操作系統緩存(也就是hosts文件)中有沒有對應的解析映射。

  在Windows中可找到C:\Windows\System32\drivers\etc\hosts文件來設置,如果你在這裡指定了一個域名對應的ip地址,那瀏覽器會使用這個域名所映射的ip地址。

  但是這種操作系統級別的域名解析規程也被很多黑客利用,通過修改你的hosts文件里的內容把特定的域名解析到他指定的ip地址上,造成所謂的域名劫持。所以現在的hosts文件都被設置為只讀,防止這個文件被輕易修改。

  3.如果至此還沒有命中域名,本機才會真正的請求本地域名服務器(LDNS)來解析這個域名。

  本地域名服務器一般由網絡供應商所提供,這台服務器一般在你的城市的某個角落,距離你不會很遠,並且這台服務器的性能都很好,一般都會緩存域名解析結果,大約80%的域名解析到這裡就完成了。

  本地域名服務器(LDNS)會檢查緩存中有沒有該域名所對應的ip地址,如果有會返回給本機,解析結束。

  4.如果本地域名服務器(LDNS)仍然沒有命中, 本地域名服務器(LDNS)會請求根域名服務器來解析。

  5.根域名服務器返回給本地域名服務器(LDNS)一個該域名應該查詢的頂尖域名服務器的地址。

  6.此時本地域名服務器(LDNS)再根據上一步返回的頂尖域名服務器的地址,請求頂尖域名服務器來解析。

  7.接受請求的頂尖域名服務器查找並返回這個域名對應的權限域名服務器的地址,這個權限域名服務器就是要請求的網站所註冊的域名服務器。

  8.然後本地域名服務器(LDNS)再根據上一步返回的權限域名服務器的地址,請求權限域名服務器來解析。

  權限域名服務器來解析根據映射關係表找到該域名所對應的目標ip地址,返回給本地域名服務器(LDNS)。

  9.本地域名服務器(LDNS)緩存該域名和對應的ip地址,然後根據緩存來解析該域名。

  10.本地域名服務器(LDNS)把解析的結果返回給用戶,用戶根據TTL值緩存到本地瀏覽器緩存中,域名解析過程至此結束。