淺析DNS域名解析過程

一、DNS域名解析步驟

下圖是DNS域名解析的一個示例圖,它涵蓋了基本解析步驟和原理。

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

第一步:檢查瀏覽器緩存中是否緩存過該域名對應的IP地址

用戶通過瀏覽器瀏覽過某網站之后,瀏覽器就會自動緩存該網站域名對應的IP地址,當用戶再次訪問的時候,瀏覽器就會從緩存中查找該域名對應的IP地址,因為緩存不僅是有大小限制,而且還有時間限制(域名被緩存的時間通過TTL屬性來設置),所以存在域名對應的IP找不到的情況。當瀏覽器從緩存中找到了該網站域名對應的IP地址,那么整個DNS解析過程結束,如果沒有找到,將進行下一步驟。對于IP的緩存時間問題,不宜設置太長的緩存時間,時間太長,如果域名對應的IP發生變化,那么用戶將在一段時間內無法正常訪問到網站,如果太短,那么又造成頻繁解析域名。

第二步:如果在瀏覽器緩存中沒有找到IP,那么將繼續查找本機系統是否緩存過IP

如果第一個步驟沒有完成對域名的解析過程,那么瀏覽器會去系統緩存中查找系統是否緩存過這個域名對應的IP地址,也可以理解為系統自己也具備域名解析的基本能力。在Windows系統中,可以通過設置hosts文件來將域名手動綁定到某IP上,hosts文件位置在C:\Windows\System32\drivers\etc\hosts。對于普通用戶,并不推薦自己手動綁定域名和IP,對于開發者來說,通過綁定域名和IP,可以輕松切換環境,可以從測試環境切換到開發環境,方便開發和測試。在XP系統中,黑客常常修改他的電腦的hosts文件,將用戶常常訪問的域名綁定到他指定的IP上,從而實現了本地DNS解析,導致這些域名被劫持。在Linux或者Mac系統中,hosts文件在/etc/hosts,修改該文件也可以實現同樣的目的。

前兩步都是在本機上完成的,所以沒有在上面示例圖上展示出來,從第三步開始,才正在地向遠程DNS服務器發起解析域名的請求。

第三步:向本地域名解析服務系統發起域名解析的請求

如果在本機上無法完成域名的解析,那么系統只能請求本地域名解析服務系統進行解析,本地域名系統LDNS一般都是本地區的域名服務器,比如你連接的校園網,那么域名解析系統就在你的校園機房里,如果你連接的是電信、移動或者聯通的網絡,那么本地域名解析服務器就在本地區,由各自的運營商來提供服務。對于本地DNS服務器地址,Windows系統使用命令ipconfig就可以查看,在Linux和Mac系統下,直接使用命令cat /etc/resolv.conf來查看LDNS服務地址。LDNS一般都緩存了大部分的域名解析的結果,當然緩存時間也受域名失效時間控制,大部分的解析工作到這里就差不多已經結束了,LDNS負責了大部分的解析工作。

第四步:向根域名解析服務器發起域名解析請求

本地DNS域名解析器還沒有完成解析的話,那么本地域名解析服務器將向根域名服務器發起解析請求。

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

本地DNS域名解析向根域名服務器發起解析請求,根域名服務器返回的是所查域的通用頂級域(Generic top-level domain,gTLD)地址,常見的通用頂級域有.com、.cn、.org、.edu等。

第六步:向gTLD服務器發起解析請求

本地域名解析服務器向gTLD服務器發起請求。

第七步:gTLD服務器接收請求并返回Name Server服務器

gTLD服務器接收本地域名服務器發起的請求,并根據需要解析的域名,找到該域名對應的Name Server域名服務器,通常情況下,這個Name Server服務器就是你注冊的域名服務器,那么你注冊的域名的服務商的服務器將承擔起域名解析的任務。

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

Name Server服務器查找域名對應的IP地址,將IP地址連同TTL值返回給本地域名服務器。

第九步:本地域名服務器緩存解析結果

本地域名服務器緩存解析后的結果,緩存時間由TTL時間來控制。

第十步:返回解析結果給用戶

解析結果將直接返回給用戶,用戶系統將緩存該IP地址,緩存時間由TTL來控制,至此,解析過程結束。

這里對DNS解析的步驟進行了一個簡單的介紹分析,后面將通過命令行的形式來解析一個域名的具體解析過程。

二、DNS域名解析過程分析

在正式開始分析解析過程之前,先來介紹幾個基本的域名解析方式的概念。域名解析記錄主要分為A記錄、MX記錄、CNAME記錄、NS記錄以及TXT記錄。

A記錄:A代表的是Address,用來指定域名對應的IP地址,比如將map.baidu.com指定到180.97.34.157,將zhidao.baidu.com指定到180.149.131.245,A記錄允許將多個域名解析到一個IP地址,但不允許將一個域名解析到多個IP地址上。

MX記錄:MX代表的是Mail Exchage,就是可以將某個域名下的郵件服務器指向自己的Mail Server,如baidu.com域名的A記錄IP地址是180.97.34.157,如果將MX記錄設置為180.97.34.154,即xxx@baidu.com的郵件路由,那么DNS會將郵件發送到180.97.34.154所在的服務器,而正常web請求仍然會解析到A記錄的IP地址180.97.34.157。

CNAME記錄:CNAME指的就是Canonical Name,也就是別名解析,可以將指定的域名解析到其他域名上,而其他域名就是指定域名的別名,整個解析過程稱為別名解析。比如將baidu.com解析到itlemon.cn,將csdn.net解析到itlemon.cn,那么itlemon.cn就是baidu.com和CSDN.net的別名。

NS記錄:就是為某個域名指定了特定的DNS服務器去解析。

TXT記錄:為某個主機名或者域名設置特定的說明,比如為itlemon.cn設置的的TXT記錄為“Lemon的技術筆記”,這個TXT記錄為itlemon.cn的說明。

上面概念中的IP地址都是假定的,幫助理解。下面將通過解析域名baidu.com為例,進一步說明域名解析流程。

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

上圖中Non-authoritative answer表示解析結果來自非權威服務器,也就是說這個結果來自緩存,并沒有完全經歷全部的解析過程,從某個緩存中讀取的結果,這個結果存在一定的隱患,比如域名對應的IP地址已經更變。

這只是一個快捷的解析結果,如果需要瀏覽全部的解析過程,那么可以使用dig命令來查看解析過程。

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

第一步:從本地DNS域名解析服務器獲取到13個根DNS域名服務器(.)對應的主機名。

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

第三步:向com.域的一臺服務器192.43.172.30(i.gtld-servers.net)請求解析,它返回了baidu.com域的服務器IP(未顯示)和名稱,百度有四臺頂級域的服務器。

第四步:向百度的頂級域服務器220.181.37.10(ns3.baidu.com)請求www.baidu.com,它發現這個www有個別名,而不是一臺主機,別名是www.a.shifen.com。

一般情況下,DNS解析到別名就停止了,返回了具體的IP地址,如果想看到具體的IP地址,可以進一步對別名進行解析,解析結果如下:

這時候看到最后的解析結果是180.97.33.107和180.97.33.108。在解析別名的過程中,可以發現shifen.com和baidu.com都是指定了相同的域名解析服務器。以上是一個域名的解析過程,最后的解析結果和一開始的使用nslookup的結果一致。

轉載自:https://blog.csdn.net/Lammonpeter/article/details/81358387

相關內容:https://study.163.com/course/courseMain.htm?courseId=1210406206&share=2&shareId=480000002227524

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,333評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,491評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,263評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,946評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,708評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,409評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,939評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,774評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,209評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,641評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,872評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,650評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373