DNS域名詳細(xì)解析過程(最全面,看這一篇就夠)
時(shí)間:2023-02-13 13:03:02 | 來源:建站知識(shí)
時(shí)間:2023-02-13 13:03:02 來源:建站知識(shí)
什么是DNS域名解析 我們首先要了解域名和IP地址的區(qū)別。IP地址是互聯(lián)網(wǎng)上計(jì)算機(jī)唯一的邏輯地址,通過IP地址實(shí)現(xiàn)不同計(jì)算機(jī)之間的相互通信,每臺(tái)聯(lián)網(wǎng)計(jì)算機(jī)都需要通過IP地址來互相聯(lián)系和分別。
但由于IP地址是由一串容易混淆的數(shù)字串構(gòu)成,人們很難記憶所有計(jì)算機(jī)的IP地址,這樣對(duì)于我們?nèi)粘9ぷ魃钤L問不同網(wǎng)站是很困難的?;谶@種背景,人們?cè)贗P地址的基礎(chǔ)上又發(fā)展出了一種更易識(shí)別的符號(hào)化標(biāo)識(shí),這種標(biāo)識(shí)由人們自行選擇的字母和數(shù)字構(gòu)成,相比IP地址更易被識(shí)別和記憶,逐漸代替IP地址成為互聯(lián)網(wǎng)用戶進(jìn)行訪問互聯(lián)的主要入口。這種符號(hào)化標(biāo)識(shí)就是域名。
域名雖然更易被用戶所接受和使用,但計(jì)算機(jī)只能識(shí)別純數(shù)字構(gòu)成的IP地址,不能直接讀取域名。因此要想達(dá)到訪問效果,就需要將域名翻譯成IP地址。而DNS域名解析承擔(dān)的就是這種翻譯效果。
DNS域名解析過程
當(dāng)我們?cè)跒g覽器地址欄中輸入
http://www.baidu.com時(shí),DNS解析將會(huì)有將近10個(gè)步驟,這個(gè)過程大體大體由一張圖可以表示:
整個(gè)過程大體描述如下,其中前兩個(gè)步驟是在本地電腦內(nèi)完成的,后8個(gè)步驟涉及到真正的域名解析服務(wù)器:
第一步、本地電腦會(huì)檢查瀏覽器緩存中有沒有這個(gè)域名對(duì)應(yīng)的解析過的IP地址,如果緩存中有,這個(gè)解析過程就結(jié)束。瀏覽器緩存域名也是有限制的,不僅瀏覽器緩存大小有限制,而且緩存的時(shí)間也有限制,通常情況下為幾分鐘到幾小時(shí)不等,域名被緩存的時(shí)間限制可以通過TTL屬性來設(shè)置。這個(gè)緩存時(shí)間太長(zhǎng)和太短都不太好,如果時(shí)間太長(zhǎng),一旦域名被解析到的IP有變化,會(huì)導(dǎo)致被客戶端緩存的域名無法解析到變化后的IP地址,以致該域名不能正常解析,這段時(shí)間內(nèi)有一部分用戶無法訪問網(wǎng)站。如果設(shè)置時(shí)間太短,會(huì)導(dǎo)致用戶每次訪問網(wǎng)站都要重新解析一次域名。
第二步、如果瀏覽器緩存中沒有數(shù)據(jù),瀏覽器會(huì)查找操作系統(tǒng)緩存中是否有這個(gè)域名對(duì)應(yīng)的DNS解析結(jié)果。其實(shí)操作系統(tǒng)也有一個(gè)域名解析的過程,在Linux中可以通過/etc/hosts文件來設(shè)置,而在windows中可以通過配置C:/Windows/System32/drivers/etc/hosts文件來設(shè)置,用戶可以將任何域名解析到任何能夠訪問的IP地址。例如,我們?cè)跍y(cè)試時(shí)可以將一個(gè)域名解析到一臺(tái)測(cè)試服務(wù)器上,這樣不用修改任何代碼就能測(cè)試到單獨(dú)服務(wù)器上的代碼的業(yè)務(wù)邏輯是否正確。正是因?yàn)橛羞@種本地DNS解析的規(guī)程,所以有黑客就可能通過修改用戶的域名來把特定的域名解析到他指定的IP地址上,導(dǎo)致這些域名被劫持。
第三步、前兩個(gè)過程無法解析時(shí),就要用到我們網(wǎng)絡(luò)配置中的"DNS服務(wù)器地址"了。操作系統(tǒng)會(huì)把這個(gè)域名發(fā)送給這個(gè)本地DNS服務(wù)器。每個(gè)完整的內(nèi)網(wǎng)通常都會(huì)配置本地DNS服務(wù)器,例如用戶是在學(xué)校或工作單位接入互聯(lián)網(wǎng),那么用戶的本地DNS服務(wù)器肯定在學(xué)?;蚬ぷ鲉挝焕锩?。它們一般都會(huì)緩存域名解析結(jié)果,當(dāng)然緩存時(shí)間是受到域名的失效時(shí)間控制的。大約80%的域名解析到這里就結(jié)束了,后續(xù)的DNS迭代和遞歸也是由本地DNS服務(wù)器負(fù)責(zé)。
windows在這配置:控制面板-》網(wǎng)絡(luò)和共享中心-》更改適配器設(shè)置-》選中目標(biāo)適配器右鍵選擇屬性-》Internet協(xié)議版本4(TCP/IPv4)-》配置DNS地址。
第四步、如果本地DNS服務(wù)器仍然沒有命中,就直接到根DNS服務(wù)器請(qǐng)求解析。
第五步、根DNS服務(wù)器返回給本地DNS域名服務(wù)器一個(gè)頂級(jí)DNS服務(wù)器地址,它是國際頂級(jí)域名服務(wù)器,如.com、.cn、.org等,全球只有13臺(tái)左右。
第六步、本地DNS服務(wù)器再向上一步獲得的頂級(jí)DNS服務(wù)器發(fā)送解析請(qǐng)求。
第七步、接受請(qǐng)求的頂級(jí)DNS服務(wù)器查找并返回此域名對(duì)應(yīng)的Name Server域名服務(wù)器的地址,這個(gè)Name Server服務(wù)器就是我要訪問的網(wǎng)站域名提供商的服務(wù)器,其實(shí)該域名的解析任務(wù)就是由域名提供商的服務(wù)器來完成。 比如我要訪問
http://www.baidu.com,而這個(gè)域名是從A公司注冊(cè)獲得的,那么A公司上的服務(wù)器就會(huì)有
http://www.baidu.com的相關(guān)信息。
第八步、Name Server服務(wù)器會(huì)查詢存儲(chǔ)的域名和IP的映射關(guān)系表,再把查詢出來的域名和IP地址等等信息,連同一個(gè)TTL值返回給本地DNS服務(wù)器。
第九步、返回該域名對(duì)應(yīng)的IP和TTL值,本地DNS服務(wù)器會(huì)緩存這個(gè)域名和IP的對(duì)應(yīng)關(guān)系,緩存時(shí)間由TTL值控制。
第十步、把解析的結(jié)果返回給本地電腦,本地電腦根據(jù)TTL值緩存在本地系統(tǒng)緩存中,域名解析過程結(jié)束在實(shí)際的DNS解析過程中,可能還不止這10步,如Name Server可能有很多級(jí),或者有一個(gè)GTM來負(fù)載均衡控制,這都有可能會(huì)影響域名解析過程。
遞歸查詢和迭代查詢的區(qū)別 DNS客戶端和本地名稱服務(wù)器是遞歸,而本地名稱服務(wù)器和其他名稱服務(wù)器之間是迭代。
DNS遞歸名稱解析: 在DNS遞歸名稱解析中,當(dāng)所配置的本地名稱服務(wù)器解析不了時(shí),后面的查詢工作是由本地名稱服務(wù)器替代DNS客戶端進(jìn)行的(以“本地名稱服務(wù)器”為中心),只需要本地名稱服務(wù)器向DNS客戶端返回最終的查詢結(jié)果即可。
DNS迭代名稱解析:(或者叫“迭代查詢”)的所有查詢工作全部是DNS客戶端自己進(jìn)行(以“DNS客戶端”自己為中心)。在條件之一滿足時(shí)就會(huì)采用迭代名稱解析方式:
在查詢本地名稱服務(wù)器時(shí),如果客戶端的請(qǐng)求報(bào)文中沒有申請(qǐng)使用遞歸查詢,即在DNS請(qǐng)求報(bào)頭部的RD字段沒有置1。相當(dāng)于說“你都沒有主動(dòng)要求我為你進(jìn)行遞歸查詢,我當(dāng)然不會(huì)為你工作了”。
客戶端在DNS請(qǐng)求報(bào)文中申請(qǐng)使用的是遞歸查詢(也就是RD字段置1了),但在所配置的本地名稱服務(wù)器上是禁用遞歸查詢(DNS服務(wù)器一般默認(rèn)支持遞歸查詢的),即在應(yīng)答DNS報(bào)文頭部的RA字段置0。
域名解析記錄主要分為A記錄、MX記錄、CNAME記錄、NS記錄和TXT記錄:
1、A記錄
A代表Address,用來指定域名對(duì)應(yīng)的IP地址,如將
http://item.taobao.com指定到
http://115.238.23.xxx,將
http://switch.taobao.com指定到
http://121.14.24.xxx。A記錄可以將多個(gè)域名解析到一個(gè)IP地址,但是不能將一個(gè)域名解析到多個(gè)IP地址
2、MX記錄
Mail Exchange,就是可以將某個(gè)域名下的郵件服務(wù)器指向自己的Mail Server,如
http://taobao.com域名的A記錄IP地址是
http://115.238.25.xxx,如果將MX記錄設(shè)置為
http://115.238.25.xxx,即xxx@taobao.com的郵件路由,DNS會(huì)將郵件發(fā)送到
http://115.238.25.xxx所在的服務(wù)器,而正常通過Web請(qǐng)求的話仍然解析到A記錄的IP地址
3、CNAME記錄
Canonical Name,即別名解析。所謂別名解析就是可以為一個(gè)域名設(shè)置一個(gè)或者多個(gè)別名,如將
http://aaa.com解析到
http://bbb.net、將
http://ccc.com也解析到
http://bbb.net,其中
http://bbb.net分別是
http://aaa.com和
http://ccc.com的別名
4、NS記錄
為某個(gè)域名指定DNS解析服務(wù)器,也就是這個(gè)域名由指定的IP地址的DNS服務(wù)器取解析
5、TXT記錄
為某個(gè)主機(jī)名或域名設(shè)置說明,如可以為
http://ddd.net設(shè)置TXT記錄為"這是XXX的本站"這樣的說明