Board logo

標題: DNS Server的運作方式 [打印本頁]

作者: wen    時間: 2006-9-1 00:50     標題: DNS Server的運作方式

在瞬息萬變、不斷擴大的網際網路,
傳統的一對一網域名稱對照表已不切實際。
靈活的DNS為你追蹤網際網路上每一部電腦的名稱與位址。

想想看,如果每個人都只用身份證字號來代表,會是怎
樣的情況?我們大概可以記住十個人左右,超過十個以上大概就
搞不清楚了。由於種種原因,人類記憶名字的能力遠比記憶號碼
強得多。
現在來看看在網際網路上的情況。如果你想啟動一個遠
端登錄作業,而且知道國家超級計算應用軟體中心的位址是 ncs
a.uiuc.edu。接下來,你想要進入 Microsoft的網站,你猜這個
網站的位址可能是 www.microsoft.com,所以嘗試看看,沒錯,
就是它。於是你就把這兩個位址記在腦袋裡了。
你剛才所做的,只是很單純地記住所連線的電腦的網域
名稱(domain name)。就網際網路的觀點而言,你並沒有指定什
麼東西。網際網路上的電腦是以號碼區分,而不是名稱。所謂的
網域名稱,其實只是個讓大家容易記住的代碼而已。在網際網路
上,每部電腦指定一個網際網路協定(IP)位址,而且這個數字是
每一部電腦都不相同。你可能會比較希望用名稱來識別這些電腦
,但網際網路則比較喜歡使用數字。

名稱中包含什麼?

IP名稱的格式分為四部份,這四部份所指定的範圍依次
縮小。如ncsa.uiuc.edu這部電腦的 IP是141.142.2.2。我們從
左邊開始看,號碼的第一個部份是電腦的地理位置,第二個部份
則指出單位或提供者。再過來,號碼所表示的範圍就越來越小了
。第三個號碼表示出一群電腦,第四個號碼就代表這部電腦本身
。舉個例子,以我的工作單位,所有電腦的IP位址前兩個部份都
相同(129.97)。我辦公室�堛漕滼★q腦,129.97.178.94和129.9
7.178.17,就都屬於129.97.178這個群組。
講這些是什麼意思呢?不管你在telnet、finger、Gop-
her、FTP或全球資訊網作業中指定網域名稱時,都要等網域名稱
轉換成IP位址後,才會開始作業。此轉換動作就是網域名稱系統
(Domain NameSystem, DNS)伺服器的工作。在實際應用上,我們
常會用到好幾個 DNS伺服器,第一個 DNS伺服器會向下一個伺服
器查詢,直到找出正確IP號碼為止。
當你嘗試送出或要求一些含有網域名稱的資料時,就是
DNS發揮神奇作用的時候了。你當然可以不使用網域名稱,直接
用IP號碼,這樣就可不需要DNS 了。但其實大部份時候這樣做有
點不切實際,因為通常要透過電子郵件或超連結等方式送出或要
求資料,所知道的位址都是網域名稱格式的。在你進行動作時,
同時也啟動了一個軟體,這個軟體稱為「解析程式」(resolver)
,這個程式裝置在 DNS伺服器上。解析程式,顧名思義就是用來
分析網域名稱的。它首先會在 DNS資料庫中搜尋,如果找不到,
就會連結其他 DNS伺服器,繼續尋找。
每一部 DNS伺服器都必須能盡快反映出任何的改變。在
DNS出現之前,網域名稱的轉換工作完全靠「主電腦對照表」。
這是一個文字檔,儲存在工作單位UNIX伺服器的 /etc/hosts/目
錄,或是你PC的類似目錄中。在這個表中列出所有網際網路上的
主電腦名稱及 IP 號碼。最主要的對照表放置在網路資訊中心 (
NIC),位址是nic.ddn.mil,目錄是netinfo/hosts.txt。只要看
一下這個將近 0.2MB的檔案,你一定不會想負責維護這個檔案。
隨著網際網路的成長,網域名稱每個小時都在增加(可能還更快)
。如果每個主電腦都準備一份這樣的東西供使用者查詢,也蠻不
實際的。

分散的資訊

解決辦法就是 DNS伺服器。與主電腦對照表不同的是,
DNS 伺服器不使用對應檔案,而是在DNS 伺服器中只含有固定量
的資料。因為它們知道該去哪尋找自己沒有的網域資料。當 DNS
伺服器收到某一個主電腦的要求,而這個主電腦不在它的「快取
」中時,只要詢問知道的伺服器就可以了。這個「知道的伺服器
」就是「管理伺服器」(authori-tative server),這個伺服器
的主要功用是維護 DNS資料。一個伺服器只要在被詢問到網址時
,可以回答出名稱是否存在,就可以稱為「管理伺服器」。
如果被詢問的伺服器都沒有這個網域名稱的資料,就會
將這個請求轉到上一層管理伺服器,這樣不斷地詢問,直到找到
資料為止。這樣的來回動作每天都在瞬息萬變的網際網路上進行
。最先發出請求的伺服器會將資料放在快取中,未來查詢時,就
不需要轉向管理伺服器了。在 DNS伺服器中有一項設定,就是取
得的資料超過指定的時間後,就算過時,以避免使用到舊資料。
DNS 轉換的過程所需的時間不長,但的確會增加連接到
遠端電腦的時間。你可以試驗看看(雖然這個試驗並不是沒有誤
差),先試試看使用網域名稱連接到一個網站,然後再用IP號碼
連連看。如果你真要試,記得要先關閉瀏覽器,然後再開啟,啟
動一個新的階段作業。否則,第二次載入的會是放置在快取中的
網頁(造成載入延後的因素很多,因此試驗的結果只能作為參考
。)
DNS伺服器最常用的軟體是Berkeley InternetName Dom
ain,通常稱為 BIND。原先由加州柏克萊大學發展,後來由Inte
rnet Software Consortium贊助。最新的 4.9.3版包括標準的Un
ix版本,以及Windows NT版。BIND同時提供解析程式以及名稱伺
服器軟體,以解析程式進行實際的查詢,然後由名稱伺服器提供
回應。BIND將名稱伺服器分成三種類型:「主要」伺服器含所有
關於網域的資料,「次要」伺服器主要的工作是從主要伺服器中
複製 DNS資料庫,第三個「快取專用」伺服器除了提供快取外,
還會建立一個 DNS資料庫。在伺服器所在網域中,只有主要及次
要伺服器被視為管理伺服器。
要瞭解 DNS伺服器如何運作,需先瞭解網域名稱層級。
層級的最上層是「根」網域。這個網域的資訊儲存在網際網路上
某些「根伺服器」中。接下來是「第一層」網域,可能是國家代
碼或單位代碼。國家代碼如SG(新加坡)、CA(加拿大),單位代碼
包括大家都知道的COM(商業單位)、EDU(教育單位)、GOV(政府單
位)以及NET(網路單位)等等(請注意,在美國之外的第一層網域
通常是國家代碼,但位於美國的位址通常不加上國家代碼)。在
第一層領域之下的是「第二層」網域(例如whitehouse.gov、mi
crosoft.com、inforamp.et等),接下來便是「第三層」網域,
以下類推。
如果你想在美國建立一個網域名稱,必須先跟網路資訊
中心 (NIC)聯絡。這個中心會先確定兩件事:第一,你要使用的
名稱目前還沒有其他人使用。第二,至少要有兩個已存在的伺服
器可以加入這個新的網域名稱。這兩件事確定後,才會核准你的
申請。NIC 處理完申請後,會給你一個第二層網域名稱,並且在
第一層網域的伺服器中放入指向這個名稱的指標。舉例來說,如
果你要申請一個網域名稱,稱為 mybiz.com。必須先取得兩個名
稱伺服器,用來提供這個資料(你的ISP的伺服器就可以處理了)
。然後 NIC會將mybiz放在COM網域的伺服器系統中,並建立指向
這兩個指定名稱伺服器的指標。
網域設定好了後,就可加上任意數目的「子網域」。你
可將一部電腦名稱訂為sales.mybiz.com,另一部訂為techsuppo
rt.mybiz.com等等。但如果你要讓其他人能夠進入子網域,就必
須將它們的資料放在上一層網域中。在這個例子中,你就必須將
sales.mybiz.com及techsupport.mybiz.com的IP 資料放在 myb
iz.com的伺服器中。層級中的每一個伺服器都含有一個 DNS資料
庫,其中的內容稱為名稱伺服器(NS)記錄。每一筆記錄中都包含
網域或子網域的名稱,以及網域或子網域中伺服器電腦的名稱。
在這例子中�堙A我們就可以告訴根伺服器,如果需要關於 mybiz
com以及所有子網域的資料,可以在我們的 DNS伺服器上尋找,
位址是details.mybiz.com。
讓我們看一下這整個過程是如何運作的。美國某個地方
的某大學中,有人在網頁上看到了一個連結,指向你新設的子網
域 techsupport.mybiz.com。他在這個連結上按了一下,然後當
地的 DNS伺服器(通常是那個大學中的某部電腦)就開始動作了
。首先,這部伺服器搜尋自己的 DNS資料庫,看看有沒有轉換資
料。但它以前從來沒有處理過,所以伺服器中沒有這個網域的記
錄,因此就無法分析出IP號碼。真正含有這個位址的 DNS資料庫
,位於根伺服器中(所有 DNS伺服器都必須設定這樣的參考伺服
器)。當地的 DNS伺服器進入網際網路,向根伺服器查詢。根伺
服器在自己的 DNS伺服器中搜尋 COM第一層網域,再將NS記錄回
應給大學的 DNS伺服器,告訴它可向 details.mybiz.com查詢關
於mybiz.com的資料。大學的 DNS伺服器依言辦理,就從 detail
s.mybiz.com取得了 techsupport.mybiz.com的正確IP位址。在
這過程的每一個階段中,大學的 DNS伺服器都會將NS記錄放入快
取中,下次這個大學中有任何人需要mybiz.com、details.mybiz
com,或techsupport.mybiz.com 的IP轉換時,就可直接由當地
伺服器提供資料了。
就像其他網際網路上的通訊協定一樣,DNS 在一些網際
網路的 RFC文件中也有說明(從RFC 882、883和 973開始)。如果
想瞭解 DNS伺服器的運作,RFC 1035是你的最佳選擇。你可以在
很多地方取得RFC 1035,在www.crynwr.com80/crynwr/rfc1035
/中有一份精美的HTML版本可供索取。就如你所想的,RFC 文件
算是相當技術性的,你可能只想知道一些關於 DNS伺服器運作的
一般常識,其他的就沒有興趣了。但是如果以後你成為一個伺服
器管理人員的話,記得有這樣一份文件可以參考。 (原文刊載於
PC Magazine Vol.15 No.16 p.217)





歡迎光臨 x2bbs (http://59.127.189.131/) Powered by Discuz! 7.0.0