DNS服務器(一):基本原理

一、簡介

網絡中的主機通信是通過IP地址來實現的,通常IPv4的地址是四個數字加點組成,如果和每臺主機通信我們都要去記憶IP地址的話,這通常對於人類來講是相當痛苦的。於是網絡上就有了一套爲了解決這個問題的方案出現了,也就是DNS主機名稱解析系統。它是一套能夠將數以千萬計的IP地址通過查詢DNS數據庫,輕鬆的轉化成與之對應的一串單詞字符串,也就是主機名,網絡上稱之爲域名,相對於IP地址,用單詞組成的域名明顯好記多了。


二、DNS域名解析系統的層級關係

DNS域名解析系統是有層級關係的,整個層級關係的表現形式就像一棵大樹,每一層,我們稱之爲域。最頂層的域我們通常叫作根域,用點號表示,第二層通常用com、net、edu、gov、mil、org....,這層我們叫作頂級域,往下第三層,也就是我們經常見到的域名了,如,51cto.com,這一層我們稱之爲二級域,當二級域加上www後,就是第四層了,就這樣一直往下細分。域名的寫法通常是由小到大,從左往右書寫,用點連接,最後加點表示根,整個結構如下圖所示:

wKioL1MhDxLinreBAAEpIW-0pxM039.jpg


三、DNS的資源記錄

我們要查詢這些龐大數據當然要有專門的主機負責這些工作了,提供查詢、存儲DNS數據服務的主機我們稱之爲DNS服務器。網絡上爲了方便域名的註冊、管理、解析,將DNS域名映射到特定類型的資源信息,我們稱之爲資源記錄。資源記錄是有類型的,

資源記錄類型
SOANSMXAPTRAAAACNAME
起始授權域名服務器郵件交換器域名-->IPIP-->域名域名-->IPv6
別名記錄

特點:

只能有一個,而且必須是第一個

特點:

用於表示DNS服務器的域名地址

特點:

用於一個域下的郵件使用

特點:

我們經常用到的就是它了

特點:

和A記錄相反,用於反向解析

特點:

基本不用

特點:

用於作A記錄的域名的別名,


四、DNS服務器的工作原理

假設我們以wubinary.blog.51cto.com爲例:

第一步:當我們使用DNS客戶端請求查詢此域名的的A記錄時,DNS服務器首先會判斷所要查詢域名是屬於哪個區域,是否在自己的管轄範圍,假設此次域名不在管轄範圍。

第二步:爲了確定當前域名是在哪個級別,DNS服務器要向根詢求幫助,根會向DNS服務器返回所在域名的頂級域的DNS服務器地址,也就是根的下一級com的DNS服務器地址。此時DNS服器根據這個地址又再次查詢,此次查詢獲得了51cto.com的DNS的服務器地址。於是終於確定了wubinary.blog.51cto.com的區域所在的DNS服務器地址了。DNS服務器的此類確定一個地址,並使用這個址去查詢下一個的查詢方式我們稱之爲迭代查詢

第三步:確定了區域地址後,51cto.com爲了向DNS服務器返回結果需要一級一級的往下查。一開始查詢到了blog.51cto.com的DNS服務器地址,於是blog.51cto.com的DNS服務器則向下查詢。blog.51cto.com又查詢到了wubinary.blog.51cto.com的DNS服務器地址,此時的地址正是DNS服務器要找的地址。到了這一步,wubinary.blog.51cto.com的DNS服務器則會把結果向它的上級彙報,於是上一級又向上一級彙報,最終結果回到了最初的DNS服務器,此時DNS客戶端才能獲得最終的IP地址。像這樣DNS服務器的數據逐級遍歷及逐級返回的過程,我們稱之爲遞歸查詢


如果我們查詢的域名正好和當前查詢使用的DNS服務器所匹配,則DNS服務器會先查詢本地緩存是否存在,如果存在則返回緩存數據,如果不存在則去數據文件中讀取數據並運回結果。


五、三個與解析有關的配置文件

/etc/hosts:此文件早期在沒有出現DNS服務器的時候,作用和DNS服務器類似,不過隨着網絡的發展,單個文件根本無法滿足需求,於是,此文件通常運用於本地IP解析。

/etc/resolv.conf:定義DNS服務器IP地址,本地解析域名通常使用的都是這裏面定義的IP地址。

/etc/nsswitch.conf:這個文件則是來決定先要使用/etc/hosts還是/etc/resolv.conf的設置。


總結:理解DNS的樹狀結構、遞歸及迭代查詢後,其它就好辦了。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章