1、簡介
數據庫
網絡中的主機通訊是經過IP地址來實現的,一般IPv4的地址是四個數字加點組成,若是和每臺主機通訊咱們都要去記憶IP地址的話,這一般對於人類來說是至關痛苦的。因而網絡上就有了一套爲了解決這個問題的方案出現了,也就是DNS主機名稱解析系統。它是一套可以將數以千萬計的IP地址經過查詢DNS數據庫,輕鬆的轉化成與之對應的一串單詞字符串,也就是主機名,網絡上稱之爲域名,相對於IP地址,用單詞組成的域名明顯好記多了。緩存
2、DNS域名解析系統的層級關係服務器
DNS域名解析系統是有層級關係的,整個層級關係的表現形式就像一棵大樹,每一層,咱們稱之爲域。最頂層的域咱們一般叫做根域,用點號表示,第二層一般用com、net、edu、gov、mil、org....,這層咱們叫做頂級域,往下第三層,也就是咱們常常見到的域名了,如,51cto.com,這一層咱們稱之爲二級域,當二級域加上www後,就是第四層了,就這樣一直往下細分。域名的寫法一般是由小到大,從左往右書寫,用點鏈接,最後加點表示根,整個結構以下圖所示:網絡
3、DNS的資源記錄
ide
咱們要查詢這些龐大數據固然要有專門的主機負責這些工做了,提供查詢、存儲DNS數據服務的主機咱們稱之爲DNS服務器。網絡上爲了方便域名的註冊、管理、解析,將DNS域名映射到特定類型的資源信息,咱們稱之爲資源記錄。資源記錄是有類型的,大數據
資源記錄類型 | ||||||
SOA | NS | MX | A | PTR | AAAA | CNAME |
起始受權 | 域名服務器 | 郵件交換器 | 域名-->IP | IP-->域名 | 域名-->IPv6 |
別名記錄 |
特色:spa 只能有一個,並且必須是第一個blog |
特色:遞歸 用於表示DNS服務器的域名地址dns |
特色: 用於一個域下的郵件使用 |
特色: 咱們常常用到的就是它了 |
特色: 和A記錄相反,用於反向解析 |
特色: 基本不用 |
特色: 用於做A記錄的域名的別名, |
4、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服務器會先查詢本地緩存是否存在,若是存在則返回緩存數據,若是不存在則去數據文件中讀取數據並運回結果。
5、三個與解析有關的配置文件
/etc/hosts:此文件早期在沒有出現DNS服務器的時候,做用和DNS服務器相似,不過隨着網絡的發展,單個文件根本沒法知足需求,因而,此文件一般運用於本地IP解析。
/etc/resolv.conf:定義DNS服務器IP地址,本地解析域名一般使用的都是這裏面定義的IP地址。
/etc/nsswitch.conf:這個文件則是來決定先要使用/etc/hosts仍是/etc/resolv.conf的設置。
總結:理解DNS的樹狀結構、遞歸及迭代查詢後,其它就好辦了。