淺析DNS域名解析過程

一、DNS域名解析步驟

下圖是DNS域名解析的一個(gè)示例圖往弓,它涵蓋了基本解析步驟和原理笛坦。

下面DNS解析步驟進(jìn)行講解,后面將采用命令行的形式來跟蹤DNS解析過程疟位。當(dāng)用戶在地址欄鍵入www.baidu.com并敲下回車鍵之后瞻润,域名解析就開始了。

第一步:檢查瀏覽器緩存中是否緩存過該域名對(duì)應(yīng)的IP地址

用戶通過瀏覽器瀏覽過某網(wǎng)站之后,瀏覽器就會(huì)自動(dòng)緩存該網(wǎng)站域名對(duì)應(yīng)的IP地址绍撞,當(dāng)用戶再次訪問的時(shí)候正勒,瀏覽器就會(huì)從緩存中查找該域名對(duì)應(yīng)的IP地址,因?yàn)榫彺娌粌H是有大小限制傻铣,而且還有時(shí)間限制(域名被緩存的時(shí)間通過TTL屬性來設(shè)置)章贞,所以存在域名對(duì)應(yīng)的IP找不到的情況。當(dāng)瀏覽器從緩存中找到了該網(wǎng)站域名對(duì)應(yīng)的IP地址非洲,那么整個(gè)DNS解析過程結(jié)束鸭限,如果沒有找到,將進(jìn)行下一步驟两踏。對(duì)于IP的緩存時(shí)間問題败京,不宜設(shè)置太長的緩存時(shí)間,時(shí)間太長梦染,如果域名對(duì)應(yīng)的IP發(fā)生變化赡麦,那么用戶將在一段時(shí)間內(nèi)無法正常訪問到網(wǎng)站,如果太短帕识,那么又造成頻繁解析域名泛粹。

第二步:如果在瀏覽器緩存中沒有找到IP,那么將繼續(xù)查找本機(jī)系統(tǒng)是否緩存過IP

如果第一個(gè)步驟沒有完成對(duì)域名的解析過程渡冻,那么瀏覽器會(huì)去系統(tǒng)緩存中查找系統(tǒng)是否緩存過這個(gè)域名對(duì)應(yīng)的IP地址戚扳,也可以理解為系統(tǒng)自己也具備域名解析的基本能力忧便。在Windows系統(tǒng)中族吻,可以通過設(shè)置hosts文件來將域名手動(dòng)綁定到某IP上,hosts文件位置在C:\Windows\System32\drivers\etc\hosts珠增。對(duì)于普通用戶超歌,并不推薦自己手動(dòng)綁定域名和IP,對(duì)于開發(fā)者來說蒂教,通過綁定域名和IP巍举,可以輕松切換環(huán)境,可以從測試環(huán)境切換到開發(fā)環(huán)境凝垛,方便開發(fā)和測試懊悯。在XP系統(tǒng)中,黑客常常修改他的電腦的hosts文件梦皮,將用戶常常訪問的域名綁定到他指定的IP上炭分,從而實(shí)現(xiàn)了本地DNS解析,導(dǎo)致這些域名被劫持剑肯。在Linux或者M(jìn)ac系統(tǒng)中捧毛,hosts文件在/etc/hosts,修改該文件也可以實(shí)現(xiàn)同樣的目的。

前兩步都是在本機(jī)上完成的呀忧,所以沒有在上面示例圖上展示出來师痕,從第三步開始,才正在地向遠(yuǎn)程DNS服務(wù)器發(fā)起解析域名的請(qǐng)求而账。

第三步:向本地域名解析服務(wù)系統(tǒng)發(fā)起域名解析的請(qǐng)求

如果在本機(jī)上無法完成域名的解析胰坟,那么系統(tǒng)只能請(qǐng)求本地域名解析服務(wù)系統(tǒng)進(jìn)行解析,本地域名系統(tǒng)LDNS一般都是本地區(qū)的域名服務(wù)器福扬,比如你連接的校園網(wǎng)腕铸,那么域名解析系統(tǒng)就在你的校園機(jī)房里,如果你連接的是電信铛碑、移動(dòng)或者聯(lián)通的網(wǎng)絡(luò)狠裹,那么本地域名解析服務(wù)器就在本地區(qū),由各自的運(yùn)營商來提供服務(wù)汽烦。對(duì)于本地DNS服務(wù)器地址涛菠,Windows系統(tǒng)使用命令ipconfig就可以查看,在Linux和Mac系統(tǒng)下撇吞,直接使用命令cat /etc/resolv.conf來查看LDNS服務(wù)地址俗冻。LDNS一般都緩存了大部分的域名解析的結(jié)果,當(dāng)然緩存時(shí)間也受域名失效時(shí)間控制牍颈,大部分的解析工作到這里就差不多已經(jīng)結(jié)束了迄薄,LDNS負(fù)責(zé)了大部分的解析工作。

第四步:向根域名解析服務(wù)器發(fā)起域名解析請(qǐng)求

本地DNS域名解析器還沒有完成解析的話煮岁,那么本地域名解析服務(wù)器將向根域名服務(wù)器發(fā)起解析請(qǐng)求讥蔽。

第五步:根域名服務(wù)器返回gTLD域名解析服務(wù)器地址

本地DNS域名解析向根域名服務(wù)器發(fā)起解析請(qǐng)求,根域名服務(wù)器返回的是所查域的通用頂級(jí)域(Generic top-level domain画机,gTLD)地址冶伞,常見的通用頂級(jí)域有.com、.cn步氏、.org响禽、.edu等。

第六步:向gTLD服務(wù)器發(fā)起解析請(qǐng)求

本地域名解析服務(wù)器向gTLD服務(wù)器發(fā)起請(qǐng)求荚醒。

第七步:gTLD服務(wù)器接收請(qǐng)求并返回Name Server服務(wù)器

gTLD服務(wù)器接收本地域名服務(wù)器發(fā)起的請(qǐng)求芋类,并根據(jù)需要解析的域名,找到該域名對(duì)應(yīng)的Name Server域名服務(wù)器界阁,通常情況下侯繁,這個(gè)Name Server服務(wù)器就是你注冊(cè)的域名服務(wù)器,那么你注冊(cè)的域名的服務(wù)商的服務(wù)器將承擔(dān)起域名解析的任務(wù)铺董。

第八步:Name Server服務(wù)器返回IP地址給本地服務(wù)器

Name Server服務(wù)器查找域名對(duì)應(yīng)的IP地址巫击,將IP地址連同TTL值返回給本地域名服務(wù)器禀晓。

第九步:本地域名服務(wù)器緩存解析結(jié)果

本地域名服務(wù)器緩存解析后的結(jié)果,緩存時(shí)間由TTL時(shí)間來控制坝锰。

第十步:返回解析結(jié)果給用戶

解析結(jié)果將直接返回給用戶粹懒,用戶系統(tǒng)將緩存該IP地址,緩存時(shí)間由TTL來控制顷级,至此凫乖,解析過程結(jié)束。

這里對(duì)DNS解析的步驟進(jìn)行了一個(gè)簡單的介紹分析弓颈,后面將通過命令行的形式來解析一個(gè)域名的具體解析過程帽芽。

二、DNS域名解析過程分析

在正式開始分析解析過程之前翔冀,先來介紹幾個(gè)基本的域名解析方式的概念导街。域名解析記錄主要分為A記錄、MX記錄纤子、CNAME記錄搬瑰、NS記錄以及TXT記錄。

A記錄:A代表的是Address控硼,用來指定域名對(duì)應(yīng)的IP地址泽论,比如將map.baidu.com指定到180.97.34.157,將zhidao.baidu.com指定到180.149.131.245卡乾,A記錄允許將多個(gè)域名解析到一個(gè)IP地址翼悴,但不允許將一個(gè)域名解析到多個(gè)IP地址上。

MX記錄:MX代表的是Mail Exchage幔妨,就是可以將某個(gè)域名下的郵件服務(wù)器指向自己的Mail Server鹦赎,如baidu.com域名的A記錄IP地址是180.97.34.157,如果將MX記錄設(shè)置為180.97.34.154陶冷,即xxx@baidu.com的郵件路由钙姊,那么DNS會(huì)將郵件發(fā)送到180.97.34.154所在的服務(wù)器毯辅,而正常web請(qǐng)求仍然會(huì)解析到A記錄的IP地址180.97.34.157埂伦。

CNAME記錄:CNAME指的就是Canonical Name,也就是別名解析思恐,可以將指定的域名解析到其他域名上沾谜,而其他域名就是指定域名的別名,整個(gè)解析過程稱為別名解析胀莹。比如將baidu.com解析到itlemon.cn基跑,將csdn.net解析到itlemon.cn,那么itlemon.cn就是baidu.com和CSDN.net的別名描焰。

NS記錄:就是為某個(gè)域名指定了特定的DNS服務(wù)器去解析媳否。

TXT記錄:為某個(gè)主機(jī)名或者域名設(shè)置特定的說明栅螟,比如為itlemon.cn設(shè)置的的TXT記錄為“Lemon的技術(shù)筆記”,這個(gè)TXT記錄為itlemon.cn的說明篱竭。

上面概念中的IP地址都是假定的力图,幫助理解。下面將通過解析域名baidu.com為例掺逼,進(jìn)一步說明域名解析流程吃媒。

直接查看域名結(jié)果,可以通過命令nslookup加上域名來查看:

上圖中Non-authoritative answer表示解析結(jié)果來自非權(quán)威服務(wù)器吕喘,也就是說這個(gè)結(jié)果來自緩存赘那,并沒有完全經(jīng)歷全部的解析過程,從某個(gè)緩存中讀取的結(jié)果氯质,這個(gè)結(jié)果存在一定的隱患募舟,比如域名對(duì)應(yīng)的IP地址已經(jīng)更變。

這只是一個(gè)快捷的解析結(jié)果闻察,如果需要瀏覽全部的解析過程胃珍,那么可以使用dig命令來查看解析過程。

分析上圖DNS解析過程蜓陌,我們可以看出:

第一步:從本地DNS域名解析服務(wù)器獲取到13個(gè)根DNS域名服務(wù)器(.)對(duì)應(yīng)的主機(jī)名觅彰。

第二步:從13個(gè)根域名服務(wù)器中的其中一個(gè)(這里是h.root-servers.net)獲取到頂級(jí)com.的服務(wù)器IP(未顯示)和名稱。

第三步:向com.域的一臺(tái)服務(wù)器192.43.172.30(i.gtld-servers.net)請(qǐng)求解析钮热,它返回了baidu.com域的服務(wù)器IP(未顯示)和名稱填抬,百度有四臺(tái)頂級(jí)域的服務(wù)器。

第四步:向百度的頂級(jí)域服務(wù)器220.181.37.10(ns3.baidu.com)請(qǐng)求www.baidu.com隧期,它發(fā)現(xiàn)這個(gè)www有個(gè)別名飒责,而不是一臺(tái)主機(jī),別名是www.a.shifen.com仆潮。

一般情況下宏蛉,DNS解析到別名就停止了,返回了具體的IP地址性置,如果想看到具體的IP地址拾并,可以進(jìn)一步對(duì)別名進(jìn)行解析,解析結(jié)果如下:

這時(shí)候看到最后的解析結(jié)果是180.97.33.107和180.97.33.108鹏浅。在解析別名的過程中嗅义,可以發(fā)現(xiàn)shifen.com和baidu.com都是指定了相同的域名解析服務(wù)器。以上是一個(gè)域名的解析過程隐砸,最后的解析結(jié)果和一開始的使用nslookup的結(jié)果一致之碗。

轉(zhuǎn)載自:https://blog.csdn.net/Lammonpeter/article/details/81358387

相關(guān)內(nèi)容:https://study.163.com/course/courseMain.htm?courseId=1210406206&share=2&shareId=480000002227524

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市季希,隨后出現(xiàn)的幾起案子褪那,更是在濱河造成了極大的恐慌幽纷,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件博敬,死亡現(xiàn)場離奇詭異霹崎,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)冶忱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門尾菇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人囚枪,你說我怎么就攤上這事派诬。” “怎么了链沼?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵默赂,是天一觀的道長。 經(jīng)常有香客問我括勺,道長缆八,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任疾捍,我火速辦了婚禮奈辰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘乱豆。我一直安慰自己奖恰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布宛裕。 她就那樣靜靜地躺著瑟啃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪揩尸。 梳的紋絲不亂的頭發(fā)上蛹屿,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音岩榆,去河邊找鬼错负。 笑死,一個(gè)胖子當(dāng)著我的面吹牛朗恳,可吹牛的內(nèi)容都是我干的湿颅。 我是一名探鬼主播载绿,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼粥诫,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了崭庸?” 一聲冷哼從身側(cè)響起怀浆,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤谊囚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后执赡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體镰踏,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年沙合,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了奠伪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡首懈,死狀恐怖绊率,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情究履,我是刑警寧澤滤否,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站最仑,受9級(jí)特大地震影響藐俺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜泥彤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一欲芹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧吟吝,春花似錦耀石、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至炕贵,卻和暖如春梆奈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背称开。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國打工亩钟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鳖轰。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓清酥,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蕴侣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子焰轻,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345