DNS作業(yè)
DNS 服務(wù)域名系統(tǒng)DNS (Domain Name System)是一種采用客戶/服務(wù)器(C/S)模式實(shí)現(xiàn)名稱與IP 地址轉(zhuǎn)換的系統(tǒng)。整個(gè)DNS 域名系統(tǒng)包括以下4個(gè)組成部分:1. DNS 域名稱
DNS 服務(wù)
域名系統(tǒng)DNS (Domain Name System)是一種采用客戶/服務(wù)器(C/S)模式實(shí)現(xiàn)名稱與IP 地址轉(zhuǎn)換的系統(tǒng)。整個(gè)DNS 域名系統(tǒng)包括以下4個(gè)組成部分:
1. DNS 域名稱空間:指定用于組織名稱的域的層次關(guān)系;
2. 資源記錄:將DNS 域名映射到特定類型的資源信息,以供在名稱空間中注冊或解析名稱時(shí)使用;
3. DNS 服務(wù)器:存儲和應(yīng)答資源記錄的名稱查詢;
4. DNS 客戶端:也稱解析程序,用來查詢DNS 服務(wù)器,將名稱解析為查詢中指定的資源記錄類型。 通過在DNS 服務(wù)器端建立DNS 數(shù)據(jù)庫,記錄主機(jī)名稱與IP 的對應(yīng)關(guān)系,為客戶端的主機(jī)提供IP 地址解析服務(wù)。當(dāng)某主機(jī)要與其他主機(jī)通信時(shí),可利用主機(jī)名稱向DNS 服務(wù)器查詢此主機(jī)的IP 地址。
因特網(wǎng)上采用了層次樹狀結(jié)構(gòu)的命名方法,如同一棵倒過來的樹,層次結(jié)構(gòu)非常清楚。根域位于最頂端,在根的下面是幾個(gè)頂級域,每個(gè)頂級域有進(jìn)一步劃分為不同的二級域,二級域下面再劃分子域,子域下面可以有主機(jī),也可以再分子域,知道最后主機(jī)。
與文件系統(tǒng)的結(jié)構(gòu)類似,每個(gè)域可以用相對的或絕對的名稱來標(biāo)志。相對于父域來表示一個(gè)域,可以用相對域名;絕對域名指完整的域名。主機(jī)名是指為每臺主機(jī)指定的主機(jī)名稱,帶有域名的主機(jī)名是全程域名。 整個(gè)因特網(wǎng)的域名服務(wù)器都是由DNS 來實(shí)現(xiàn)的。要在整個(gè)因特網(wǎng)范圍內(nèi)識別特定的主機(jī),必須使用全域名。域名系統(tǒng)在TCP/IP網(wǎng)絡(luò)上是通過DNS 服務(wù)器提供DNS 服務(wù)來實(shí)現(xiàn)的。DNS 服務(wù)器的數(shù)據(jù)庫中保存著域名與IP 地址的對應(yīng)表。
域名服務(wù)器是整個(gè)域名系統(tǒng)的核心。域名服務(wù)器,嚴(yán)格地講應(yīng)該是域名名稱服務(wù)器(DNS Name Server ),保存著域名稱空間中部分區(qū)域的數(shù)據(jù)。
因特網(wǎng)上的域名服務(wù)器是按照域名的層次來安排的,每個(gè)域名服務(wù)器都只對域名體系中的一部分進(jìn)行管轄。域名服務(wù)器有3類型:
1. 本地域名服務(wù)器:本地域名服務(wù)器(Local Name Server)也稱默認(rèn)域名服務(wù)器。
2. 根域名服務(wù)器:目前因特網(wǎng)上有十幾個(gè)根域名服務(wù)器(Root Name Server),大部分都在北美。當(dāng)一個(gè)本地域名服務(wù)器不能立即回答某個(gè)主機(jī)的查詢時(shí),該本地域名服務(wù)器就以DNS 客戶的身份向某一個(gè)域名稱服務(wù)器查詢。
3. 授權(quán)域名服務(wù)器:每個(gè)主機(jī)都必須在授權(quán)域名服務(wù)器處注冊登記。通常,一個(gè)主機(jī)的授權(quán)域名服務(wù)器就是它的本地ISP 的一個(gè)域名服務(wù)器。
工作原理
案例
解決方案就是采用DNS 服務(wù)器系統(tǒng)。與主機(jī)表不一樣,DNS 服務(wù)器不依賴一個(gè)大型映射文件,DNS 服務(wù)器只包含有限的信息,因?yàn)樗麄冎赖侥睦锬苷业剿麄兿胫赖挠虻募?xì)節(jié)。當(dāng)DNS 服務(wù)器得到對某個(gè)主機(jī)的請求,而該請求的主機(jī)又并不在其緩沖內(nèi),那么DNS 服務(wù)器只是知道了這件事然后去詢問知道答案的“某計(jì)算機(jī)”。這臺計(jì)算機(jī)是一種授權(quán)服務(wù)器,負(fù)責(zé)維護(hù)DNS 信息。如果某臺服務(wù)器在被詢問到其域內(nèi)的某個(gè)地址時(shí)它可以確定地指出該地址存在,那么這臺服務(wù)器就是所謂的授權(quán)服務(wù)器。
DNS 服務(wù)的最常用軟件是Berkeley Internet Name Domain,也就是BIND ,它源自U.C. Berkeley但現(xiàn)在則由Internet Software Consortium.負(fù)責(zé)。其最新版本4.9.3包含了標(biāo)準(zhǔn)的 Unix 版本和附加的Windows NT 端口。BIND 提供了解析器和名字服務(wù)器軟件,解析器做實(shí)際的查詢工作而名字服務(wù)器則提供響應(yīng)。BIND 將名字服務(wù)器分成三個(gè)部分:主服務(wù)器包含了有關(guān)一個(gè)域的全部數(shù)據(jù);次服務(wù)器則有效地從主服務(wù)器拷貝DNS 數(shù)據(jù)庫;唯緩沖服務(wù)器通過緩沖查詢來建立例外的DNS 數(shù)據(jù)庫。只有主服務(wù)器和次服務(wù)器才被當(dāng)作涉及特定域的授權(quán)服務(wù)器。
要理解 DNS 服務(wù)器怎么操作就有必要理解域名層次本身。在這一層次的頂部是根域。這一域上的信息駐留在從整個(gè)Internet 中所選的一些根服務(wù)器上。在根域下面是頂級域,也就是國家代碼或機(jī)構(gòu)代碼。國家代碼的例子有SG (新加坡)和CA (加拿大)等。而機(jī)構(gòu)代碼則包括眾所周知的COM (商業(yè)機(jī)構(gòu))、EDU (教育機(jī)關(guān))、GOV (政府機(jī)構(gòu))和NET (網(wǎng)絡(luò)機(jī)構(gòu))等(注意在美國以外的頂級域通常是國家編碼,但是基于美國的地點(diǎn)通常省略國家編碼)。在頂級域下面是次級域(whitehouse.gov 、microsoft.com 、inforamp.net 等諸如此類),然后是第 3級域,等向下以此類推。
,一旦設(shè)置了適當(dāng)?shù)闹饔?,你就可以增加所希望的任何?shù)量的子域。你可能想要命名你的計(jì)算機(jī)為sales.mybiz.com ,而另一臺則被叫做techsupport.mybiz.com 等等。這些工作可就不需要 NIC 的同意了,而且,事實(shí)上NIC 也不管這事。但是,如果你想要任何人都能實(shí)際地訪問你的子域,那么你最好將有關(guān)子域的信息盡快地放到上級域內(nèi)。在特定的情況下,關(guān)于sales.mybiz.com 和 techsupport.mybiz.com 的IP 信息必須放在mybiz.com 服務(wù)器上。這一層次中的每臺服務(wù)器都包含了一個(gè)DNS 數(shù)據(jù)庫,其入口被稱作NS 記錄,每條這樣的記錄包含了域或子域的名字,此外還加上作為域或者子域服務(wù)器的主機(jī)的名字。在我們的例子中,我們將告訴根服務(wù)器它能在我們的 DNS 服務(wù)器上找到mybiz.com 及其全部子域的信息,而這些信息則位于details.mybiz.com 這臺計(jì)算機(jī)上。
現(xiàn)在我們來看看這一切是如何運(yùn)作的。某所大學(xué)的某人在指向你的最新子域的網(wǎng)頁上看見了一個(gè)鏈接 techsupport.mybiz.com 。然后她點(diǎn)擊該鏈接,于是她的本地DNS 服務(wù)器(很可能位于這所大學(xué)的某臺計(jì)算機(jī)上)開始工作。首先,服務(wù)器搜索它自己的 DNS 數(shù)據(jù)庫以轉(zhuǎn)換信息,但是,因?yàn)樗郧皬膩頉]遇見過 techsupport.mybiz.com ,所以服務(wù)器沒有該域存在的記錄而且不能解析IP 地址。不過,它的 DNS 數(shù)據(jù)庫包含了一個(gè)根服務(wù)器的地址(所有的 DNS 服務(wù)器必須設(shè)置該索引)。于是本地 DNS 服務(wù)器就到Internet 上查詢該根服務(wù)器。根服務(wù)器在其DNS 數(shù)據(jù)庫里查找COM 頂級域,然后它用NS 記錄回復(fù)該大學(xué)的 DNS 服務(wù)器,告訴它可以從details.mybiz.com 處查詢到mybiz.com 的信息。大學(xué)的服務(wù)器就這樣做了,而且從 details.mybiz.com 那里知道了techsupport.mybiz.com 的對應(yīng)IP 地址。在這一過程中最根本的階段是,大學(xué)的DNS 服務(wù)器緩沖了該 NS 記錄,結(jié)果下次該大學(xué)的任何人在需要涉及到mybiz.com 、details.mybiz.com 、ortechsupport.mybiz.com 等對應(yīng)的IP 地址轉(zhuǎn)換時(shí),相關(guān)信息在本地即可獲得。
正如其他的Internet 協(xié)議一樣,DNS 由幾個(gè)Internet 的RFC (請求評論)規(guī)范(最初是RFC 882、883和973)。不過要理解DNS 服務(wù)器的工作原理最好的標(biāo)準(zhǔn)還是RFC 1035。你可以在Internet 上的好幾個(gè)地方找到RFC 1035,比如在http://www.crynwr.com/crynwr/rfc1035/ 就有一個(gè)不錯(cuò)的HTML 版本。正如你可能想到的那樣,RFC 具有相當(dāng)?shù)募夹g(shù)性,你不大可能會對超出DNS 服務(wù)器一般操作的細(xì)節(jié)感興趣。但是如果你想做個(gè)服務(wù)器管理員,那么就記住 RFC 吧。
DNS 分為Client 和Server ,Client 扮演發(fā)問的角色,也就是問Server 一個(gè)Domain Name,而Server 必須要回答此Domain Name的真正IP 地址。而當(dāng)?shù)氐腄NS 先會查自己的資料庫。如果自己的資料庫沒有,則會往該DNS 上所設(shè)的DNS 詢問,依此得到答案之后,將收到的答案存起來,并回答客戶。
DNS 服務(wù)器會根據(jù)不同的授權(quán)區(qū)(Zone),記錄所屬該網(wǎng)域下的各名稱資料,這個(gè)資料包括網(wǎng)域下的次網(wǎng)域名稱及主機(jī)名稱。
在每一個(gè)名稱服務(wù)器中都有一個(gè)快取緩存區(qū)(Cache),這個(gè)快取緩存區(qū)的主要目的是將該名稱服務(wù)器所查詢出來的名稱及相對的IP 地址記錄快取緩存區(qū)中,這樣當(dāng)下一次還有另外一個(gè)客戶端到次服務(wù)器上去查詢相同的名稱時(shí),服務(wù)器就不用在到別臺主機(jī)上去尋找,而直接可以從緩存區(qū)中找到該筆名稱記錄資料,傳回給客戶端,加速客戶端對名稱查詢的速度。例如:當(dāng)DNS 客戶端向指定的DNS 服務(wù)器查詢網(wǎng)際網(wǎng)路上的某一臺主機(jī)名稱 DNS服務(wù)器會在該資料庫中找尋用戶所指定的名稱如果沒有,該服務(wù)器會先在自己的快取緩存區(qū)中查詢有無該筆紀(jì)錄,如果找到該筆名稱記錄后,會從DNS 服務(wù)器直接將所對應(yīng)到的IP 地址傳回給客戶端,如果名稱服務(wù)器在資料記錄查不到且快取緩存區(qū)中也沒有時(shí),服務(wù)器首先會才會向別的名稱服務(wù)器查詢所要的名稱。例如DNS 客戶端向指定的DNS 服務(wù)器查詢網(wǎng)際網(wǎng)路上某臺主機(jī)名稱,當(dāng)DNS 服務(wù)器在該資料記錄找不到用戶所指定的名稱時(shí),會轉(zhuǎn)向該服務(wù)器的快取緩存區(qū)找尋是否有該資料,當(dāng)快取緩存區(qū)也找不到時(shí),會向最接近的名稱服務(wù)器去要求幫忙找尋該名稱的IP 地址,在另一臺服務(wù)器上也有相同的動作的查詢,當(dāng)查詢到后會回復(fù)原本要求查詢的服務(wù)器,該DNS 服務(wù)器在接收到另一臺DNS 服務(wù)器查詢的結(jié)果后,先將所查詢到的主機(jī)名稱及對應(yīng)IP 地址記錄到快取緩存區(qū)中 ,最后在將所查詢到的結(jié)果回復(fù)給客戶端 。
兩種真正DNS 的查詢模式
有兩種詢問原理,分為Recursive 和Interactive 兩種。前者是由DNS 代理去問,問的方法是用Interactive 方式,后者是由本機(jī)直接做Interactive 式的詢問。由上例可以看出,我們一般查詢名稱的過程中,實(shí)際上這兩種查詢模式都是交互存在著的。
遞歸式(Recursive):DNS 客戶端向DNS Server的查詢模式,這種方式是將要查詢的封包送出去問,就等待正確名稱的正確響應(yīng),這種方式只處理響應(yīng)回來的封包是否是正確響應(yīng)或是說是找不到該名稱的錯(cuò)誤訊息。
,交談式(Interactive):DNS Server間的查詢模式,由Client 端或是DNS Server上所發(fā)出去問,這種方式送封包出去問,所響應(yīng)回來的資料不一定是最后正確的名稱位置,但也不是如上所說的響應(yīng)回來是錯(cuò)誤訊息,他響應(yīng)回來告訴你最接近的IP 位置,然后再到此最接近的IP 上去尋找所要解析的名稱,反復(fù)動作直到找到正確位置。