DNS 的來(lái)由
如果您為您的機(jī)器設(shè)定過(guò) internet 連線﹐那么您一定接觸過(guò) DNS 了﹐但 DNS 又是什么東東呢﹖說(shuō)穿了﹐DNS 是用來(lái)幫助記憶網(wǎng)路位址的﹐完全是為了遷就人類的記憶思維而設(shè)的。
DNS 的全稱是 Domain Name System(或 Service) ﹐當(dāng)您連上一個(gè)網(wǎng)址﹐在URL打上﹕www.google.com 的時(shí)候﹐可以說(shuō)就是使用了 DNS 的服務(wù)了。但如果您知道這個(gè) www.google.com 的 IP 位址﹐直接輸入 216.239.53.101 也同樣可以到達(dá)這個(gè)網(wǎng)址。其實(shí)﹐電腦使用的只是 IP 位址而已(最終也是 0 和 1 啦)﹐這個(gè) www.google.com 只是讓人們?nèi)菀子洃浂O(shè)的。因?yàn)槲覀內(nèi)祟惄o對(duì)一些比較有意義的文字記憶(如﹕www.google.com)﹐比記憶那些毫無(wú)頭緒的號(hào)碼(如﹕216.239.53.101)﹐往往容易得多。DNS 的作用就是為我們?cè)谖淖趾?IP 之間擔(dān)當(dāng)了翻譯﹐而免除了強(qiáng)記號(hào)碼的痛苦。
假如您的電話有名字記憶功能﹐您只需知道對(duì)方的名字﹐就可以撥號(hào)給友人了﹐我們可以說(shuō)﹐這電話也具備如 DNS 的功能了呢﹗但是﹐我們?cè)诰W(wǎng)路中使用的 DNS 系統(tǒng)﹐就是這么簡(jiǎn)單嗎﹖非也﹐復(fù)雜得很呢﹗下面﹐就讓我們一起去探索一下 DNS 的奧秘﹕
在早期的 IP 網(wǎng)路世界里面﹐每臺(tái)電腦都只用 IP 位址來(lái)表示﹐不久人們就發(fā)現(xiàn)這樣很難記憶﹐于是﹐一些 UNIX 的管理者﹐就建立一個(gè) HOSTS 對(duì)應(yīng)表﹐將 IP 和主機(jī)名字對(duì)應(yīng)起來(lái)﹐這樣﹐用戶只需輸入電腦名字﹐就可以代替 IP 來(lái)進(jìn)行溝通了。如果你安裝了 Linux 系統(tǒng)﹐在 /etc 下面就可以找到這個(gè) hosts 檔案﹔在 NT 的系統(tǒng)里﹐你也可以在 winntsystem32driversetc 下面找到它。不過(guò)這個(gè) HOSTS 檔是要由管理者手工維護(hù)的﹐最大的問(wèn)題是無(wú)法適用于大型網(wǎng)路﹐而且更新也是件非常頭痛的事情。這就是 DNS 大派用場(chǎng)的時(shí)候了。
DNS 的結(jié)構(gòu)
DNS 是一個(gè)分層級(jí)的分散式名稱對(duì)應(yīng)系統(tǒng)﹐有點(diǎn)像電腦的目錄樹(shù)結(jié)構(gòu)﹕在最頂端的是一個(gè)“root”﹐然后其下分為好幾個(gè)基本類別名稱﹐如﹕com﹑org﹑edu 等﹔再下面是組織名稱﹐如﹕ibm﹑microsoft﹑intel 等﹔繼而是主機(jī)名稱﹐如﹕www﹑mail﹑ftp 等。因?yàn)楫?dāng)初 internet 是從美國(guó)發(fā)展起的﹐所以當(dāng)時(shí)并沒(méi)有國(guó)域名稱﹐但隨著后來(lái) internet 的蓬勃發(fā)展﹐DNS 也加進(jìn)了諸如 tw﹑hk﹑cn 等國(guó)域名稱。所以一個(gè)完整的 dns 名稱就好象是這樣的﹕www.xyz.com.tw﹐而整個(gè)名稱對(duì)應(yīng)的就是一個(gè)(或多個(gè)) IP 位址了。
在早期的設(shè)計(jì)下﹐root 下面只有六個(gè)組織類別﹕
不過(guò)﹐自從組織類別名稱開(kāi)放以后﹐各種各樣五花八門的名稱也相繼涌現(xiàn)出來(lái)了﹐但無(wú)論如何﹐取名的規(guī)則最好盡量適合網(wǎng)站性質(zhì)。除了原來(lái)的類別資料由美國(guó)本土的 NIC(Network Information Center) 管理之外﹐其它在國(guó)域以下的類別分別由該國(guó)的 NIC 管理(比方說(shuō)臺(tái)灣的 DNS 將授權(quán)給 twnic 來(lái)管理)。這樣的結(jié)構(gòu)看起來(lái)就像這樣﹕
在結(jié)構(gòu)中﹐各組織的 DNS 經(jīng)過(guò)申請(qǐng)后由該組織或其委托主機(jī)管理(通常當(dāng)您申請(qǐng)注冊(cè)一個(gè) domain 域名稱的時(shí)候﹐都要指定兩臺(tái) DNS 主機(jī)負(fù)責(zé)該域名的 DNS 管理)。