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