DNS原理及其解析過程剖析(圖文)
網(wǎng)絡(luò)通訊大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所以計(jì)算機(jī)在網(wǎng)絡(luò)上進(jìn)行通訊時(shí)只能識(shí)別如“202.96.134.133”之類的IP地址,而不能認(rèn)識(shí)域名。我們無法記住10個(gè)以上IP地址的網(wǎng)站,所以我們?cè)L問網(wǎng)站時(shí),更多的是在瀏覽器地址欄中輸入域名,就能看到所需要的頁面,這是因?yàn)橛幸粋€(gè)叫“DNS服務(wù)器”的計(jì)算機(jī)自動(dòng)把我們的域名“翻譯”成了相應(yīng)的IP地址,然后調(diào)出IP地址所對(duì)應(yīng)的網(wǎng)頁。
什么是DNS?
DNS( Domain Name System)是“域名系統(tǒng)”的英文縮寫,是一種組織成域?qū)哟谓Y(jié)構(gòu)的計(jì)算機(jī)和網(wǎng)絡(luò)服務(wù)命名系統(tǒng),它用于TCP/IP網(wǎng)絡(luò),它所提供的服務(wù)是用來將主機(jī)名和域名轉(zhuǎn)換為IP地址的工作。DNS就是這樣的一位“翻譯官”,它的基本工作原理可用下圖來表示。
DNS域名稱
域名系統(tǒng)作為一個(gè)層次結(jié)構(gòu)和分布式數(shù)據(jù)庫(kù),包含各種類型的數(shù)據(jù),包括主機(jī)名和域名。DNS數(shù)據(jù)庫(kù)中的名稱形成一個(gè)分層樹狀結(jié)構(gòu)稱為域命名空間。域名包含單個(gè)標(biāo)簽分隔點(diǎn),例如:im.qq.com。
完全限定的域名 (FQDN) 唯一地標(biāo)識(shí)在 DNS 分層樹中的主機(jī)的位置,通過指定的路徑中點(diǎn)分隔從根引用的主機(jī)的名稱列表。 下圖顯示與主機(jī)稱為 im 內(nèi) qq.com DNS 樹的示例。 主機(jī)的 FQDN 是 im.qq.com。
DNS 域的名稱層次結(jié)構(gòu)
DNS域名稱空間的組織方式
按其功能命名空間中用來描述 DNS 域名稱的五個(gè)類別的介紹詳見下表中,以及與每個(gè)名稱類型的示例。
DNS 和 Internet 域
互聯(lián)網(wǎng)域名系統(tǒng)由名稱注冊(cè)機(jī)構(gòu)負(fù)責(zé)維護(hù)分配由組織和國(guó)家/地區(qū)的頂級(jí)域在 Internet 上進(jìn)行管理。 這些域名按照國(guó)際標(biāo)準(zhǔn) 3166。 一些很多現(xiàn)有縮寫,保留以供組織中,以及兩個(gè)字母和三個(gè)字母的國(guó)家/地區(qū)使用的縮寫使用下表所示。一些常見的DNS域名稱如下圖:
資源記錄
DNS 數(shù)據(jù)庫(kù)中包含的資源記錄 (RR)。 每個(gè) RR 標(biāo)識(shí)數(shù)據(jù)庫(kù)中的特定資源。我們?cè)诮NS服務(wù)器時(shí),經(jīng)常會(huì)用到SOA,NS,A之類的記錄,在維護(hù)DNS服務(wù)器時(shí),會(huì)用到MX,CNAME記錄。
常見的RR見下圖:
Dns服務(wù)的工作過程
當(dāng) DNS 客戶機(jī)需要查詢程序中使用的名稱時(shí),它會(huì)查詢本地DNS 服務(wù)器來解析該名稱??蛻魴C(jī)發(fā)送的每條查詢消息都包括3條信息,以指定服務(wù)器應(yīng)回答的問題。
● 指定的 DNS 域名,表示為完全合格的域名 (FQDN) 。
● 指定的查詢類型,它可根據(jù)類型指定資源記錄,或作為查詢操作的專門類型。
● DNS域名的指定類別。
對(duì)于DNS 服務(wù)器,它始終應(yīng)指定為 Internet 類別。例如,指定的名稱可以是計(jì)算機(jī)的完全合格的域名,如im.qq.com,并且指定的查詢類型用于通過該名稱搜索地址資源記錄。
DNS 查詢以各種不同的方式進(jìn)行解析??蛻魴C(jī)有時(shí)也可通過使用從以前查詢獲得的緩存信息就地應(yīng)答查詢。DNS 服務(wù)器可使用其自身的資源記錄信息緩存來應(yīng)答查詢,也可代表請(qǐng)求客戶機(jī)來查詢或聯(lián)系其他 DNS 服務(wù)器,以完全解析該名稱,并隨后將應(yīng)答返回至客戶機(jī)。這個(gè)過程稱為遞歸。
另外,客戶機(jī)自己也可嘗試聯(lián)系其他的 DNS 服務(wù)器來解析名稱。如果客戶機(jī)這么做,它會(huì)使用基于服務(wù)器應(yīng)答的獨(dú)立和附加的查詢,該過程稱作迭代,即DNS服務(wù)器之間的交互查詢就是迭代查詢。
DNS 查詢的過程如下圖所示。
1、在瀏覽器中輸入www.qq.com域名,操作系統(tǒng)會(huì)先檢查自己本地的hosts文件是否有這個(gè)網(wǎng)址映射關(guān)系,如果有,就先調(diào)用這個(gè)IP地址映射,完成域名解析。
2、如果hosts里沒有這個(gè)域名的映射,則查找本地DNS解析器緩存,是否有這個(gè)網(wǎng)址映射關(guān)系,如果有,直接返回,完成域名解析。
3、如果hosts與本地DNS解析器緩存都沒有相應(yīng)的網(wǎng)址映射關(guān)系,首先會(huì)找TCP/ip參數(shù)中設(shè)置的首選DNS服務(wù)器,在此我們叫它本地DNS服務(wù)器,此服務(wù)器收到查詢時(shí),如果要查詢的域名,包含在本地配置區(qū)域資源中,則返回解析結(jié)果給客戶機(jī),完成域名解析,此解析具有權(quán)威性。
4、如果要查詢的域名,不由本地DNS服務(wù)器區(qū)域解析,但該服務(wù)器已緩存了此網(wǎng)址映射關(guān)系,則調(diào)用這個(gè)IP地址映射,完成域名解析,此解析不具有權(quán)威性。
5、如果本地DNS服務(wù)器本地區(qū)域文件與緩存解析都失效,則根據(jù)本地DNS服務(wù)器的設(shè)置(是否設(shè)置轉(zhuǎn)發(fā)器)進(jìn)行查詢,如果未用轉(zhuǎn)發(fā)模式,本地DNS就把請(qǐng)求發(fā)至13臺(tái)根DNS,根DNS服務(wù)器收到請(qǐng)求后會(huì)判斷這個(gè)域名(.com)是誰來授權(quán)管理,并會(huì)返回一個(gè)負(fù)責(zé)該頂級(jí)域名服務(wù)器的一個(gè)IP。本地DNS服務(wù)器收到IP信息后,將會(huì)聯(lián)系負(fù)責(zé).com域的這臺(tái)服務(wù)器。這臺(tái)負(fù)責(zé).com域的服務(wù)器收到請(qǐng)求后,如果自己無法解析,它就會(huì)找一個(gè)管理.com域的下一級(jí)DNS服務(wù)器地址(qq.com)給本地DNS服務(wù)器。當(dāng)本地DNS服務(wù)器收到這個(gè)地址后,就會(huì)找qq.com域服務(wù)器,重復(fù)上面的動(dòng)作,進(jìn)行查詢,直至找到www.qq.com主機(jī)。
6、如果用的是轉(zhuǎn)發(fā)模式,此DNS服務(wù)器就會(huì)把請(qǐng)求轉(zhuǎn)發(fā)至上一級(jí)DNS服務(wù)器,由上一級(jí)服務(wù)器進(jìn)行解析,上一級(jí)服務(wù)器如果不能解析,或找根DNS或把轉(zhuǎn)請(qǐng)求轉(zhuǎn)至上上級(jí),以此循環(huán)。不管是本地DNS服務(wù)器用是是轉(zhuǎn)發(fā),還是根提示,最后都是把結(jié)果返回給本地DNS服務(wù)器,由此DNS服務(wù)器再返回給客戶機(jī)。
從客戶端到本地DNS服務(wù)器是屬于遞歸查詢,而DNS服務(wù)器之間就是的交互查詢就是迭代查詢。
附錄:
本地DNS配置轉(zhuǎn)發(fā)與未配置轉(zhuǎn)發(fā)數(shù)據(jù)包分析
新建一DNS,具體怎么建我這里就不再描述了,見我的上一篇博文《在Win2003中安裝bind【部署智能DNS】》
1、DNS服務(wù)器不設(shè)轉(zhuǎn)發(fā)
在192.168.145.228服務(wù)器上安裝上wireshark軟件,并打開它,設(shè)置數(shù)據(jù)包為UDP過濾,在192.168.145.12客戶機(jī)上用nslookup命令查詢一下www.sohu.com,馬上可以看到本地DNS服務(wù)器直接查全球13臺(tái)根域中的某幾臺(tái),然后一步步解析,通過遞代的方式,直到找到www.sohu.com對(duì)應(yīng)的IP為220.181.118.87。
本地DNS服務(wù)器得到www.sohu.com的IP后,它把這個(gè)IP返回給192.168.145.12客戶機(jī),完成解析。
2、DNS服務(wù)器設(shè)置轉(zhuǎn)發(fā)
因www.sohu.com域名在第一步的驗(yàn)證中使用過,有緩存,為了不受上步實(shí)驗(yàn)干擾,我們?cè)诳蛻魴C(jī)上192.168.145.12上nslookup www.baidu.com。從圖上看,本地DNS把請(qǐng)求轉(zhuǎn)發(fā)至192.168.133.10服務(wù)器,133.10服務(wù)器把得到的IP返回給本地DNS,然后本地DNS再把IP告訴DNS客戶機(jī),完成解析。
本文出自 “系統(tǒng)網(wǎng)絡(luò)運(yùn)維” 博客,請(qǐng)務(wù)必保留此出處http://369369.blog.51cto.com/319630/812889
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。