基于Linux下的DNS服務(wù)器的構(gòu)建與配置
基于Linux 下的DNS 服務(wù)器的構(gòu)建與配置1 引 言1.1設(shè)計的意義近年來,隨著―傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)‖套件的廣泛使用,TCP/IP已經(jīng)成為網(wǎng)絡(luò)通信中事實上的標準。在TCP/I
基于Linux 下的DNS 服務(wù)器的構(gòu)建與配置
1 引 言
1.1設(shè)計的意義
近年來,隨著―傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)‖套件的廣泛使用,TCP/IP已經(jīng)成為網(wǎng)絡(luò)通信中事實上的標準。在TCP/IP網(wǎng)絡(luò)中,每一臺主機都既可以通過域名也可以通過唯一的IP 地址實現(xiàn)互聯(lián),這是因為域名與IP 地址之間存在這一對一的映射關(guān)系。DNS (Domain Name System ,即域名系統(tǒng))服務(wù)可以提供域名和IP 地址之間的自動轉(zhuǎn)換,用于將不易記憶的IP 地址翻譯成相對來說易于記憶的域名。這種地址翻譯的過程成為域名解析,而提供域名解析服務(wù)的網(wǎng)絡(luò)主機,通常被成為DNS 服務(wù)器[1]。本次設(shè)計,主要是實現(xiàn)Linux 下DNS 服務(wù)器的構(gòu)建與配置。
1.2相關(guān)概念簡介
1.DNS 系統(tǒng)簡介
DNS (Domain Name System )即―域名系統(tǒng)‖[2]。在一個TCP/IP架構(gòu)的網(wǎng)絡(luò)(例如Internet )環(huán)境中,IP 地址用于標識主機地址,DNS 的主要功能是易于記憶的Domain Name(域名)與人不容易記憶的IP 地址進行轉(zhuǎn)換。網(wǎng)絡(luò)中執(zhí)行DNS 服務(wù)的主機稱為DNS 服務(wù)器(域名服務(wù)器)。DNS 服務(wù)器除了將域名轉(zhuǎn)換為IP 地址外(―正向解析‖),還可以將IP 地址轉(zhuǎn)換成域名(―逆向解析‖)。
域名系統(tǒng)(DNS )是一種用于TCP/IP應(yīng)用程序的全球分布式數(shù)據(jù)庫。在Internet 上的單個站點不能擁有Internet 上所有的信息。每個站點(如某所大學中、某間公司)保留自己的信息數(shù)據(jù)庫,并提供給Internet 上的客戶查詢。該數(shù)據(jù)庫的結(jié)構(gòu)可以用反轉(zhuǎn)樹狀圖來表示,如圖1.1所示。
,根域
子域
子域
主機
圖1.1 域名系統(tǒng)樹形結(jié)構(gòu)圖
一個域(Domain )一般是指整個域名空間的一個子樹。樹的最上層是根(root ),用―.‖表示,根下面是若干個子樹,又稱為域(Domain )。根域下面是頂級域名,主要有com 、edu 、gov 、org 、net 和mpa 等。表1-1描述了這些頂級域名的含義。
表1-1 頂級域名及其含義

域名的分配和管理由國際互聯(lián)網(wǎng)中心(InterNIC )負責。一般頂級域名分為兩類,一類是表示組織性質(zhì),如com ,另一類是地域性質(zhì),如cn 表示中國。在頂級域名下是二級域名,通常由InterNIC 授權(quán)給其他單位或組織管理,如中國的域名管理中心是CNNIC 。例如,在域名www.abc.com.cn 中,cn 是地域性的頂級域名,com 是組織性的頂級域名,abc 是二級域名。在二級域名還可以再設(shè)置三級域名,如www.abc.com.cn ,www 是一個三級域名。三級域名的管理一般由二級域名的所有者負責,不再由NIC 負責。
2.hosts 文件
在Linux 系統(tǒng)中,往往在/etc目錄下存在一個提供DNS 解析的文件——hosts 文件。hosts 文件包括域名和IP 地址的對應(yīng)信息。當一臺計算機需要通過域名來定位網(wǎng)絡(luò)上另

一臺計算機時,往往先查看本地hosts 文件。
一個典型的hosts 文件的格式如下:
127.0.0.1 loealhost localhost .localdomain
192.168.1.1 www www.abc.com.cn
192.168.1.2 ftp ftp.abc.com.cn
每一行為一個記錄,標識一臺計算機。第一列指出IP 地址,如192.168.1.1;第二列開始指明該IP 地址對應(yīng)的計算機名。一臺計算機可以設(shè)置多個名字,每個名字之間用空格分隔開。例如,www 、www.abc.com.cn 都是IP 地址為192.168.1.1的計算機的名字
3.DNS 服務(wù)器的分類
Internet 上主機的域名和地址解析主要是由DNS 域名服務(wù)器完成的。DNS 域名空間中存在以下幾種DNS 服務(wù)器。
①根服務(wù)器:用―.‖表示,位于整個域名空間的最上層,主要用來管理根域和頂級域名。目前,世界上一共有13臺計算機作為根服務(wù)器。
②緩存(cache-only )域名服務(wù)器:域名系統(tǒng)中的域名服務(wù)器把非它們授權(quán)管理的遠程域名信息保存在自己的緩存中。遇到域名查詢時,首先查找緩存中的記錄,如果找到該記錄,則把結(jié)果返回給客戶端;否則,按照DNS 的查找規(guī)則進一步查找。緩存服務(wù)器只用來緩存DNS 域的信息,沒有本地的域名數(shù)據(jù)庫,不管理任何域名信息。
③主域名(Primary servers)服務(wù)器:每個域必須有一個主域名服務(wù)器。該域的所有DNS 數(shù)據(jù)庫文件的修改都在這臺服務(wù)器上進行。主域名服務(wù)器管理對其子域的授權(quán),并且對該域中的輔助域名服務(wù)器進行周期性的更新和同步。
④輔助域名(secondary servers)服務(wù)器:每個域至少應(yīng)有一個輔助域名服務(wù)器。輔助域名服務(wù)器從相應(yīng)的主域名服務(wù)器獲得所有域名數(shù)據(jù)庫文件的副本,并對所服務(wù)的域提供和主域名服務(wù)器一樣的授權(quán)信息。
⑤轉(zhuǎn)發(fā)域名服務(wù)器:是主域名服務(wù)器和輔助域名服務(wù)器的一種變形,負責所有非本地域名的非本地查詢。如果在網(wǎng)絡(luò)中存在一臺轉(zhuǎn)發(fā)域名服務(wù)器,則所有對于非本地域名的查詢都將先轉(zhuǎn)發(fā)給它,再由轉(zhuǎn)發(fā)域名服務(wù)器進行域名解析。
4. 解析器
,2 DNS 的工作原理
2.1 DNS的解析原理
1. 正向解析
當DNS 客戶端向DNS 服務(wù)器查詢IP 地址時,或DNS 服務(wù)器在向另外一臺DNS 服務(wù)器查詢IP 地址時,有以下三種查詢方式:
①直接從緩沖存儲器解析:可以直接從DNS 客戶端或DNS 服務(wù)器的高速緩沖器中獲得查詢結(jié)果。
②遞歸查詢:DNS 客戶端送出查詢要求后,如果本地DNS 服務(wù)器內(nèi)沒有需要的數(shù)據(jù),則DNS 服務(wù)器會代替客戶端向起他的DNS 服務(wù)器查詢,一般由DNS 客戶端所提出的查詢要求是屬于遞歸查詢。
③循環(huán)查詢:一般DNS 服務(wù)器與DNS 服務(wù)器之間的查詢屬于這種查詢方式,當?shù)?臺DNS 服務(wù)器在向第2臺DNS 服務(wù)器提出的查詢要求后,如果第2臺DNS 服務(wù)器內(nèi)沒有所需要的數(shù)據(jù),則它會提供第3臺DNS 服務(wù)器的IP 地址給第1臺服務(wù)器,讓第1臺DNS 服務(wù)器向第3臺DNS 服務(wù)器查詢。具體解析過程,如圖2.1所示。

DNS2
管轄根的DNS服務(wù)器
DNS4
管轄ahxinhua.comDNS3管轄.com DNS務(wù)器
圖2.1 DNS解析過程
2. 反向解析
域名反向解析可以讓DNS 客戶端利用IP 地址查詢其主機名稱,服務(wù)器利用in-addr.arpa 反向指針[4],講一個IP 地址指點向域名。
,2.2 DNS的解析過程
以解析www.abc.com 域名為例。當系統(tǒng)需要調(diào)用www.abc.com 主機的資料時,發(fā)送一個查詢www.abc.com 域名的指令。
(1)系統(tǒng)中存在一個hosts 文件,可以用來解析域名。在系統(tǒng)中,可以定義查找域名的順序:先查找hosts 文件,還是先查找DNS 服務(wù)器。一般設(shè)置先查找hosts 文件,如果在hosts 文件中發(fā)現(xiàn)www.abc.com 記錄,則直接返回結(jié)果。
(2)如果hosts 文件中沒有發(fā)現(xiàn)該記錄,則把查詢指令轉(zhuǎn)發(fā)到系統(tǒng)中指定的域名服務(wù)器,進行DNS 查詢。
(3)域名服務(wù)器在自己的緩存中查找相應(yīng)的域名記錄,如果存在該記錄,則返回結(jié)果;否則,把這個查詢指令轉(zhuǎn)發(fā)到根域名服務(wù)器。
(4)在根域名服務(wù)器的記錄中,根據(jù)遞歸查詢的規(guī)則,只能返回頂級域名com ,并且把能夠解析com 的域名服務(wù)器的地址告訴客戶機。
(5)客戶機根據(jù)返回的信息,繼續(xù)向com 域名服務(wù)器發(fā)送遞歸請求,收到請求的、能夠正確返回abc.com 域名信息的域名服務(wù)器,再把相關(guān)信息返回給客戶機。
(6)客戶機再次向abc.com 的域名服務(wù)器發(fā)送遞歸請求,收到請求的服務(wù)器再次進行解析;該服務(wù)器已經(jīng)能夠把www.abc.com 域名完全解析到一個IP 地址,并把這個IP 地址返回。
,3 Linux 下DNS 的構(gòu)建與配置
在Linux 中下架設(shè)DNS 服務(wù)器使用的工具通常是Bind 程序Bind 是為BSD 操作系統(tǒng)[5]開發(fā)的一套網(wǎng)絡(luò)域名服務(wù)系統(tǒng),是一款實現(xiàn)DNS 服務(wù)器的開發(fā)源軟件。在此次設(shè)計平臺Linux 9系統(tǒng)中采用了Bind-9.2.1版本。
3.1 安裝DNS 服務(wù)器
1. 查看Band 軟件包
在Red Hat Linux 9中,系統(tǒng)默認安裝了Bind ,可以通過一下命令進行查詢: # rpm –q bind
bind-9.2.1-16
可以知道系統(tǒng)中已經(jīng)安裝好了Bind ,其版本號為9.2.1。如果需要查看更多的安裝信息,則使用如下命令:
# rpm –qi bind
2. 安裝DNS 服務(wù)器軟件
#rpm –ivh bind-9.2.1-16.i386.rpm
#rpm –ivh bind-utils-9.2.1-16.i386.rpm
#rpm –ivh caching-nameserver-9.2-7.noarch.rpm
相關(guān)文件:
/etc/named.conf dns 服務(wù)器核心配置文件
/etc/rc.d/init.d/named dns 服務(wù)器守護進程所對應(yīng)的程序
/var/named/named.ca dns 服務(wù)器根區(qū)域文件
/var/named/localhosts.zone dns 服務(wù)器localhost 區(qū)域的正向文件
/var/named/named.local 127.0.0.0的反向解析文件
3.DNS 的啟動、停止及測試
可以使用service 命令啟動、關(guān)閉和重新啟動DNS 守護進程named 。
啟動named 進程,命令行為:
# service named start
named 已經(jīng)在運行
關(guān)閉named 進程,命令行為:
#service named stop
,停止named :
重新啟動named 進程,命令行為:
# service named restart
停止named :
named 已經(jīng)在運行
4. 測試DNS 服務(wù)器
bind-utils
軟件包中自帶了dig 、host 和nslookup 等測試工具。如果能使用這幾個工具對地址進行正確解析,則說明DNS 服務(wù)器已經(jīng)正常工作。
①nslookup 命令
直接使用nslookup 命令可以進入交互模式。輸入需要解釋的域名將顯示對應(yīng)的IP 地址,輸入IP 地址則可以顯示對應(yīng)的域名,如下所示:
# nslookup
> 192.168.120.100 //對192.168.120.100地址進行解析 Server: 192.168.120.100 //顯示當前DNS 服務(wù)器地址信息 Address: 192.168.120.100#53
……..
②host 命令
使用host 命令也可以對域名或IP 地址進行解析。如果DNS 服務(wù)器工作正常,則將返回相應(yīng)的解析結(jié)果,命令行如下所示:
# host www.my.internal.zone /對此域名進行解析/ www.my.internal.zone has address 192.168.255.3 //正向解析結(jié)果
# host 192.168.255.3
3.255.168.192.in-addr.arpa domain name pointer www.my.internal.zone. //反向解析結(jié)果
dig 命令
dig 命令不僅顯示解析結(jié)果,而且顯示與所查詢域名相關(guān)的DNS 服務(wù)器的配置信息,命令行如下所示:
# dig rhel.my.internal.zone
…..
③ping 命令
,直接使用ping 命令測試某一域名,如果DNS 服務(wù)器正常工作,將自動對其進行解析并返回測試結(jié)果,相關(guān)命令行如下所示:
# ping sans.my.internal.zone
PING san.my.internal.zone (192.168.255.128) 56(84) bytes of data.
….
3.1 實驗環(huán)境的構(gòu)建
(1)DNS的幾個專用名稱:
①Forward Master Zone:主前向DNS 區(qū)域,用來解析域名和IP 地址的轉(zhuǎn)換[6]。 ②Reverse Master Zone:主反序DNS 區(qū)域,用來解析IP 地址和域名的轉(zhuǎn)換。
(2)實驗環(huán)境:
Web 客戶機[7]:裝有Windows 98或其他操作系統(tǒng)的客戶機(本實驗采用Windows
98),安裝網(wǎng)頁瀏覽器,IP 地址為192.168.0.3到192.168.0.254中的任意一個,主機名任意,不重復(fù)即可。
DNS 服務(wù)器:安裝Red Hat Linux的服務(wù)器,主機名為dnsserver.mydomain (完整域名),IP 地址為192.168.0.1,在本實驗中充當DNS 服務(wù)器。
Web 服務(wù)器:用戶網(wǎng)頁發(fā)布的服務(wù)器,可以是裝有Apache 的Linux 服務(wù)器,也可以是Windows 的IIS ,IP 地址為192.168.0.2,并且已經(jīng)發(fā)布默認網(wǎng)頁,主機名為www.mydomain 。
整個實驗環(huán)境構(gòu)建成一個名為mydomain 的虛擬域。實驗用圖形界面來完成。
(3)為保證實驗的順利進行,首先保證整個實驗環(huán)境的網(wǎng)絡(luò)連通性,即保證在整個實驗環(huán)境中每一臺計算機之間的網(wǎng)絡(luò)是連通的,可以用ping 命令來檢查其連通性。
3.2 配置dnsserver 服務(wù)器中的DNS 服務(wù)
在―系統(tǒng)設(shè)置‖窗口中雙擊―服務(wù)器設(shè)置‖圖標,雙擊―域名服務(wù)‖圖標,打開―服務(wù)器設(shè)置‖窗口,如圖3.1所示。
也可以在―主菜單‖中選擇―系統(tǒng)設(shè)置→服務(wù)器設(shè)置→域名服務(wù)‖選項,彈出―域名服務(wù)‖對話框,如圖3.2所示。
DNS 服務(wù)器擔負著―域名轉(zhuǎn)換成IP‖及―IP轉(zhuǎn)換成域名‖兩種工作,對于DNS 服務(wù)器來說,每一個區(qū)域的數(shù)據(jù)都有兩種:前向區(qū)數(shù)據(jù)和反向區(qū)數(shù)據(jù),分別對應(yīng)域名轉(zhuǎn)換成IP
,及IP 轉(zhuǎn)換成域名的兩種轉(zhuǎn)換。

圖3.1 服務(wù)器設(shè)置窗口
3.3對域mydomain 進行DNS 服務(wù)器的配置
對服務(wù)器配置mydomain 的前向區(qū)數(shù)據(jù)、記錄域名和IP 的對應(yīng)關(guān)系。在配置DNS 服務(wù)的對話框(見圖3.2)中單擊―新建‖按鈕,彈出―選擇一個區(qū)塊類型‖對話框,如圖
3.3所示。

圖3.2 域名服務(wù)對話框

圖3.3 選擇一個區(qū)塊類型對話框
在圖3.3中選擇―正向主區(qū)塊‖選項,在―域名‖欄填入要添加數(shù)據(jù)的域名mydomain ,
,單擊―確定‖按鈕,彈出―名稱到IP 的翻譯‖對話框,如圖3.4所示。

圖3.4 名稱到IP 的翻譯對話框
在―主名稱服務(wù)器(SOA )‖欄添入―@‖。在記錄框中已經(jīng)有一個記錄mydomain ,該
記錄是一個名稱服務(wù)器記錄,即標注區(qū)域mydomain 的域名服務(wù)器(DNS 服務(wù)器)記錄。 單擊―編輯‖按鈕,彈出―mydomain設(shè)置‖對話框,如圖3.5所示。在該對話框中可以編輯
該記錄完整的配置。
該對話框中包括兩欄,其中上欄設(shè)置本區(qū)域指定授權(quán)的DNS 服務(wù)器,下欄設(shè)置本
區(qū)域中負責接收外部郵件的郵件服務(wù)器。本實驗沒有郵件服務(wù)器,因而下欄不填。在上
欄中單擊―添加‖按鈕,彈出―名稱服務(wù)器的屬性‖對話框,如圖3.6所示。
填寫完解析服務(wù)器dnsserver 的IP 地址后,單擊―確定‖按鈕,返回―名稱到IP 的翻
譯‖對話框。單擊―增加‖按鈕,分別添加主機www 和dnsserver 服務(wù)器域名和IP 地址的
對應(yīng)關(guān)系,如圖3.7和圖3.8所示。
3.2 配置mydomain 服務(wù)器的反向區(qū)數(shù)據(jù)
在―域名服務(wù)‖對話框(見圖3.2)中單擊―新建‖按鈕,彈出―選擇一個區(qū)塊類型‖對話
框。選擇―逆向主區(qū)塊‖選項,在―IP 地址‖欄填入要添加區(qū)域數(shù)據(jù)IP 地址的前三部分
192.168.0,如圖3.9所示。
完成后,單擊―確定‖按鈕,彈出―IP到名稱的翻譯‖對話框,如圖3.10所示。
在―名稱服務(wù)器‖欄中單擊―增加‖按鈕,添加DNS 服務(wù)器名稱。要填寫完整的域名,
并要在域名后面加上一個點,如圖3.11所示。