DNS服務(wù)器工作原理
分布的信息
解決方案就是采用DNS服務(wù)器系統(tǒng)。與主機(jī)表不一樣,DNS服務(wù)器不依賴(lài)一個(gè)大型映射文件,DNS服務(wù)器只包含有限的信息,因?yàn)樗麄冎赖侥睦锬苷业剿麄兿胫赖挠虻募?xì)節(jié)。當(dāng)DNS服務(wù)器得到對(duì)某個(gè)主機(jī)的請(qǐng)求,而該請(qǐng)求的主機(jī)又并不在其緩沖內(nèi),那么DNS服務(wù)器只是知道了這件事然后去詢(xún)問(wèn)知道答案的“某計(jì)算機(jī)”。這臺(tái)計(jì)算機(jī)是一種授權(quán)服務(wù)器,負(fù)責(zé)維護(hù)DNS信息。如果某臺(tái)服務(wù)器在被詢(xún)問(wèn)到其域內(nèi)的某個(gè)地址時(shí)它可以確定地指出該地址存在,那么這臺(tái)服務(wù)器就是所謂的授權(quán)服務(wù)器。
如果接觸的服務(wù)器并不包含有關(guān)的域名信息,該服務(wù)器就會(huì)將請(qǐng)求傳遞給接觸鏈路上更高級(jí)別的授權(quán)服務(wù)器,這樣就形成了一系列查詢(xún)直到最后找到需要的信息。實(shí)際上,這意味著請(qǐng)求可以被任意數(shù)量的服務(wù)器處理,在Internet上這種來(lái)來(lái)回回的行為每時(shí)每刻都在發(fā)生。最早發(fā)出請(qǐng)求的服務(wù)器將緩沖信息以滿(mǎn)足未來(lái)的需求而無(wú)須向授權(quán)服務(wù)器再發(fā)請(qǐng)求。DNS服務(wù)器的管理員為這些信息設(shè)置了超時(shí)限制以避免緩沖中充滿(mǎn)了名字請(qǐng)求的舊數(shù)據(jù)。
DNS轉(zhuǎn)換不會(huì)花費(fèi)太多的時(shí)間,但它確實(shí)增加了你的請(qǐng)求到達(dá)遠(yuǎn)端計(jì)算機(jī)的時(shí)間。你可以自己做個(gè)快速測(cè)試(雖然很簡(jiǎn)單):首先用域名,比如www.microsoft.com來(lái)訪問(wèn)對(duì)應(yīng)的Web站點(diǎn),然后用IP地址198.105.232.4再實(shí)驗(yàn)一下。如果你要這么做,則請(qǐng)務(wù)必關(guān)閉你的瀏覽器然后再重新打開(kāi)以初始化新的會(huì)話(huà);否則你不過(guò)是載入了頁(yè)面的緩沖版本(記住裝載頁(yè)面的延遲原因可能來(lái)自許多因素,所以對(duì)結(jié)果要有所保留)。
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í)際的查詢(xún)工作而名字服務(wù)器則提供響應(yīng)。BIND將名字服務(wù)器分成三個(gè)部分:主服務(wù)器包含了有關(guān)一個(gè)域的全部數(shù)據(jù);次服務(wù)器則有效地從主服務(wù)器拷貝DNS數(shù)據(jù)庫(kù);唯緩沖服務(wù)器通過(guò)緩沖查詢(xún)來(lái)建立例外的DNS數(shù)據(jù)庫(kù)。只有主服務(wù)器和次服務(wù)器才被當(dāng)作涉及特定域的授權(quán)服務(wù)器。
要理解 DNS 服務(wù)器怎么操作就有必要理解域名層次本身。在這一層次的頂部是根域。這一域上的信息駐留在從整個(gè)Internet中所選的一些根服務(wù)器上。在根域下面是頂級(jí)域,也就是國(guó)家代碼或機(jī)構(gòu)代碼。國(guó)家代碼的例子有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))等(注意在美國(guó)以外的頂級(jí)域通常是國(guó)家編碼,但是基于美國(guó)的地點(diǎn)通常省略國(guó)家編碼)。在頂級(jí)域下面是次級(jí)域(whitehouse.gov、microsoft.com、inforamp.net 等諸如此類(lèi)),然后是第 3級(jí)域,等等等等向下以此類(lèi)推。
如果你想在美國(guó)建立域名,那么你必須聯(lián)系網(wǎng)絡(luò)信息中心NIC。在它同意你的請(qǐng)求以前,你首先要保證你想要的名字還沒(méi)被使用,其次要保證目前至少有 2臺(tái)服務(wù)器可以提供新域名的服務(wù)。當(dāng) NIC 最后同意請(qǐng)求時(shí),它將承認(rèn)你的次級(jí)域,并將指向該名字的指針?lè)诺巾敿?jí)域所在的服務(wù)器內(nèi)。例如,如果你請(qǐng)求域名mybiz.com,那么你必須首先讓Internet上的2 臺(tái)名字服務(wù)器提供信息服務(wù)(你的 ISP的服務(wù)器能做到這一點(diǎn)),然后NIC 將把 mybiz 放到COM 域服務(wù)器系統(tǒng)內(nèi),其指針將指向那2臺(tái)特定服務(wù)器。
一旦設(shè)置了適當(dāng)?shù)闹饔颍憔涂梢栽黾铀M娜魏螖?shù)量的子域。你可能想要命名你的計(jì)算機(jī)為sales.mybiz.com,而另一臺(tái)則被叫做techsupport.mybiz.com等等。這些工作可就不需要 NIC 的同意了,而且,事實(shí)上NIC也不管這事。但是,如果你想要任何人都能實(shí)際地訪問(wèn)你的子域,那么你最好將有關(guān)子域的信息盡快地放到上級(jí)域內(nèi)。在特定的情況下,關(guān)于sales.mybiz.com 和 techsupport.mybiz.com 的IP信息必須放在mybiz.com服務(wù)器上。這一層次中的每臺(tái)服務(wù)器都包含了一個(gè)DNS數(shù)據(jù)庫(kù),其入口被稱(chēng)作NS記錄,每條這樣的記錄包含了域或子域的名字,此外還加上作為域或者子域服務(wù)器的主機(jī)的名字。在我們的例子中,我們將告訴根服務(wù)器它能在我們的 DNS 服務(wù)器上找到mybiz.com及其全部子域的信息,而這些信息則位于details.mybiz.com這臺(tái)計(jì)算機(jī)上。
現(xiàn)在我們來(lái)看看這一切是如何運(yùn)作的。某所大學(xué)的某人在指向你的最新子域的網(wǎng)頁(yè)上看見(jiàn)了一個(gè)鏈接 techsupport.mybiz.com。然后她點(diǎn)擊該鏈接,于是她的本地DNS 服務(wù)器(很可能位于這所大學(xué)的某臺(tái)計(jì)算機(jī)上)開(kāi)始工作。首先,服務(wù)器搜索它自己的 DNS數(shù)據(jù)庫(kù)以轉(zhuǎn)換信息,但是,因?yàn)樗郧皬膩?lái)沒(méi)遇見(jiàn)過(guò) techsupport.mybiz.com,所以服務(wù)器沒(méi)有該域存在的記錄而且不能解析IP地址。不過(guò),它的 DNS 數(shù)據(jù)庫(kù)包含了一個(gè)根服務(wù)器的地址(所有的 DNS 服務(wù)器必須設(shè)置該索引)。于是本地 DNS 服務(wù)器就到Internet上查詢(xún)?cè)摳?wù)器。根服務(wù)器在其DNS 數(shù)據(jù)庫(kù)里查找COM 頂級(jí)域,然后它用NS 記錄回復(fù)該大學(xué)的 DNS 服務(wù)器,告訴它可以從details.mybiz.com 處查詢(xún)到mybiz.com 的信息。大學(xué)的服務(wù)器就這樣做了,而且從 details.mybiz.com那里知道了techsupport.mybiz.com 的對(duì)應(yīng)IP 地址。在這一過(guò)程中最根本的階段是,大學(xué)的DNS 服務(wù)器緩沖了該 NS 記錄,結(jié)果下次該大學(xué)的任何人在需要涉及到mybiz.com、details.mybiz.com 、ortechsupport.mybiz.com等對(duì)應(yīng)的IP地址轉(zhuǎn)換時(shí),相關(guān)信息在本地即可獲得。
正如其他的Internet協(xié)議一樣,DNS由幾個(gè)Internet的RFC(請(qǐng)求評(píng)論)規(guī)范(最初是RFC 882、883和973)。不過(guò)要理解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ù)性,你不大可能會(huì)對(duì)超出DNS 服務(wù)器一般操作的細(xì)節(jié)感興趣。但是如果你想做個(gè)服務(wù)器管理員,那么就記住 RFC吧。