dns解析原理 - dns解析過程詳解_dns解析原理
dns解析原理
一、域名系統(tǒng)
1、域名系統(tǒng)概述
域名系統(tǒng)DNS(Domain Name System)是因特網(wǎng)使用的命名系統(tǒng),用來把便于人們使用的機器名字轉(zhuǎn)換成為IP地址。域名系統(tǒng)其實就是名字系統(tǒng)。為什么不叫“名字”而叫“域名”呢?這是因為在這種因特網(wǎng)的命名系統(tǒng)中使用了許多的“域(domain)”,因此就出現(xiàn)了“域名”這個名詞?!坝蛎到y(tǒng)”明確地指明這種系統(tǒng)是應(yīng)用在因特網(wǎng)中。
我們都知道,IP地址是由32位的二進制數(shù)字組成的。用戶與因特網(wǎng)上某臺主機通信時,顯然不愿意使用很難記憶的長達32位的二進制主機地址。即使是點分十進制IP地址也并不太容易記憶。相反,大家愿意使用比較容易記憶的主機名字。但是,機器在處理IP數(shù)據(jù)報時,并不是使用域名而是使用IP地址。這是因為IP地址長度固定,而域名的長度不固定,機器處理起來比較困難。
因為因特網(wǎng)規(guī)模很大,所以整個因特網(wǎng)只使用一個域名服務(wù)器是不可行的。因此,早在1983年因特網(wǎng)開始采用層次樹狀結(jié)構(gòu)的命名方法,并使用分布式的域名系統(tǒng)DNS。并采用客戶服務(wù)器方式。DNS使大多數(shù)名字都在本地解析(resolve),僅有少量解析需要在因特網(wǎng)上通信,因此DNS系統(tǒng)的效率很高。由于DNS是分布式系統(tǒng),即使單個計算機除了故障,也不會妨礙整個DNS系統(tǒng)的正常運行。
域名到IP地址的解析是由分布在因特網(wǎng)上的許多域名服務(wù)器程序共同完成的。域名服務(wù)器程序在專設(shè)的結(jié)點上運行,而人們也常把運行域名服務(wù)器程序的機器稱為域名服務(wù)器。
域名到IP地址的解析過程的要點如下:當(dāng)某一個應(yīng)用需要把主機名解析為IP地址時,該應(yīng)用進程就調(diào)用解析程序,并稱為DNS的一個客戶,把待解析的域名放在DNS請求報文中,以UDP用戶數(shù)據(jù)報方式發(fā)給本地域名服務(wù)器。本地域名服務(wù)器在查找域名后,把對應(yīng)的IP地址放在回答報文中返回。應(yīng)用程序獲得目的主機的IP地址后即可進行通信。
若本地域名服務(wù)器不能回答該請求,則此域名服務(wù)器就暫時稱為DNS的另一個客戶,并向其他域名服務(wù)器發(fā)出查詢請求。這種過程直至找到能夠回答該請求的域名服務(wù)器為止。此過程在后面作進一步討論。
2、因特網(wǎng)的域名結(jié)構(gòu)
由于因特網(wǎng)的用戶數(shù)量較多,所以因特網(wǎng)在命名時采用的是層次樹狀結(jié)構(gòu)的命名方法。任何一個連接在因特網(wǎng)上的主機或路由器,都有一個唯一的層次結(jié)構(gòu)的名字,即域名(domain name)。這里,“域”(domain)是名字空間中一個可被管理的劃分。
從語法上講,每一個域名都是有標(biāo)號(label)序列組成,而各標(biāo)號之間用點(小數(shù)點)隔開。
如下例子所示:
這是中央電視臺用于手法電子郵件的計算機的域名,它由三個標(biāo)號組成,其中標(biāo)號com是頂級域名,標(biāo)號cctv是二級域名,標(biāo)號mail是三級域名。
DNS規(guī)定,域名中的標(biāo)號都有英文和數(shù)字組成,每一個標(biāo)號不超過63個字符(為了記憶方便,一般不會超過12個字符),也不區(qū)分大小寫字母。標(biāo)號中除連字符(-)外不能使用其他的標(biāo)點符號。級別最低的域名寫在最左邊,而級別最高的字符寫在最右邊。由多個標(biāo)號組成的完整域名總共不超過255個字符。DNS既不規(guī)定一個域名需要包含多少個下級域名,也不規(guī)定每一級域名代表什么意思。各級域名由其上一級的域名管理機構(gòu)管理,而最高的頂級域名則由ICANN進行管理。用這種方法可使每一個域名在整個互聯(lián)網(wǎng)范圍內(nèi)是唯一的,并且也容易設(shè)計出一種查找域名的機制。
域名只是邏輯概念,并不代表計算機所在的物理地點。據(jù)2006年12月統(tǒng)計,現(xiàn)在頂級域名TLD(Top Level Domain)已有265個,分為三大類:
(1)國家頂級域名nTLD:采用ISO3166的規(guī)定。如:cn代表中國,us代表美國,uk代表英國,等等。國家域名又常記為ccTLD(cc表示國家代碼contry-code)。
(2)通用頂級域名gTLD:最常見的通用頂級域名有7個,即:com(公司企業(yè)),net(網(wǎng)絡(luò)服務(wù)機構(gòu)),org(非營利組織),int(國際組織),gov(美國的政府部門),mil(美國的軍事部門)。
(3)基礎(chǔ)結(jié)構(gòu)域名(infrastructure domain):這種頂級域名只有一個,即arpa,用于反向域名解析,因此稱為反向域名。
3、域名服務(wù)器
如果采用上述的樹狀結(jié)構(gòu),每一個節(jié)點都采用一個域名服務(wù)器,這樣會使得域名服務(wù)器的數(shù)量太多,使域名服務(wù)器系統(tǒng)的運行效率降低。所以在DNS中,采用劃分區(qū)的方法來解決。
一個服務(wù)器所負(fù)責(zé)管轄(或有權(quán)限)的范圍叫做區(qū)(zone)。各單位根據(jù)具體情況來劃分自己管轄范圍的區(qū)。但在一個區(qū)中的所有節(jié)點必須是能夠連通的。每一個區(qū)設(shè)置相應(yīng)的權(quán)限域名服務(wù)器,用來保存該區(qū)中的所有主機到域名IP地址的映射。總之,DNS服務(wù)器的管轄范圍不是以“域”為單位,而是以“區(qū)”為單位。區(qū)是DNS服務(wù)器實際管轄的范圍。區(qū) 《= 域。
下圖是區(qū)的不同劃分方法的舉例。假定abc公司有下屬部門x和y,部門x下面有分三個分布們u,v,w,而y下面還有下屬部門t。圖a表示abc公司只設(shè)一個區(qū)abc.com。這是,區(qū)abc.com和域abc.com指的是同一件事。但圖b表示abc公司劃分為兩個區(qū):abc.com和y.abc.com。這兩個區(qū)都隸屬于域abc.com,都各設(shè)置了相應(yīng)的權(quán)限域名服務(wù)器。不難看出,區(qū)是域的子集。
下圖是以上圖b中abc公司劃分的兩個區(qū)為例,給出了DNS域名服務(wù)器樹狀結(jié)構(gòu)圖。這種DNS域名服務(wù)器樹狀結(jié)構(gòu)圖可以更準(zhǔn)確地反映出DNS的分布式結(jié)構(gòu)。圖中的每一個域名服務(wù)器都能夠部分域名到IP地址的解析。當(dāng)某個DNS服務(wù)器不能進行域名到IP地址的轉(zhuǎn)換時,它就會設(shè)法找因特網(wǎng)上別的域名服務(wù)器進行解析。
從下圖可以看出,因特網(wǎng)上的DNS服務(wù)器也是按照層次安排的。每一個域名服務(wù)器只對域名體系中的一部分進行管轄。根據(jù)域名服務(wù)器所起的作用,可以把域名服務(wù)器劃分為下面四種不同的類型。
根域名服務(wù)器:最高層次的域名服務(wù)器,也是最重要的域名服務(wù)器。所有的根域名服務(wù)器都知道所有的頂級域名服務(wù)器的域名和IP地址。不管是哪一個本地域名服務(wù)器,若要對因特網(wǎng)上任何一個域名進行解析,只要自己無法解析,就首先求助根域名服務(wù)器。所以根域名服務(wù)器是最重要的域名服務(wù)器。假定所有的根域名服務(wù)器都癱瘓了,那么整個DNS系統(tǒng)就無法工作。需要注意的是,在很多情況下,根域名服務(wù)器并不直接把待查詢的域名直接解析出IP地址,而是告訴本地域名服務(wù)器下一步應(yīng)當(dāng)找哪一個頂級域名服務(wù)器進行查詢。
頂級域名服務(wù)器:負(fù)責(zé)管理在該頂級域名服務(wù)器注冊的二級域名。
權(quán)限域名服務(wù)器:負(fù)責(zé)一個“區(qū)”的域名服務(wù)器。
本地域名服務(wù)器:本地服務(wù)器不屬于下圖的域名服務(wù)器的層次結(jié)構(gòu),但是它對域名系統(tǒng)非常重要。當(dāng)一個主機發(fā)出DNS查詢請求時,這個查詢請求報文就發(fā)送給本地域名服務(wù)器。
4、域名的解析過程
注意:
一、主機向本地域名服務(wù)器的查詢一般都是采用遞歸查詢。所謂遞歸查詢就是:如果主機所詢問的本地域名服務(wù)器不知道被查詢的域名的IP地址,那么本地域名服務(wù)器就以DNS客戶的身份,向其它根域名服務(wù)器繼續(xù)發(fā)出查詢請求報文(即替主機繼續(xù)查詢),而不是讓主機自己進行下一步查詢。因此,遞歸查詢返回的查詢結(jié)果或者是所要查詢的IP地址,或者是報錯,表示無法查詢到所需的IP地址。
二、本地域名服務(wù)器向根域名服務(wù)器的查詢的迭代查詢。迭代查詢的特點:當(dāng)根域名服務(wù)器收到本地域名服務(wù)器發(fā)出的迭代查詢請求報文時,要么給出所要查詢的IP地址,要么告訴本地服務(wù)器:“你下一步應(yīng)當(dāng)向哪一個域名服務(wù)器進行查詢”。然后讓本地服務(wù)器進行后續(xù)的查詢。根域名服務(wù)器通常是把自己知道的頂級域名服務(wù)器的IP地址告訴本地域名服務(wù)器,讓本地域名服務(wù)器再向頂級域名服務(wù)器查詢。頂級域名服務(wù)器在收到本地域名服務(wù)器的查詢請求后,要么給出所要查詢的IP地址,要么告訴本地服務(wù)器下一步應(yīng)當(dāng)向哪一個權(quán)限域名服務(wù)器進行查詢。最后,知道了所要解析的IP地址或報錯,然后把這個結(jié)果返回給發(fā)起查詢的主機。
下圖給出了這兩種查詢的差別
下面舉一個例子演示整個查詢過程:
假定域名為m.xyz.com的主機想知道另一個主機y.abc.com的IP地址。例如,主機m.xyz.com打算發(fā)送郵件給y.abc.com。這時就必須知道主機y.abc.com的IP地址。下面是上圖a的幾個查詢步驟:
1、主機m.abc.com先向本地服務(wù)器dns.xyz.com進行遞歸查詢。
2、本地服務(wù)器采用迭代查詢。它先向一個根域名服務(wù)器查詢。
3、根域名服務(wù)器告訴本地服務(wù)器,下一次應(yīng)查詢的頂級域名服務(wù)器dns.com的IP地址。
4、本地域名服務(wù)器向頂級域名服務(wù)器dns.com進行查詢。
5、頂級域名服務(wù)器dns.com告訴本地域名服務(wù)器,下一步應(yīng)查詢的權(quán)限服務(wù)器dns.abc.com的IP地址。
6、本地域名服務(wù)器向權(quán)限域名服務(wù)器dns.abc.com進行查詢。
7、權(quán)限域名服務(wù)器dns.abc.com告訴本地域名服務(wù)器,所查詢的主機的IP地址。
8、本地域名服務(wù)器最后把查詢結(jié)果告訴m.xyz.com。
整個查詢過程共用到了8個UDP報文。
為了提高DNS查詢效率,并減輕服務(wù)器的負(fù)荷和減少因特網(wǎng)上的DNS查詢報文數(shù)量,在域名服務(wù)器中廣泛使用了高速緩存,用來存放最近查詢過的域名以及從何處獲得域名映射信息的記錄。
例如,在上面的查詢過程中,如果在m.xyz.com的主機上不久前已經(jīng)有用戶查詢過y.abc.com的IP地址,那么本地域名服務(wù)器就不必向根域名服務(wù)器重新查詢y.abc.com的IP地址,而是直接把告訴緩存中存放的上次查詢結(jié)果(即y.abc.com的IP地址)告訴用戶。
由于名字到地址的綁定并不經(jīng)常改變,為保持告訴緩存中的內(nèi)容正確,域名服務(wù)器應(yīng)為每項內(nèi)容設(shè)置計時器并處理超過合理時間的項(例如每個項目兩天)。當(dāng)域名服務(wù)器已從緩存中刪去某項信息后又被請求查詢該項信息,就必須重新到授權(quán)管理該項的域名服務(wù)器綁定信息。當(dāng)權(quán)限服務(wù)器回答一個查詢請求時,在響應(yīng)中都指明綁定有效存在的時間值。增加此時間值可減少網(wǎng)絡(luò)開銷,而減少此時間值可提高域名解析的正確性。
不僅在本地域名服務(wù)器中需要高速緩存,在主機中也需要。許多主機在啟動時從本地服務(wù)器下載名字和地址的全部數(shù)據(jù)庫,維護存放自己最近使用的域名的高速緩存,并且只在從緩存中找不到名字時才使用域名服務(wù)器。維護本地域名服務(wù)器數(shù)據(jù)庫的主機應(yīng)當(dāng)定期地檢查域名服務(wù)器以獲取新的映射信息,而且主機必須從緩存中刪除無效的項。由于域名改動并不頻繁,大多數(shù)網(wǎng)點不需花精力就能維護數(shù)據(jù)庫的一致性。
- 第 1 頁:dns解析過程詳解_dns解析原理
- 第 2 頁:dns解析原理
本文導(dǎo)航
非常好我支持^.^
(17) 100%
不好我反對
(0) 0%
相關(guān)閱讀:
- [電子說] 亞馬遜云科技宣布Amazon Trainium2實例正式可用 2024-12-06
- [電子說] 虛擬化數(shù)據(jù)恢復(fù)—VMware ESX服務(wù)器常見故障的數(shù)據(jù)恢復(fù)方案 2024-12-05
- [電子說] 常用的服務(wù)器負(fù)載均衡多少錢一臺? 2024-12-05
- [電子說] 兆芯亮相2024數(shù)字科技生態(tài)大會 2024-12-05
- [電子說] 浪涌保護器在數(shù)據(jù)中心的重要性 2024-12-05
- [電子說] 服務(wù)器數(shù)據(jù)恢復(fù)—RAID5陣列熱備盤同步數(shù)據(jù)失敗的數(shù)據(jù)恢復(fù)案例 2024-12-04
- [電子說] UPS不間斷電源能保護哪些設(shè)備 2024-12-04
- [電子說] 不同配置云服務(wù)器及硬盤費用一覽 2024-12-04
( 發(fā)表人:龔婷 )