新聞中心
DNS: Domain Name System 域名系統(tǒng)是互聯(lián)網(wǎng)的一項服務。它作為將域名和IP地址互相映射的一個分布式數(shù)據(jù)庫,能夠使人們更方便地使用互聯(lián)網(wǎng)。

創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)整合營銷推廣、網(wǎng)站重做改版、白云鄂網(wǎng)站定制設計、自適應品牌網(wǎng)站建設、成都h5網(wǎng)站建設、成都做商城網(wǎng)站、集團公司官網(wǎng)建設、成都外貿網(wǎng)站建設、高端網(wǎng)站制作、響應式網(wǎng)頁設計等建站業(yè)務,價格優(yōu)惠性價比高,為白云鄂等各大城市提供網(wǎng)站開發(fā)制作服務。
域名
在講解DNS之前,首先粗略的說一下域名這個東西,比如說我們在用瀏覽器訪問網(wǎng)址的時候,我們輸入的網(wǎng)站的地址就是一個域名,例如 www.google.com,但其實我們知道我們標志互聯(lián)網(wǎng)中的每一個機器都是有一個IP地址的,我們若需要訪問一個網(wǎng)站的服務器,實際上是需要輸入該網(wǎng)站的IP地址來進行訪問的,但是IP地址往往難以記憶,IPv4尚且難記,IPv6就更不用說了,所以我們就通過使用域名來對其進行管理,但是在訪問的時候,系統(tǒng)底層還是通過ip地址來進行訪問的,域名和IP地址直接的轉換就是通過DNS服務器來完成的。
nsswitch框架
域名簡單了解過了,再來說一說nsswitch框架這個東東。
nsswitch(name service switch configuration,名稱服務切換配置),規(guī)定通過哪些途徑以及按照什么順序來查找特定類型的信息。還可以指定某個方法奏效或失效時系統(tǒng)將采取什么動作,是一種通用框架,與各種類型存儲進行交互的公共模塊化的實現(xiàn)。nsswitch是Linux中的一種解析框架,負責在程序跟存儲方式之間做了一層對接。讓用戶可以更好地選擇存儲方式,如把用戶名解析為UID,服務解析為PORT,域名解析為IP等。這些堆成映射解析的存儲方式可以有多種,如nis,ldap,file,mysql等。而nsswitch這種框架就是提供給用戶可以方便更換存儲方式的;比如默認的用戶名和密碼等配置默認在/etc/passwd文件中,但是用戶可以選項把用戶和密碼存儲在ldap或mysql中,而上層只要通過nsswitch就框架編寫的程序,在用到系統(tǒng)用戶時就不需要關心這些賬號密碼存儲在哪里了(不需要變動程序),由nsswitch這個中間層來搞定了。在nsswitch的配置文件/etc/nsswitch.conf中有這么一行語句,”hosts: files dns“,就表示域名解析時先找本機的/etc/hosts文件然后再找dns服務器。
需要詳細了解可以看/etc/nsswitch.conf配置文件,nsswitch.conf中的每一行配置都指明了如何搜索信息,每行配置的格式如下:
Info: method[[action]] [method[[action]]…]
其中,info指定該行所描述的信息的類型,method為用來查找該信息的方法,action是對前面的method返回狀態(tài)的響應。action要放在方括號里。當需要提供nsswitch.conf文件所描述的信息的時候,系統(tǒng)將檢查含有適當info字段的配置行。它按照從左向右的順序開始執(zhí)行配置行中指定的方法。在默認情況下,如果找到期望的信息,系統(tǒng)將停止搜索。如果沒有指定action,那么當某個方法未能返回結果時,系統(tǒng)就會嘗試下一個動作。有可能搜索結束都沒有找到想要的信息。
DNS服務器的出現(xiàn)
20世紀70年代末,域名解析剛開始使用的都是/etc/hosts文件來負責的,在60年代美國軍方的一個項目ARPAnet,由電話交換網(wǎng)絡轉到TCP/IP數(shù)據(jù)交換網(wǎng)絡(數(shù)據(jù)分組可以以多條路徑發(fā)送且接收方收到數(shù)據(jù)并要發(fā)送確認)。那個時候接入互聯(lián)網(wǎng)的只有四個主機美國加州大學的圣巴巴拉分校,洛杉磯大學,猶他州立,斯坦福研究所因為主機很少人們還是可以記住IP地址的,但是因為人最容易記憶的是字符串而不是數(shù)字也隨著后來加入主機的越來越多人們發(fā)現(xiàn)已經(jīng)記不住哪臺主機是那個IP了;因此就出來了給主機命名的概念每一臺主機起一個人們容易記憶的字符串,可以人們容易記憶了而主機卻識別不了;因此域名解析出現(xiàn)了利用hosts文件就可以標明主機對應的IP是什么;人們訪問主機名而主機負責在把主機名解析為IP地址即可。
但是后來隨著互聯(lián)網(wǎng)主機加入的越來越多,hosts文件已經(jīng)不足以應對。因此美國就出現(xiàn)了一個機構IANA(現(xiàn)在由ICANN管理)負責管理IP和域名的轉換;如果A想要接入網(wǎng)絡中時就找IANA申請一個IP地址和一個主機名,如果B知道A的主機名想訪問A就需要到IANA那里通過FTP下載hosts文件到本地更新自己的hosts文件里面就會有A主機主機名對應的IP地址;隨著hosts文件越來越大IANA管理非常麻煩和用戶定時就要去IANA哪里下載hosts文件。時間一長這總方法是行不通的。再后來IANA就建立起了DNS負責處理用戶提交的請求幫用戶解析域名對應的IP地址。
DNS重要性
1)技術角度看
DNS解析是互聯(lián)網(wǎng)絕大多數(shù)應用的實際尋址方式; 域名技術的再發(fā)展、以及基于域名技術的多種應用,豐富了互聯(lián)網(wǎng)應用和協(xié)議。
2)資源角度看
域名是互聯(lián)網(wǎng)上的身份標識,是不可重復的唯一標識資源; 互聯(lián)網(wǎng)的全球化使得域名成為標識一國主權的國家戰(zhàn)略資源。
域名空間結構
DNS的分布式數(shù)據(jù)庫是以域名為索引的,每個域名實際上就是一顆很大的逆向樹中的路徑,這棵逆向樹稱為域名空間。這棵樹的層次結構如下圖,和Linux文件系統(tǒng)的結構非常相似。在頂端,樹有唯一的一個根域。在根下又可以有多個任意的分支,這些分支點稱為“頂級域”。而在每個頂級域下又可以有多個相同的“二級域”,而樹的深度不得超過127層。
FQDN
FQDN:(Fully Qualified Domain Name)完全合格域名/全稱域名,是指主機名加上全路徑,全路徑中列出了序列中所有域成員。全域名可以從邏輯上準確地表示出主機在什么地方,也可以說全域名是主機名的一種完全表示形式。從全域名中包含的信息可以看出主機在域名樹中的位置。如www.baidu.com. 這個域名,分解后含義如下:
. #表示根域
.com #表示頂級域
baidu.com #表示二級域
www #表示主機名
根域:目前全世界只有13臺根服務器,名字分別為“A”至“M”,其中10臺設置在美國,另外3臺設置于英國、瑞典和日本。
頂級域:有組織域和國家域,其中組織域有如:.com .org .net .edu .cc .info等等,國家域有:.cn .hk .jp等等。
二級域名:就是真正用于服務的,比如可以根據(jù)企業(yè)名稱自行申請試用什么域名。
主機名:是用來標識這個域名對應的服務是什么,如www一般用于萬維網(wǎng),mail用于郵件,都可以隨意設定。
下圖是各個分支的表現(xiàn)形式:
DNS服務器規(guī)則
\1) 每一個主機都知道根域在哪里;
\2) 上級必須知道下級;
\3) 下級不知道上級;
\4) 查詢兩段式遞歸查詢和迭代查詢;
\5) 根域不迭代(根全球有13臺a-m.root-servers.net);
\6) 頂級域不迭代;
\7) 二級域服務器可以只提供權威查詢不提供迭代或轉發(fā);
DNS服務器解析過程
1)遞歸查詢
遞歸查詢是最常見的是主機發(fā)送到本地域名服務器的請求。當本地域名服務器接受了客戶機的查詢請求時,本地域名服務器將力圖代表客戶機來找到答案,而在域名服務器執(zhí)行所有工作的時候,客戶機只是等待。如果本地域名服務器不能直接回答,則它將在域名樹中的各分 支上下遞歸搜索來尋找答案。對于一個遞歸查詢,DNS服務器將持續(xù)搜索直到收到回答。這種回答可以是主機的IP地址,也可以回答“主機不存在”。不論是哪種結果,遞歸域名服務器將把結果返回給客戶機。
2)迭代查詢(可能發(fā)出多次請求)
本地域名服務器向根域名服務器的查詢通常是采用迭代查詢。當根域名服務器收到本地域名服務器的迭代查詢請求報文時,要么給出所要查詢的 IP 地址,要么告訴本地域名服務器:“你下一步應當向哪一個域名服務器進行查詢”。然后讓本地域名服務器進行后續(xù)的查詢。
一個域名的查詢過程解析
如DNS客戶端需要解析www.baidu.com.cn這個域名,過程如下圖:
1、DNS客戶端首先找本地DNS服務器進行域名解析,也就是自己設置的DNS地址;
2、本地DNS服務器收到請求后直接查找本服務器是否有此記錄,如果有就直接返回域名對應的地址給客戶端,那么這個域名的解析就完成了,這個就稱為一次“遞歸查詢”;
3、如果本地DNS沒有查找到對應的記錄,那么此DNS服務器就會請求根域找.cn服務器的地址(當然本地DNS服務器也可能不找根DNS而是直接轉發(fā)到其他DNS服務器進行域名解析,但是如果被轉發(fā)的那臺DNS服務器不是www.baidu.com.cn的權威服務器還是需要進行找根服務器);
4、根服務器接收到請求后就會去找國際域名服務器列表,然后會返回.cn服務器的地址給本地DNS服務器;
5、本地DNS服務器收到.cn服務器地址后,就會找.cn服務器進行頂級域.com.cn服務器地址的解析,然后.cn服務器會返回.com.cn服務器的地址給本地DNS服務器;
6、本地DNS服務器收到.com.cn地址后,就會找.com.cn服務器解析baidu.com.cn服務器的地址;
7、本地DNS服務器收到baidu.com.cn的地址后,就會找baidu.com.cn服務器解析www.baidu.com.cn主機地址;
8、本地DNS服務器得到www.baidu.com.cn的IP地址后,會馬上返回給客戶端并緩存此域名;
9、客戶端得到IP地址后緩存在本地,然后就可以通過IP地址訪問百度服務器;
PS:在這個查詢過程中,客戶端發(fā)出的請求就是遞歸查詢,而DNS服務器發(fā)出的請求就是迭代查詢;另外,還有一個名詞就是權威服務器(權威應答),意思就是真正負責你的域名記錄解析的服務器稱為權威服務器,其他解析都不能稱為權威應答。
DNS服務器類型
1)主DNS服務器
主DNS服務器就是創(chuàng)建了區(qū)域的DNS服務器。這里的區(qū)域數(shù)據(jù)是可讀可修改的。主DNS服務器中的區(qū)域數(shù)據(jù)也稱為正本區(qū)域數(shù)據(jù)。在一個DNS服務網(wǎng)絡中,可以建立多個主DNS服務器,這樣可以提供DNS服務的容錯性。
2)輔助DNS服務器
輔助DNS服務器不創(chuàng)建區(qū)域,它的區(qū)域數(shù)據(jù)是從主DNS服務器復制來的,因此,區(qū)域數(shù)據(jù)只能讀不能修改,也稱為副本區(qū)域數(shù)據(jù)。當啟動輔助DNS服務器時,輔助DNS服務器會和建立聯(lián)系的主DNS服務器聯(lián)系,并從主DNS服務器中復制數(shù)據(jù)。輔助DNS服務器在工作時,它會定期地更新副本區(qū)域數(shù)據(jù),以盡可能地保證副本和正本區(qū)域數(shù)據(jù)的一致性。輔助DNS服務器除了可以從主DNS服務器復制數(shù)據(jù)外,還可以從其他輔助DNS服務器復制區(qū)域數(shù)據(jù)。
在一個區(qū)域中設置多個輔助DNS服務器可以提供容錯,分擔主DNS服務器的負擔,同時可以加快DNS解析的速度。
3)主控DNS服務器
不論是主DNS服務器還是輔助DNS服務器,如果它向其他輔助DNS服務器提供區(qū)域數(shù)據(jù)的復制服務,就稱為DNS服務器是主控DNS服務器。如DNS服務器A向DNS服務器B提供數(shù)據(jù)復制服務,則A就稱為主控DNS服務器。
4)高速緩存服務器
高速緩存服務器上不存在任何區(qū)域數(shù)據(jù),它只幫助DNS客戶機向其他DNS服務器進行查詢,然后將查詢到的數(shù)據(jù)存儲在一份高速緩存Cache中,響應客戶機的查詢請求。Cache-Only 服務器只負責查詢數(shù)據(jù),當客戶機查詢數(shù)據(jù)時,如果Cache中存在數(shù)據(jù),則Cache可以將結果快速反饋給客戶機。
5)DNS轉發(fā)服務器
DNS轉發(fā)服務器是一種特殊類型的DNS服務器。在一個DNS網(wǎng)絡中,如果客戶機向指定的DNS服務器解析的域名不成功,DNS服務器就可以將客戶機的解析請求發(fā)送給一臺DNS轉發(fā)服務器,顧名思義,DNS轉發(fā)服務器就是將域名請求轉發(fā)給其他DNS服務器。
網(wǎng)頁名稱:深入DNS服務器原理(一)
本文網(wǎng)址:http://m.fisionsoft.com.cn/article/cdgeeho.html


咨詢
建站咨詢
