close

DNS的來由 DOMAIN NAME SYSTEM


如果您為您的機器設定過internet連線﹐那麼您一定接觸過DNS了﹐但DNS又是什麼東東呢﹖說穿了﹐DNS是用來幫助記憶網路地址的﹐完全是為了遷就人類的記憶思維而設的。

DNS 的全稱是Domain Name System﹐當您連上一個網址﹐在URL打上﹕www.hotmail.com的時候﹐可以說就是使用了DNS的服務了。但如果您知道這個 www.hotmail.com的IP地址﹐直接輸入209.185.新竹廣宇電腦3.135也同樣可以到達這個網址。其實﹐電腦使用的只是IP地址而已(最終也 是0和1啦)﹐這個www.hotmail.com只是讓人們容易記憶而設的。因為我們人類﹐對一些比較有意義的文字記憶(如 ﹕www.hotmail.com)﹐比記憶那些毫無頭緒的號碼(如﹕209.185.新竹廣宇電腦3.135)﹐往往容易得多。DNS的作用就是為我們在文字和 IP之間擔當了翻譯﹐而免除了強記號碼的痛苦。

假如您的電話有名字記憶功能﹐您只需知道對方的名字﹐就可以撥號給友人了﹐我們可以說﹐這電話也具備如DNS的功能了呢﹗但是﹐我們在網路中使用的DNS系統﹐就是這麼簡單嗎﹖非也﹐複雜得很呢﹗下面﹐就讓我們一起去探索一下DNS的奧秘﹕


在 早期的IP網路世界裡面﹐每台電腦都只用IP地址來表示﹐不久人們就發現這樣很難記憶﹐於是﹐一些UNIX的使用者﹐就建立一個HOSTS對應表﹐將IP 和主機名字對應起來﹐這樣﹐用戶只需輸入電腦名字﹐就可以代替IP來進行溝通了。如果你安裝了Linux系統﹐在/etc下面就可以找到這個hosts檔 案了﹔在NT的系統裡﹐你也可以在\winnt\system32\drivers\etc下面找到它。不過這個HOSTS檔是要由管理者手工維護的﹐最 大的問題是無法適用於大型網路﹐而且更新也是件非常頭痛的事情。這就是DNS大派用場的時候了。



DNS的結構


DNS 是一個分層級的分散式名稱對應系統﹐有點像電腦的目錄樹結構﹕在最頂端的是一個“root”﹐然後其下分為好幾個基本類別名稱﹐如 ﹕com﹑org﹑edu等﹔再下面是組織名稱﹐如﹕sony﹑toshiba﹑intel等﹔繼而是主機名稱﹐如﹕www﹑mail﹑ftp等。因為當 初internet是從美國發起的﹐所以當時並沒有國域名稱﹐但隨著後來internet的蓬勃發展﹐DNS也加進了諸如tw﹑hk﹑au等國域名稱。所 以一個完整的dns名稱就好像是這樣的﹕www.xyz.com.tw﹐而整個名稱對應的就是一個IP地址了。



在開始的時候﹐root下面只有六個組織類別﹕


類別名稱 代表意思

edu 教育﹑學術單位

org 組織﹑機構

net 網路﹑通訊單位

com 公司﹑企業

gov 政府機關

mil 軍事單位

在結構中﹐各組織的DNS經過申請後由該組織或其委託機構管理﹐(通常當您申請註冊一個domain域名稱的時候﹐都要指定兩台DNS主機負責該域名的DNS管理)。



DNS的運作



在我們設定IP網路環境的時候﹐通常都要告訴每台主機關於DNS伺服器的地址﹐(我們可以手動的在每一台主機上面設置﹐也可以使用DHCP來設定)。



下面讓我們看看DNS是怎樣運作的﹕



當被詢問到有關本域名之內的主機名稱的時候﹐DNS伺服器會直接做出回答﹔

如果所查詢的主機名稱屬於其它域名的話﹐會檢查記憶體﹐看看有沒有相關資料﹔

如果沒有發現﹐則會轉向root伺服器查詢﹔

然後root伺服器會將該域名之授權(authoritative)伺服器(可能會超過一台)的地址告知﹔

本地伺服器然後會向其中的一台伺服器查詢﹐並將這些伺服器名單存到記憶體中﹐以備將來之需(省卻再向root查詢的步驟)﹔

遠方伺服器回應查詢﹔

將查詢結果回應給客戶﹐並同時將結果儲存一個備份在自己的快取記憶裡面﹔

如果在存放時間尚未過時之前再接到相同的查詢﹐則以存放於快取記憶裡面的資料來做回應。



從這個過程我們可以看出﹐沒有任何一台DNS主機會包含所有域名的DNS資料﹐資料都是分散在全部的DNS伺服器中﹐而NIC只需知道各DNS伺服器地址就可以了。
同時﹐DNS還能提供“反查詢”(reverse lookup)功能﹐也就是以IP來查詢主機名稱。網路上面的許多服務﹐如﹕FTP, IRC, WWW﹑等等﹐都需要到這個功能。其實﹐DNS服務本身就必須要使用反查詢功能﹐而且在設定上﹐也必須要為每個網路建立起reverse zone。雖然有些人發覺即使沒有reverse zone也可以利用到DNS服務﹐但其中弊端卻不容易被察覺到﹐在這個(中文)網頁﹕http://dnsrd.nctu.edu.tw/Basic /WhenToUse-Rev.html上面﹐您可以看到忽略revers zone所致一些問題。



DNS的名稱記錄



事實上﹐DNS不僅僅是用來解釋地址用的﹐而且還可以回答更多關於網路和主機的其它信息﹐其中很重要的一個功能就是可以供郵件系統進行路由。這些資料﹐通常會以不同的“記錄”名稱出現在DNS的資料檔案中。

類別名稱 代表意思

TXT 只是一些說明文字﹐可以用來說明主機/網路環境設定

NS 名稱伺服器﹐也就是該zone指定的DNS伺服器名稱

MX 郵件伺服器﹐負責經由DNS查詢進行郵件傳遞的郵件伺服器。這樣的好處是﹕如果您要更換郵件伺服器的話﹐只需修改DNS記錄就可以了﹐而對方的郵件伺服器 則無需理會您要使用的究竟是哪一台電腦來負責郵件交換。同時﹐您也可以指定多台郵件伺服器來分擔郵件交換工作﹐在MX後面的號數用來指定伺服器的使用順序 ﹐數字越低越優先。

A 用來對應主機名稱和其IP地址﹐這個記錄最常用﹐而且也是最重要的記錄之一

HINFO 和TXT差不多﹐是回答“Host Information”查詢用的

CNAME 是一個“別名”記錄﹐可以給A記錄使用另外一個(或多個)名稱讓外面查詢。CNAME可以對應一個A記錄﹐但不鼓勵對應另一個CNAME記錄。

AAAA 和A記錄一樣﹐只不過對應的是IP v6 格式


分擔DNS工作



Primary(master) DNS伺服器是架設在某一個網域下被主要授權並控制所有名稱記錄的主控制伺服器﹐管轄著所有該網域的記錄資料﹐這些記錄資料只有primary(master)可以修改。



但 如果在一個比較大型的網路中﹐DNS伺服器就會變得很繁忙了﹐所以您可以設定多個DNS來分擔master的工作﹐但您或許不願意到每一個DNS伺服器去 更新資料吧﹖而且就算您願意這樣做﹐也容易出現錯誤或資料不同步的情形。這樣您可以設定其它的伺服器為secondary (slave) DNS來複製master上面的記錄資料﹐這樣﹐其它的電腦可以被指定到不同的DNS做查詢﹐既可以分擔master的工作﹐而且資料也可以自動進行同步 工作。您可以設定DNS資料同步的時間間隔﹐在dns檔案中的Refresh設定就是了。同時您還會看到Serial﹐當slave的上面的serial 數字少於它﹐資料就會被複製﹐否則會被忽略。



驗證DNS工作



當您建立好一個 DNS伺服器之後﹐除了可以直接使用命令 ping (這個會在後面章節說明)直接ping一下上面的記錄之外﹐最好還是使用“nslookup”這個命令進行檢測或除錯﹐(Windows9x系統並不包含 此命令)。


同時﹐在設定 DNS 的時候﹐需要比較慎密的設計﹐以免不實資料的氾濫。

管理好 DNS 系統是每一個網路管理員應盡的義務來的。

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 新竹 廣宇電腦  的頭像
    新竹 廣宇電腦

    新竹市/新竹縣 廣宇電腦 電腦維護/電腦組裝/電腦到府維修/電腦到府收送 專業電腦維修中心

    新竹 廣宇電腦 發表在 痞客邦 留言(0) 人氣()