今天來(lái)跟大家普及一下,會(huì)是DNS解析,域名為什么要解析
2022-12-05 加入收藏
Internet上的成千上萬(wàn)臺(tái)主機(jī)都是通過(guò)IP地址來(lái)區(qū)分的,而訪(fǎng)問(wèn)這些主機(jī)的時(shí)候,顯然很難記住每一個(gè)沒(méi)有任何意義和規(guī)律的長(zhǎng)達(dá)32位的二進(jìn)制地址,即便是記住點(diǎn)分十進(jìn)制的IP地址也是一件很令人頭疼的事情。能否用一些方便記憶的形式來(lái)訪(fǎng)問(wèn)網(wǎng)絡(luò)中的主機(jī)呢?相比之下,人們顯然更愿意并且更容易記住那些有規(guī)律的、有實(shí)際意義的主機(jī)名字。但是網(wǎng)絡(luò)通信時(shí)只能識(shí)別二進(jìn)制的IP地址,這就需要一種機(jī)制來(lái)完成主機(jī)名字到二進(jìn)制IP地址的轉(zhuǎn)換工作。
在ARPANet時(shí)代,整個(gè)網(wǎng)絡(luò)上只有數(shù)百臺(tái)計(jì)算機(jī),那時(shí)使用一個(gè)host.txt文件,里面記錄了所有主機(jī)名及其相對(duì)應(yīng)的二進(jìn)制IP地址,主機(jī)名字管理由網(wǎng)絡(luò)信息中心NIC集中完成。當(dāng)用戶(hù)需要同某個(gè)主機(jī)進(jìn)行通信時(shí),只要用戶(hù)輸入這個(gè)主機(jī)的名字,計(jì)算機(jī)就能夠很快地查出相應(yīng)的二進(jìn)制IP地址并進(jìn)行轉(zhuǎn)換。對(duì)于只有幾百個(gè)分時(shí)運(yùn)行的計(jì)算機(jī)的網(wǎng)絡(luò),這個(gè)方法還是很有效的。但是當(dāng)網(wǎng)絡(luò)的規(guī)模不斷擴(kuò)大,主機(jī)數(shù)越來(lái)越多時(shí),NIC根據(jù)網(wǎng)絡(luò)的變化不斷改動(dòng)host.txt文件,并定期向全網(wǎng)絡(luò)進(jìn)行傳遞。這使得host文件越來(lái)越難以管理,網(wǎng)絡(luò)用戶(hù)不能忍受自己的主機(jī)名需要等待很長(zhǎng)乃至幾天的時(shí)間才能加在host.txt文件中,更何況還有命名沖突的可能(除非全網(wǎng)絡(luò)的主機(jī)名被統(tǒng)一管理,這在一個(gè)復(fù)雜的國(guó)際網(wǎng)絡(luò)上顯然是不現(xiàn)實(shí)的)。另外,頻繁的host.txt文件下載請(qǐng)求對(duì)維護(hù)站主機(jī)造成了巨大的壓力,服務(wù)的質(zhì)量得不到保證,一旦維護(hù)站出了故障,整個(gè)網(wǎng)絡(luò)就會(huì)癱瘓。
因此,迫切需要一個(gè)簡(jiǎn)單的管理方法來(lái)解決這些問(wèn)題。
1984年,因特網(wǎng)開(kāi)始采用層次式的名字空間組織方案——域名系統(tǒng)DNS(Domain Name System),并使用分布式數(shù)據(jù)庫(kù)管理整個(gè)名字空間。域名系統(tǒng)在RFC1034和RFC1035中定義,并已成為因特網(wǎng)的正式標(biāo)準(zhǔn)。
當(dāng)網(wǎng)絡(luò)上的一臺(tái)客戶(hù)機(jī)需要訪(fǎng)問(wèn)耨服務(wù)器上資源時(shí),客戶(hù)機(jī)的用戶(hù)只需在瀏覽器的地址文本框中數(shù)據(jù)該服務(wù)器網(wǎng)址,就可以與該服務(wù)器連接,計(jì)算機(jī)的硬件只能識(shí)別IP地址,不能識(shí)別其他類(lèi)型地址,這樣在用戶(hù)容易記住的地址和計(jì)算機(jī)能夠識(shí)別的地址之間就需要轉(zhuǎn)換,DNS服務(wù)器便充當(dāng)這個(gè)地址解析的角色
DNS是域名系統(tǒng)的縮寫(xiě)(Domain Name System)
是一種組織成域?qū)哟谓Y(jié)構(gòu)的計(jì)算機(jī)和網(wǎng)絡(luò)服務(wù)命名系統(tǒng)
采用層次化、分布式、客戶(hù)-服務(wù)器模式的名字管理代替原來(lái)的集中式管理
允許命名管理者在較低的結(jié)構(gòu)層次上管理用戶(hù)自己的名字
這樣把名字空間劃分的足夠小,由不同的組織進(jìn)行分散管理,使名字管理更加靈活和方便
DNS主要包含三部分的內(nèi)容:
層次樹(shù)型結(jié)構(gòu)的域名空間(Domain Name Space)、
存儲(chǔ)有關(guān)域名及其二進(jìn)制IP地址信息的名字服務(wù)器(Name Server)
實(shí)現(xiàn)域名與IP地址轉(zhuǎn)換的解析器(Resolver)。
DNS系統(tǒng)采用客戶(hù)/服務(wù)器工作方式。
解析器駐留在客戶(hù)端,按用戶(hù)的需要?jiǎng)?chuàng)建查詢(xún)請(qǐng)求并提交給名字服務(wù)器,同時(shí)將查詢(xún)結(jié)果返回給客戶(hù),因此人們習(xí)慣將域名到二進(jìn)制IP地址的轉(zhuǎn)換過(guò)程叫做域名解析。
運(yùn)行在專(zhuān)門(mén)的網(wǎng)絡(luò)節(jié)點(diǎn)上保存域名樹(shù)結(jié)構(gòu)(部分或者全部域名空間)和相應(yīng)的信息的分布式數(shù)據(jù)庫(kù)系統(tǒng)稱(chēng)為名字服務(wù)器。
在DNS中,域名服務(wù)器是一個(gè)服務(wù)器軟件,運(yùn)行于指定的計(jì)算機(jī),完成域名-IP地址的映射
理論上講可以只使用一個(gè)域名服務(wù)器來(lái)管理網(wǎng)絡(luò)上的所有主機(jī)名,并回答所有的IP查詢(xún)
然而網(wǎng)絡(luò)規(guī)模不斷擴(kuò)大,這種方式下域名服務(wù)器負(fù)荷越來(lái)越重,會(huì)導(dǎo)致無(wú)法工作
該域名服務(wù)器一旦出現(xiàn)故障,整個(gè)網(wǎng)絡(luò)就會(huì)癱瘓。所以DNS采用聯(lián)機(jī)分布式數(shù)據(jù)庫(kù)系統(tǒng)。
DNS的分布式結(jié)構(gòu)使得系統(tǒng)的生存性增強(qiáng),即使某個(gè)服務(wù)器出了故障,整個(gè)系統(tǒng)還能正常運(yùn)行;而客戶(hù)/服務(wù)器的工作方式促使大多數(shù)名字解析任務(wù)在本地完成,降低了因特網(wǎng)的通信量,提高了系統(tǒng)的效率。
域名空間(層次型域名系統(tǒng))
網(wǎng)絡(luò)主機(jī)命名的三個(gè)問(wèn)題:
主機(jī)名字的唯一性
要想因特網(wǎng)正常工作,和IP地址一樣,網(wǎng)絡(luò)上任何一個(gè)計(jì)算機(jī)的域名也必須是惟一的。
便于管理
便于映射
為了便于管理和查詢(xún),域名空間使用層次的樹(shù)狀結(jié)構(gòu)。
域名的具體結(jié)構(gòu)或命名規(guī)則稱(chēng)為域名空間。
DNS的分層管理機(jī)制采用一個(gè)規(guī)則的樹(shù)形結(jié)構(gòu)的名字空間
每個(gè)節(jié)點(diǎn)都有一個(gè)獨(dú)立的節(jié)點(diǎn)名字,即標(biāo)號(hào)
空標(biāo)號(hào)“”保留為根,兄弟節(jié)點(diǎn)(同一父節(jié)點(diǎn)的各個(gè)子節(jié)點(diǎn))不允許重名
非兄弟節(jié)點(diǎn)可以重名,葉節(jié)點(diǎn)通常用來(lái)代表主機(jī)
DNS將整個(gè)名字空間分成若干個(gè)域
一個(gè)節(jié)點(diǎn)的域由該節(jié)點(diǎn)及該節(jié)點(diǎn)以下的名字空間組成
一個(gè)域是樹(shù)型域名空間的一顆字?jǐn)?shù),每個(gè)域都有一個(gè)域名
域名定義了該域在分布式主機(jī)數(shù)據(jù)庫(kù)中的位置
每個(gè)域還可以再劃分為子域,子域是域的子集
看上去像是一棵倒置的樹(shù),樹(shù)中每個(gè)節(jié)點(diǎn)和特定層次的域相對(duì)應(yīng),越靠近樹(shù)根級(jí)別越高。
根域下面是頂級(jí)域,頂級(jí)域之下是二級(jí)域,再下面是三級(jí)域,依此類(lèi)推。
域(Domain)是樹(shù)狀的域名空間中的一棵子樹(shù),代表因特網(wǎng)的某個(gè)可被管理的資源集合;
域還可以根據(jù)需要被進(jìn)一步劃分為子域。
樹(shù)葉是Internet上一臺(tái)主機(jī)的名稱(chēng),通常是因特網(wǎng)上提供特定服務(wù)的服務(wù)器主機(jī)的名稱(chēng),
例如www、ftp、mail等等,它的下面就不能再劃分子域了。
在域名樹(shù)中的中間節(jié)點(diǎn)和葉子統(tǒng)稱(chēng)為節(jié)點(diǎn)。
每個(gè)節(jié)點(diǎn)域有一個(gè)名字(不超過(guò)63個(gè)字符,且不用區(qū)分大小寫(xiě)字母),
不同的節(jié)點(diǎn)域可以使用相同的名字,
根節(jié)點(diǎn)沒(méi)有名字。
某個(gè)節(jié)點(diǎn)的完整域名由從該節(jié)點(diǎn)到根的標(biāo)記序列構(gòu)成
中間以“.”(小數(shù)點(diǎn))為分隔。
寫(xiě)的時(shí)候由左至右按級(jí)別依次從低到高書(shū)寫(xiě),最右邊為頂級(jí)域,
如..三級(jí)域.二級(jí)域.頂級(jí)域
域名lib.pku.edu.cn由lib,pku,edu,cn共四個(gè)節(jié)點(diǎn)標(biāo)識(shí)符組成,
這些標(biāo)識(shí)符通常稱(chēng)為標(biāo)號(hào)
每個(gè)標(biāo)號(hào)后面的各個(gè)標(biāo)號(hào)稱(chēng)為域
在lib.pku.edu.cn中最低級(jí)域?yàn)閘ib.pku.edu.cn,第三級(jí)域是pku.edu.cn,代表北京大學(xué);第二級(jí)域是edu.cn代表教育機(jī)構(gòu);頂級(jí)域?yàn)閏n代表中國(guó)
這種類(lèi)似文件目錄樹(shù)的層次結(jié)構(gòu)保證了每一個(gè)域名在全因特網(wǎng)范圍內(nèi)是唯一的。雖然有的節(jié)點(diǎn)域使用了相同的名字,但是它們隸屬于不同的父域,下面又劃分不同的子域,因而保證了節(jié)點(diǎn)的完整域名在全網(wǎng)是唯一的
例如,www.tsinghua.edu.cn、mail.xjtu.edu.cn、www.xjtu.edu.cn,其中第1,3個(gè)計(jì)算機(jī)的名字都是www,但隸屬于不同三級(jí)域,而第2、3個(gè)域名表示相同三級(jí)域下不同的計(jì)算機(jī)
域名命名限制
域名不能超過(guò)63個(gè)字符
路徑全名不能超過(guò)255個(gè)字符
書(shū)寫(xiě)時(shí)不區(qū)分大小寫(xiě)
每級(jí)域名目前都是由英文字母和數(shù)字組成
級(jí)別最低的域名寫(xiě)在最左邊,級(jí)別最高的域名寫(xiě)在最右邊
域名系統(tǒng)不規(guī)定一個(gè)域名需要包含多少個(gè)下級(jí)域名
也不規(guī)定每一級(jí)的域名代表什么意思
各級(jí)域名由上一級(jí)域名管理機(jī)構(gòu)管理
最高域名則由NIC管理
域名只是個(gè)邏輯概念,并不能反映出計(jì)算機(jī)所在的物理地點(diǎn)
域名管理
在DNS中,每個(gè)域分別由不同的組織進(jìn)行管理。
每個(gè)組織都可以將它的域再分成一定數(shù)量的子域并將這些子域委托給其他組織進(jìn)行管理。
例如,管理edu.cn域的中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心(CNNIC)又授權(quán)北京大學(xué)信息中心來(lái)管理pku.edu.cn子域。
域名系統(tǒng)對(duì)下級(jí)域的個(gè)數(shù)和層數(shù)沒(méi)有規(guī)定,但是整個(gè)域名的長(zhǎng)度不得超過(guò)255個(gè)字符。
域的命名由使用者自己決定,各級(jí)域的域名由其上一級(jí)的域名管理機(jī)構(gòu)管理,而頂級(jí)域名由國(guó)際互聯(lián)網(wǎng)代理成員管理局IANA全權(quán)負(fù)責(zé)。
在1998年之后,國(guó)際域名注冊(cè)是由Internet名字與號(hào)碼指派公司ICANN(Internet Corporation for Assigned Names and Numbers,ICANN)統(tǒng)一管理的。
頂級(jí)域名(Top LevelDomain,TLD)有通用頂級(jí)域名以及國(guó)家頂級(jí)域名之分。
1.通用頂級(jí)域名gTLD
RFC1591最早規(guī)定的頂級(jí)域名有6個(gè),
分別為
.edu(教育機(jī)構(gòu)),
.com(經(jīng)濟(jì)實(shí)體),
.org(各種不適于注冊(cè)在其他類(lèi)別域的組織機(jī)構(gòu)和非政府組織),
.net(網(wǎng)絡(luò)服務(wù)機(jī)構(gòu)),
.gov(政府部門(mén)或機(jī)構(gòu),美國(guó)專(zhuān)用)和.mit(軍事部門(mén),美國(guó)專(zhuān)用)
.int(用于由國(guó)際協(xié)議和國(guó)際數(shù)據(jù)庫(kù)建立的組織機(jī)構(gòu))。
每一個(gè)頂級(jí)域類(lèi)別都是為相應(yīng)的機(jī)構(gòu)創(chuàng)建的。
2.國(guó)家頂級(jí)域名nTLD
國(guó)家頂級(jí)域名采用由ISO-3166標(biāo)準(zhǔn)規(guī)定的兩位字母的國(guó)家代碼的形式,目前有243個(gè)
如.us表示美國(guó),.cn表示中國(guó)等。
由于因特網(wǎng)用戶(hù)數(shù)量的劇增,2000年11月起又增加了7個(gè)通用頂級(jí)域名
分別是:.biz,.info,.name,.pro,.museum,.aero和.coop。
在國(guó)家頂級(jí)域名之下的二級(jí)域名均由該國(guó)家自行確定。
我國(guó)將二級(jí)域名劃分為“類(lèi)別域名”和“行政區(qū)域名”兩大類(lèi)。
其中“類(lèi)別域名”有6個(gè),它們是
.AC適用于科研機(jī)構(gòu);
.com適用于工商、金融等企業(yè),
.edu(適用于中國(guó)的教育機(jī)構(gòu)),
.gov(適用于中國(guó)的政府機(jī)構(gòu)),
.net(適用于提供互聯(lián)網(wǎng)絡(luò)服務(wù)的機(jī)構(gòu)),
.org(適用于非營(yíng)利性組織);
“行政區(qū)域名”共34個(gè),適用于我國(guó)的各省、自治區(qū)、直轄市,
例如.bj表示北京市,.sh表示上海市等。
在中國(guó)注冊(cè)域名通常分為國(guó)內(nèi)域名注冊(cè)和國(guó)際域名注冊(cè)。
目前,國(guó)內(nèi)域名注冊(cè)統(tǒng)一由中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心(CNNIC)進(jìn)行管理,具體注冊(cè)工作由通過(guò)CNNIC認(rèn)證授權(quán)的各代理商執(zhí)行。
國(guó)際域名是由ICANN統(tǒng)一管理的,具體注冊(cè)工作由通過(guò)CNNIC認(rèn)證授權(quán)的各代理商執(zhí)行。
中文域名指能用漢字命名的新一代域名,它是中國(guó)人自己的域名,使用和記憶非常方便。
域名與IP
在這里要特別強(qiáng)調(diào)一點(diǎn):雖然域名和IP地址都是分層的地址結(jié)構(gòu),而且都是以“.”為分隔的,但是二者的各層之間并沒(méi)有對(duì)應(yīng)的關(guān)系。域名是按名字組織關(guān)系來(lái)劃分的,是一個(gè)邏輯概念,與計(jì)算機(jī)在網(wǎng)絡(luò)中的物理位置和子網(wǎng)的劃分沒(méi)有任何關(guān)系,而且“.”的數(shù)量不一定是三個(gè);IP地址是一個(gè)32bit的二進(jìn)制數(shù),點(diǎn)分十進(jìn)制記法中的“.”是為了提高可讀性,在計(jì)算機(jī)和網(wǎng)絡(luò)中處理的IP地址是沒(méi)有“.”的
域名解析
使用域名進(jìn)行訪(fǎng)問(wèn)網(wǎng)絡(luò)時(shí),不能直接用于TCP/IP協(xié)議的路由選擇
需要先把域名解析成IP地址,這種主機(jī)域名映射成IP地址的過(guò)程叫做域名解析
進(jìn)行域名解析的主機(jī)叫做DNS服務(wù)器(域名服務(wù)器,名字服務(wù)器,Name Server),就是將因特網(wǎng)上主機(jī)的域名轉(zhuǎn)化為計(jì)算機(jī)能識(shí)別的IP地址。
在DNS系統(tǒng)中,存儲(chǔ)有關(guān)域名及其二進(jìn)制IP地址信息的程序軟件運(yùn)行在專(zhuān)門(mén)的網(wǎng)絡(luò)節(jié)點(diǎn)之上,完成域名到IP映射
各服務(wù)器只負(fù)責(zé)解析主管范圍的解析工作
DNS系統(tǒng)由一個(gè)分布式的主機(jī)信息數(shù)據(jù)庫(kù)管理互聯(lián)網(wǎng)上所有主機(jī)的域名與IP地址,
不同域名是數(shù)據(jù)庫(kù)的不同部分
每個(gè)域至少有一個(gè)域名服務(wù)器進(jìn)行管理,該域名服務(wù)器保存著這個(gè)域名空間的所有信息,并負(fù)責(zé)回答某個(gè)域名地址的查詢(xún)請(qǐng)求
查詢(xún)結(jié)構(gòu)有兩種:本地計(jì)算機(jī)含有該域名地址則直接給出,若本地沒(méi)有該域名則給出其他域名服務(wù)器地址
根服務(wù)器知道所有一級(jí)域的服務(wù)器位置;
一級(jí)域名服務(wù)器知道本域內(nèi)所有的域名服務(wù)器位置
收到域名查詢(xún)后,根域名服務(wù)器提供該域名所在的第一級(jí)域名服務(wù)器地址和名字,
第一級(jí)再提供第二級(jí),以此類(lèi)推,直到得到答案
經(jīng)過(guò)統(tǒng)計(jì)發(fā)現(xiàn),大部分的名字轉(zhuǎn)換請(qǐng)求為本地請(qǐng)求,
因此為了提高查詢(xún)效率,不必每次都去訪(fǎng)問(wèn)根名字服務(wù)器。
另外,名字服務(wù)器還可以在其本地緩沖區(qū)存儲(chǔ)查詢(xún)過(guò)程中獲得的其他名字服務(wù)器的信息,
以便在將來(lái)的查詢(xún)中縮短響應(yīng)時(shí)間,
用戶(hù)的主機(jī)中也可以使用這樣的緩存技術(shù)來(lái)加速查詢(xún)。
當(dāng)然,名字服務(wù)器并不會(huì)永遠(yuǎn)保留這個(gè)信息,而會(huì)在一定時(shí)間后放棄它。
這個(gè)到期間隔時(shí)間稱(chēng)為存活期(Time To Live,TTL)。
DNS數(shù)據(jù)庫(kù)中的每一數(shù)據(jù)都有相應(yīng)責(zé)任區(qū)的管理員指定的TTL。
DNS服務(wù)器類(lèi)型
主要DNS服務(wù)器
當(dāng)DNS服務(wù)器管理主要區(qū)域時(shí),被稱(chēng)為主要DNS服務(wù)器
它是主要區(qū)域的集中更新源,用戶(hù)可以部署兩種模式主要區(qū)域
1.標(biāo)準(zhǔn)主要區(qū)域;此區(qū)域數(shù)據(jù)存在本地文件中,只有主要DNS可以管理,一旦主DNS出現(xiàn)故障,此主要區(qū)域不能再進(jìn)行修改,輔助服務(wù)器答復(fù)DNS的解析請(qǐng)求。此區(qū)域只支持非安全的動(dòng)態(tài)更新
2.活動(dòng)目錄集成主要區(qū)域;此區(qū)域僅當(dāng)在域控制器上部署DNS時(shí)有效,區(qū)域數(shù)據(jù)存放在活動(dòng)目錄中并隨目錄的復(fù)制而復(fù)制。默認(rèn)情況下,每一個(gè)運(yùn)行在域控制器上的DNS服務(wù)器都將成為主要DNS,并可以修改區(qū)域中數(shù)據(jù)(多點(diǎn)更新),避免標(biāo)準(zhǔn)主要區(qū)域的單點(diǎn)故障。活動(dòng)目錄集成主要區(qū)域支持安全的動(dòng)態(tài)更新
輔助DNS服務(wù)器
實(shí)現(xiàn)負(fù)載均衡和避免單點(diǎn)故障
輔助DNS用于獲取區(qū)域數(shù)據(jù)的源DNS服務(wù)器稱(chēng)為主服務(wù)器
主服務(wù)器可以由主要DNS服務(wù)器或者其他輔助DNS來(lái)?yè)?dān)當(dāng)
當(dāng)創(chuàng)建輔助區(qū)域時(shí),要求用戶(hù)指定主服務(wù)器
在輔助服務(wù)器和主服務(wù)器之間存在著區(qū)域復(fù)制,用于從主服務(wù)器更新區(qū)域數(shù)據(jù)