DNS原理及其解析過程【精彩剖析】
DNS原理及其解析過程
精彩剖析
網絡通信大部分是基於TCP/IP的,而TCP/IP是基於IP地址的,因此計算機在網絡上進行通信時只能識別如「202.96.134.133」之類的IP地址,而不能認識域名。咱們沒法記住10個以上IP地址的網站,因此咱們訪問網站時,更多的是在瀏覽器地址欄中輸入域名,就能看到所須要的頁面,這是由於有一個叫「DNS服務器」的計算機自動把咱們的域名「翻譯」成了相應的IP地址,而後調出IP地址所對應的網頁。
什麼是DNS?
DNS( Domain Name System)是「域名系統」的英文縮寫,是一種組織成域層次結構的計算機和網絡服務命名系統,它用於TCP/IP網絡,它所提供的服務是用來將主機名和域名轉換爲IP地址的工做。DNS就是這樣的一位「翻譯官」,它的基本工做原理可用下圖來表示。
DNS域名稱
域名系統做爲一個層次結構和分佈式數據庫,包含各類類型的數據,包括主機名和域名。DNS數據庫中的名稱造成一個分層樹狀結構稱爲域命名空間。域名包含單個標籤分隔點,例如:im.qq.com。
徹底限定的域名 (FQDN) 惟一地標識在 DNS 分層樹中的主機的位置,經過指定的路徑中點分隔從根引用的主機的名稱列表。 下圖顯示與主機稱爲 im 內 qq.com DNS 樹的示例。 主機的 FQDN 是 im.qq.com。
DNS 域的名稱層次結構
DNS域名稱空間的組織方式
按其功能命名空間中用來描述 DNS 域名稱的五個類別的介紹詳見下表中,以及與每一個名稱類型的示例。
DNS 和 Internet 域
互聯網域名系統由名稱註冊機構負責維護分配由組織和國家/地區的頂級域在 Internet 上進行管理。 這些域名按照國際標準 3166。 一些不少現有縮寫,保留以供組織中,以及兩個字母和三個字母的國家/地區使用的縮寫使用下表所示。一些常見的DNS域名稱以下圖:
資源記錄
DNS 數據庫中包含的資源記錄 (RR)。 每一個 RR 標識數據庫中的特定資源。咱們在創建DNS服務器時,常常會用到SOA,NS,A之類的記錄,在維護DNS服務器時,會用到MX,CNAME記錄。
常見的RR見下圖:
Dns服務的工做過程
當 DNS 客戶機須要查詢程序中使用的名稱時,它會查詢本地DNS 服務器來解析該名稱。客戶機發送的每條查詢消息都包括3條信息,以指定服務器應回答的問題。
● 指定的 DNS 域名,表示爲徹底合格的域名 (FQDN) 。
● 指定的查詢類型,它可根據類型指定資源記錄,或做爲查詢操做的專門類型。
● DNS域名的指定類別。
對於DNS 服務器,它始終應指定爲 Internet 類別。例如,指定的名稱能夠是計算機的徹底合格的域名,如im.qq.com,而且指定的查詢類型用於經過該名稱搜索地址資源記錄。
DNS 查詢以各類不一樣的方式進行解析。客戶機有時也可經過使用從之前查詢得到的緩存信息就地應答查詢。DNS 服務器可以使用其自身的資源記錄信息緩存來應答查詢,也可表明請求客戶機來查詢或聯繫其餘 DNS 服務器,以徹底解析該名稱,並隨後將應答返回至客戶機。這個過程稱爲遞歸。
另外,客戶機本身也可嘗試聯繫其餘的 DNS 服務器來解析名稱。若是客戶機這麼作,它會使用基於服務器應答的獨立和附加的查詢,該過程稱做迭代,即DNS服務器之間的交互查詢就是迭代查詢。
DNS 查詢的過程以下圖所示。
從客戶端到本地DNS服務器是屬於遞歸查詢,而DNS服務器之間就是的交互查詢就是迭代查詢。
附錄:
本地DNS配置轉發與未配置轉發數據包分析
一、DNS服務器不設轉發
在192.168.145.228服務器上安裝上wireshark軟件,並打開它,設置數據包爲UDP過濾,在192.168.145.12客戶機上用nslookup命令查詢一下www.sohu.com,立刻能夠看到本地DNS服務器直接查全球13臺根域中的某幾臺,而後一步步解析,經過遞代的方式,直到找到www.sohu.com對應的IP爲220.181.118.87。
本地DNS服務器獲得www.sohu.com的IP後,它把這個IP返回給192.168.145.12客戶機,完成解析。
二、DNS服務器設置轉發
因www.sohu.com域名在第一步的驗證中使用過,有緩存,爲了避免受上步實驗干擾,咱們在客戶機上192.168.145.12上nslookup www.baidu.com。從圖上看,本地DNS把請求轉發至192.168.133.10服務器,133.10服務器把獲得的IP返回給本地DNS,而後本地DNS再把IP告訴DNS客戶機,完成解析。