DNS原理及其解析過程

為什么需要DNS解析域名為IP地址?

網(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)站,所以我們訪問網(wǎng)站時(shí)鼎文,更多的是在瀏覽器地址欄中輸入域名,就能看到所需要的頁面因俐,這是因?yàn)橛幸粋€(gè)叫“DNS服務(wù)器”的計(jì)算機(jī)自動(dòng)把我們的域名“翻譯”成了相應(yīng)的IP地址拇惋,然后調(diào)出IP地址所對應(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就是這樣的一位“翻譯官”蛉艾,它的基本工作原理可用下圖來表示。

image

DNS 的過程衷敌?

關(guān)于DNS的獲取流程:
DNS是應(yīng)用層協(xié)議勿侯,事實(shí)上他是為其他應(yīng)用層協(xié)議工作的,包括不限于HTTP和SMTP以及FTP缴罗,用于將用戶提供的主機(jī)名解析為ip地址助琐。
具體過程如下:
①用戶主機(jī)上運(yùn)行著DNS的客戶端,就是我們的PC機(jī)或者手機(jī)客戶端運(yùn)行著DNS客戶端了
②瀏覽器將接收到的url中抽取出域名字段面氓,就是訪問的主機(jī)名兵钮,比如

http://www.baidu.com/

, 并將這個(gè)主機(jī)名傳送給DNS應(yīng)用的客戶端
③DNS客戶機(jī)端向DNS服務(wù)器端發(fā)送一份查詢報(bào)文,報(bào)文中包含著要訪問的主機(jī)名字段(中間包括一些列緩存查詢以及分布式DNS集群的工作)
④該DNS客戶機(jī)最終會(huì)收到一份回答報(bào)文舌界,其中包含有該主機(jī)名對應(yīng)的IP地址
⑤一旦該瀏覽器收到來自DNS的IP地址掘譬,就可以向該IP地址定位的HTTP服務(wù)器發(fā)起TCP連接

DNS服務(wù)的體系架構(gòu)是怎樣的?

DNS domain name system 主要作用就是將主機(jī)域名轉(zhuǎn)換為ip地址

假設(shè)運(yùn)行在用戶主機(jī)上的某些應(yīng)用程序(如Webl瀏覽器或者郵件閱讀器)需要將主機(jī)名轉(zhuǎn)換為IP地址呻拌。這些應(yīng)用程序?qū)⒄{(diào)用DNS的客戶機(jī)端葱轩,并指明需要被轉(zhuǎn)換的主機(jī)名。(在很多基于UNIX的機(jī)器上柏锄,應(yīng)用程序?yàn)榱藞?zhí)行這種轉(zhuǎn)換需要調(diào)用函數(shù)gethostbyname())酿箭。用戶主機(jī)的DNS客戶端接收到后,向網(wǎng)絡(luò)中發(fā)送一個(gè)DNS查詢報(bào)文趾娃。所有DNS請求和回答報(bào)文使用的UDP數(shù)據(jù)報(bào)經(jīng)過端口53發(fā)送(至于為什么使用UDP缭嫡,請參看為什么域名根服務(wù)器只能有13臺(tái)呢? - 郭無心的回答)經(jīng)過若干ms到若干s的延時(shí)后抬闷,用戶主機(jī)上的DNS客戶端接收到一個(gè)提供所希望映射的DNS回答報(bào)文妇蛀。這個(gè)查詢結(jié)果則被傳遞到調(diào)用DNS的應(yīng)用程序。因此笤成,從用戶主機(jī)上調(diào)用應(yīng)用程序的角度看评架,DNS是一個(gè)提供簡單、直接的轉(zhuǎn)換服務(wù)的黑盒子炕泳。但事實(shí)上纵诞,實(shí)現(xiàn)這個(gè)服務(wù)的黑盒子非常復(fù)雜,它由分布于全球的大量DNS服務(wù)器以及定義了DNS服務(wù)器與查詢主機(jī)通信方式的應(yīng)用層協(xié)議組成培遵。

DNS為什么不采用單點(diǎn)的集中式的設(shè)計(jì)方式浙芙,而是使用分布式集群的工作方式登刺?

DNS的一種簡單的設(shè)計(jì)模式就是在因特網(wǎng)上只使用一個(gè)DNS服務(wù)器,該服務(wù)器包含所有的映射嗡呼,在這種集中式的設(shè)計(jì)中纸俭,客戶機(jī)直接將所有查詢請求發(fā)往單一的DNS服務(wù)器,同時(shí)該DNS服務(wù)器直接對所有查詢客戶機(jī)做出響應(yīng)南窗,盡管這種設(shè)計(jì)方式非常誘人揍很,但他不適用當(dāng)前的互聯(lián)網(wǎng),因?yàn)楫?dāng)今的因特網(wǎng)有著數(shù)量巨大并且在持續(xù)增長的主機(jī)万伤,這種集中式設(shè)計(jì)會(huì)有單點(diǎn)故障(嗝屁一個(gè)窒悔,全球著急),通信容量(上億臺(tái)主機(jī)發(fā)送的查詢DNS報(bào)文請求壕翩,包括但不限于所有的HTTP請求蛉迹,電子郵件報(bào)文服務(wù)器,TCP長連接服務(wù))放妈,遠(yuǎn)距離的時(shí)間延遲(澳大利亞到紐約的舉例)北救,維護(hù)開銷大(因?yàn)樗械闹鳈C(jī)名-ip映射都要在一個(gè)服務(wù)站點(diǎn)更新)等問題

DNS服務(wù)器一般分三種,根DNS服務(wù)器芜抒,頂級DNS服務(wù)器珍策,權(quán)威DNS服務(wù)器。

image

使用分布式的層次數(shù)據(jù)庫模式以及緩存方法來解決單點(diǎn)集中式的問題宅倒。

DNS域名稱
域名系統(tǒng)作為一個(gè)層次結(jié)構(gòu)和分布式數(shù)據(jù)庫攘宙,包含各種類型的數(shù)據(jù),包括主機(jī)名和域名拐迁。DNS數(shù)據(jù)庫中的名稱形成一個(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)

image

DNS域名稱空間的組織方式
按其功能命名空間中用來描述 DNS 域名稱的五個(gè)類別的介紹詳見下表中缓淹,以及與每個(gè)名稱類型的示例哈打。

例如:

www.uestc.edu.cn

image

DNS 和 Internet 域
互聯(lián)網(wǎng)域名系統(tǒng)由名稱注冊機(jī)構(gòu)負(fù)責(zé)維護(hù)分配由組織和國家/地區(qū)的頂級域在 Internet 上進(jìn)行管理。 這些域名按照國際標(biāo)準(zhǔn) 3166讯壶。 一些很多現(xiàn)有縮寫料仗,保留以供組織中,以及兩個(gè)字母和三個(gè)字母的國家/地區(qū)使用的縮寫使用下表所示伏蚊。一些常見的DNS域名稱如下圖:

image

資源記錄
DNS 數(shù)據(jù)庫中包含的資源記錄 (RR)立轧。 每個(gè) RR 標(biāo)識(shí)數(shù)據(jù)庫中的特定資源。我們在建立DNS服務(wù)器時(shí),經(jīng)常會(huì)用到SOA,NS,A之類的記錄氛改,在維護(hù)DNS服務(wù)器時(shí)匀借,會(huì)用到MX,CNAME記錄平窘。
常見的RR見下圖:

image

Dns服務(wù)的工作過程
當(dāng) DNS 客戶機(jī)需要查詢程序中使用的名稱時(shí),它會(huì)查詢本地DNS 服務(wù)器來解析該名稱凳怨」逅遥客戶機(jī)發(fā)送的每條查詢消息都包括3條信息,以指定服務(wù)器應(yīng)回答的問題肤舞。
● 指定的 DNS 域名紫新,表示為完全合格的域名 (FQDN) 。
● 指定的查詢類型李剖,它可根據(jù)類型指定資源記錄芒率,或作為查詢操作的專門類型。
● DNS域名的指定類別篙顺。
對于DNS 服務(wù)器偶芍,它始終應(yīng)指定為 Internet 類別。例如德玫,指定的名稱可以是計(jì)算機(jī)的完全合格的域名匪蟀,如

im.qq.com

,并且指定的查詢類型用于通過該名稱搜索地址資源記錄宰僧。
DNS 查詢以各種不同的方式進(jìn)行解析材彪。客戶機(jī)有時(shí)也可通過使用從以前查詢獲得的緩存信息就地應(yīng)答查詢琴儿。DNS 服務(wù)器可使用其自身的資源記錄信息緩存來應(yīng)答查詢段化,也可代表請求客戶機(jī)來查詢或聯(lián)系其他 DNS 服務(wù)器,以完全解析該名稱造成,并隨后將應(yīng)答返回至客戶機(jī)显熏。這個(gè)過程稱為遞歸。
另外谜疤,客戶機(jī)自己也可嘗試聯(lián)系其他的 DNS 服務(wù)器來解析名稱佃延。如果客戶機(jī)這么做,它會(huì)使用基于服務(wù)器應(yīng)答的獨(dú)立和附加的查詢夷磕,該過程稱作迭代履肃,即DNS服務(wù)器之間的交互查詢就是迭代查詢。
DNS 查詢的過程如下圖所示坐桩。

image

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就把請求發(fā)至13臺(tái)根DNS谜叹,根DNS服務(wù)器收到請求后會(huì)判斷這個(gè)域名(.com)是誰來授權(quán)管理,并會(huì)返回一個(gè)負(fù)責(zé)該頂級域名服務(wù)器的一個(gè)IP搬葬。本地DNS服務(wù)器收到IP信息后荷腊,將會(huì)聯(lián)系負(fù)責(zé).com域的這臺(tái)服務(wù)器。這臺(tái)負(fù)責(zé).com域的服務(wù)器收到請求后急凰,如果自己無法解析女仰,它就會(huì)找一個(gè)管理.com域的下一級DNS服務(wù)器地址(http://qq.com)給本地DNS服務(wù)器。當(dāng)本地DNS服務(wù)器收到這個(gè)地址后,就會(huì)找http://qq.com域服務(wù)器疾忍,重復(fù)上面的動(dòng)作乔外,進(jìn)行查詢,直至找到www . qq .com主機(jī)一罩。

6杨幼、如果用的是轉(zhuǎn)發(fā)模式,此DNS服務(wù)器就會(huì)把請求轉(zhuǎn)發(fā)至上一級DNS服務(wù)器聂渊,由上一級服務(wù)器進(jìn)行解析推汽,上一級服務(wù)器如果不能解析,或找根DNS或把轉(zhuǎn)請求轉(zhuǎn)至上上級歧沪,以此循環(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命令查詢一下http://www.sohu.com/旧烧,馬上可以看到本地DNS服務(wù)器直接查全球13臺(tái)根域中的某幾臺(tái)影钉,然后一步步解析,通過遞代的方式掘剪,直到找到www .sohu .com對應(yīng)的IP為220.181.118.87平委。
本地DNS服務(wù)器得到搜狐的IP后,它把這個(gè)IP返回給192.168.145.12客戶機(jī)夺谁,完成解析廉赔。

image

2、DNS服務(wù)器設(shè)置轉(zhuǎn)發(fā)

搜狐域名在第一步的驗(yàn)證中使用過匾鸥,有緩存蜡塌,為了不受上步實(shí)驗(yàn)干擾,我們在客戶機(jī)上192.168.145.12上nslookup 百度一下勿负,你就知道岗照。從圖上看,本地DNS把請求轉(zhuǎn)發(fā)至192.168.133.10服務(wù)器,133.10服務(wù)器把得到的IP返回給本地DNS攒至,然后本地DNS再把IP告訴DNS客戶機(jī)厚者,完成解析。

image

解析順序

  1) ****瀏覽器緩存

當(dāng)用戶通過瀏覽器訪問某域名時(shí)迫吐,瀏覽器首先會(huì)在自己的緩存中查找是否有該域名對應(yīng)的IP地址(若曾經(jīng)訪問過該域名且沒有清空緩存便存在)库菲;

  2) ****系統(tǒng)緩存

當(dāng)瀏覽器緩存中無域名對應(yīng)IP則會(huì)自動(dòng)檢查用戶計(jì)算機(jī)系統(tǒng)Hosts文件DNS緩存是否有該域名對應(yīng)IP;

  3) ****路由器緩存

當(dāng)瀏覽器及系統(tǒng)緩存中均無域名對應(yīng)IP則進(jìn)入路由器緩存中檢查志膀,以上三步均為客服端的DNS緩存熙宇;

  4) ****ISP****(互聯(lián)網(wǎng)服務(wù)提供商)DNS****緩存

當(dāng)在用戶客服端查找不到域名對應(yīng)IP地址,則將進(jìn)入ISP DNS緩存中進(jìn)行查詢溉浙。比如你用的是電信的網(wǎng)絡(luò)烫止,則會(huì)進(jìn)入電信的DNS緩存服務(wù)器中進(jìn)行查找;

  5) ****根域名服務(wù)器

當(dāng)以上均未完成戳稽,則進(jìn)入根服務(wù)器進(jìn)行查詢馆蠕。全球僅有13臺(tái)根域名服務(wù)器,1個(gè)主根域名服務(wù)器惊奇,其余12為輔根域名服務(wù)器互躬。根域名收到請求后會(huì)查看區(qū)域文件記錄,若無則將其管轄范圍內(nèi)頂級域名(如.com)服務(wù)器IP告訴本地DNS服務(wù)器颂郎;

  6) ****頂級域名服務(wù)器

頂級域名服務(wù)器收到請求后查看區(qū)域文件記錄吼渡,若無則將其管轄范圍內(nèi)主域名服務(wù)器的IP地址告訴本地DNS服務(wù)器;

  7) ****主域名服務(wù)器

主域名服務(wù)器接受到請求后查詢自己的緩存乓序,如果沒有則進(jìn)入下一級域名服務(wù)器進(jìn)行查找寺酪,并重復(fù)該步驟直至找到正確紀(jì)錄;

  8****)保存結(jié)果至緩存

本地域名服務(wù)器把返回的結(jié)果保存到緩存替劈,以備下一次使用房维,同時(shí)將該結(jié)果反饋給客戶端,客戶端通過這個(gè)IP地址與web服務(wù)器建立鏈接抬纸。

轉(zhuǎn)載自:https://www.cnblogs.com/gopark/p/8430916.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末咙俩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子湿故,更是在濱河造成了極大的恐慌阿趁,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件坛猪,死亡現(xiàn)場離奇詭異脖阵,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)墅茉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門命黔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來呜呐,“玉大人,你說我怎么就攤上這事悍募∧⒓” “怎么了?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵坠宴,是天一觀的道長洋魂。 經(jīng)常有香客問我,道長喜鼓,這世上最難降的妖魔是什么副砍? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮庄岖,結(jié)果婚禮上豁翎,老公的妹妹穿的比我還像新娘。我一直安慰自己隅忿,他們只是感情好心剥,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著硼控,像睡著了一般。 火紅的嫁衣襯著肌膚如雪胳赌。 梳的紋絲不亂的頭發(fā)上牢撼,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天,我揣著相機(jī)與錄音疑苫,去河邊找鬼熏版。 笑死,一個(gè)胖子當(dāng)著我的面吹牛捍掺,可吹牛的內(nèi)容都是我干的撼短。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼挺勿,長吁一口氣:“原來是場噩夢啊……” “哼曲横!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起不瓶,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤禾嫉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后蚊丐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體熙参,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年麦备,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了孽椰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片昭娩。...
    茶點(diǎn)故事閱讀 40,127評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖黍匾,靈堂內(nèi)的尸體忽然破棺而出栏渺,到底是詐尸還是另有隱情,我是刑警寧澤膀捷,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布迈嘹,位于F島的核電站,受9級特大地震影響全庸,放射性物質(zhì)發(fā)生泄漏秀仲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一壶笼、第九天 我趴在偏房一處隱蔽的房頂上張望神僵。 院中可真熱鬧,春花似錦覆劈、人聲如沸保礼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽炮障。三九已至,卻和暖如春坤候,著一層夾襖步出監(jiān)牢的瞬間胁赢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工白筹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留智末,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓徒河,卻偏偏與公主長得像系馆,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子顽照,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容