基于Linux下的DNS服務(wù)器的構(gòu)建與配置
基于Linux 下的DNS 服務(wù)器的構(gòu)建與配置1 引 言1.1設(shè)計(jì)的意義近年來(lái),隨著―傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)‖套件的廣泛使用,TCP/IP已經(jīng)成為網(wǎng)絡(luò)通信中事實(shí)上的標(biāo)準(zhǔn)。在TCP/I
基于Linux 下的DNS 服務(wù)器的構(gòu)建與配置
1 引 言
1.1設(shè)計(jì)的意義
近年來(lái),隨著―傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)‖套件的廣泛使用,TCP/IP已經(jīng)成為網(wǎng)絡(luò)通信中事實(shí)上的標(biāo)準(zhǔn)。在TCP/IP網(wǎng)絡(luò)中,每一臺(tái)主機(jī)都既可以通過(guò)域名也可以通過(guò)唯一的IP 地址實(shí)現(xiàn)互聯(lián),這是因?yàn)橛蛎cIP 地址之間存在這一對(duì)一的映射關(guān)系。DNS (Domain Name System ,即域名系統(tǒng))服務(wù)可以提供域名和IP 地址之間的自動(dòng)轉(zhuǎn)換,用于將不易記憶的IP 地址翻譯成相對(duì)來(lái)說(shuō)易于記憶的域名。這種地址翻譯的過(guò)程成為域名解析,而提供域名解析服務(wù)的網(wǎng)絡(luò)主機(jī),通常被成為DNS 服務(wù)器[1]。本次設(shè)計(jì),主要是實(shí)現(xiàn)Linux 下DNS 服務(wù)器的構(gòu)建與配置。
1.2相關(guān)概念簡(jiǎn)介
1.DNS 系統(tǒng)簡(jiǎn)介
DNS (Domain Name System )即―域名系統(tǒng)‖[2]。在一個(gè)TCP/IP架構(gòu)的網(wǎng)絡(luò)(例如Internet )環(huán)境中,IP 地址用于標(biāo)識(shí)主機(jī)地址,DNS 的主要功能是易于記憶的Domain Name(域名)與人不容易記憶的IP 地址進(jìn)行轉(zhuǎn)換。網(wǎng)絡(luò)中執(zhí)行DNS 服務(wù)的主機(jī)稱(chēng)為DNS 服務(wù)器(域名服務(wù)器)。DNS 服務(wù)器除了將域名轉(zhuǎn)換為IP 地址外(―正向解析‖),還可以將IP 地址轉(zhuǎn)換成域名(―逆向解析‖)。
域名系統(tǒng)(DNS )是一種用于TCP/IP應(yīng)用程序的全球分布式數(shù)據(jù)庫(kù)。在Internet 上的單個(gè)站點(diǎn)不能擁有Internet 上所有的信息。每個(gè)站點(diǎn)(如某所大學(xué)中、某間公司)保留自己的信息數(shù)據(jù)庫(kù),并提供給Internet 上的客戶查詢。該數(shù)據(jù)庫(kù)的結(jié)構(gòu)可以用反轉(zhuǎn)樹(shù)狀圖來(lái)表示,如圖1.1所示。
,根域
子域
子域
主機(jī)
圖1.1 域名系統(tǒng)樹(shù)形結(jié)構(gòu)圖
一個(gè)域(Domain )一般是指整個(gè)域名空間的一個(gè)子樹(shù)。樹(shù)的最上層是根(root ),用―.‖表示,根下面是若干個(gè)子樹(shù),又稱(chēng)為域(Domain )。根域下面是頂級(jí)域名,主要有com 、edu 、gov 、org 、net 和mpa 等。表1-1描述了這些頂級(jí)域名的含義。
表1-1 頂級(jí)域名及其含義
域名的分配和管理由國(guó)際互聯(lián)網(wǎng)中心(InterNIC )負(fù)責(zé)。一般頂級(jí)域名分為兩類(lèi),一類(lèi)是表示組織性質(zhì),如com ,另一類(lèi)是地域性質(zhì),如cn 表示中國(guó)。在頂級(jí)域名下是二級(jí)域名,通常由InterNIC 授權(quán)給其他單位或組織管理,如中國(guó)的域名管理中心是CNNIC 。例如,在域名www.abc.com.cn 中,cn 是地域性的頂級(jí)域名,com 是組織性的頂級(jí)域名,abc 是二級(jí)域名。在二級(jí)域名還可以再設(shè)置三級(jí)域名,如www.abc.com.cn ,www 是一個(gè)三級(jí)域名。三級(jí)域名的管理一般由二級(jí)域名的所有者負(fù)責(zé),不再由NIC 負(fù)責(zé)。
2.hosts 文件
在Linux 系統(tǒng)中,往往在/etc目錄下存在一個(gè)提供DNS 解析的文件——hosts 文件。hosts 文件包括域名和IP 地址的對(duì)應(yīng)信息。當(dāng)一臺(tái)計(jì)算機(jī)需要通過(guò)域名來(lái)定位網(wǎng)絡(luò)上另
一臺(tái)計(jì)算機(jī)時(shí),往往先查看本地hosts 文件。
一個(gè)典型的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
每一行為一個(gè)記錄,標(biāo)識(shí)一臺(tái)計(jì)算機(jī)。第一列指出IP 地址,如192.168.1.1;第二列開(kāi)始指明該IP 地址對(duì)應(yīng)的計(jì)算機(jī)名。一臺(tái)計(jì)算機(jī)可以設(shè)置多個(gè)名字,每個(gè)名字之間用空格分隔開(kāi)。例如,www 、www.abc.com.cn 都是IP 地址為192.168.1.1的計(jì)算機(jī)的名字
3.DNS 服務(wù)器的分類(lèi)
Internet 上主機(jī)的域名和地址解析主要是由DNS 域名服務(wù)器完成的。DNS 域名空間中存在以下幾種DNS 服務(wù)器。
①根服務(wù)器:用―.‖表示,位于整個(gè)域名空間的最上層,主要用來(lái)管理根域和頂級(jí)域名。目前,世界上一共有13臺(tái)計(jì)算機(jī)作為根服務(wù)器。
②緩存(cache-only )域名服務(wù)器:域名系統(tǒng)中的域名服務(wù)器把非它們授權(quán)管理的遠(yuǎn)程域名信息保存在自己的緩存中。遇到域名查詢時(shí),首先查找緩存中的記錄,如果找到該記錄,則把結(jié)果返回給客戶端;否則,按照DNS 的查找規(guī)則進(jìn)一步查找。緩存服務(wù)器只用來(lái)緩存DNS 域的信息,沒(méi)有本地的域名數(shù)據(jù)庫(kù),不管理任何域名信息。
③主域名(Primary servers)服務(wù)器:每個(gè)域必須有一個(gè)主域名服務(wù)器。該域的所有DNS 數(shù)據(jù)庫(kù)文件的修改都在這臺(tái)服務(wù)器上進(jìn)行。主域名服務(wù)器管理對(duì)其子域的授權(quán),并且對(duì)該域中的輔助域名服務(wù)器進(jìn)行周期性的更新和同步。
④輔助域名(secondary servers)服務(wù)器:每個(gè)域至少應(yīng)有一個(gè)輔助域名服務(wù)器。輔助域名服務(wù)器從相應(yīng)的主域名服務(wù)器獲得所有域名數(shù)據(jù)庫(kù)文件的副本,并對(duì)所服務(wù)的域提供和主域名服務(wù)器一樣的授權(quán)信息。
⑤轉(zhuǎn)發(fā)域名服務(wù)器:是主域名服務(wù)器和輔助域名服務(wù)器的一種變形,負(fù)責(zé)所有非本地域名的非本地查詢。如果在網(wǎng)絡(luò)中存在一臺(tái)轉(zhuǎn)發(fā)域名服務(wù)器,則所有對(duì)于非本地域名的查詢都將先轉(zhuǎn)發(fā)給它,再由轉(zhuǎn)發(fā)域名服務(wù)器進(jìn)行域名解析。
4. 解析器
,2 DNS 的工作原理
2.1 DNS的解析原理
1. 正向解析
當(dāng)DNS 客戶端向DNS 服務(wù)器查詢IP 地址時(shí),或DNS 服務(wù)器在向另外一臺(tái)DNS 服務(wù)器查詢IP 地址時(shí),有以下三種查詢方式:
①直接從緩沖存儲(chǔ)器解析:可以直接從DNS 客戶端或DNS 服務(wù)器的高速緩沖器中獲得查詢結(jié)果。
②遞歸查詢:DNS 客戶端送出查詢要求后,如果本地DNS 服務(wù)器內(nèi)沒(méi)有需要的數(shù)據(jù),則DNS 服務(wù)器會(huì)代替客戶端向起他的DNS 服務(wù)器查詢,一般由DNS 客戶端所提出的查詢要求是屬于遞歸查詢。
③循環(huán)查詢:一般DNS 服務(wù)器與DNS 服務(wù)器之間的查詢屬于這種查詢方式,當(dāng)?shù)?臺(tái)DNS 服務(wù)器在向第2臺(tái)DNS 服務(wù)器提出的查詢要求后,如果第2臺(tái)DNS 服務(wù)器內(nèi)沒(méi)有所需要的數(shù)據(jù),則它會(huì)提供第3臺(tái)DNS 服務(wù)器的IP 地址給第1臺(tái)服務(wù)器,讓第1臺(tái)DNS 服務(wù)器向第3臺(tái)DNS 服務(wù)器查詢。具體解析過(guò)程,如圖2.1所示。
DNS2
管轄根的DNS服務(wù)器
DNS4
管轄ahxinhua.comDNS3管轄.com DNS務(wù)器
圖2.1 DNS解析過(guò)程
2. 反向解析
域名反向解析可以讓DNS 客戶端利用IP 地址查詢其主機(jī)名稱(chēng),服務(wù)器利用in-addr.arpa 反向指針[4],講一個(gè)IP 地址指點(diǎn)向域名。
,2.2 DNS的解析過(guò)程
以解析www.abc.com 域名為例。當(dāng)系統(tǒng)需要調(diào)用www.abc.com 主機(jī)的資料時(shí),發(fā)送一個(gè)查詢www.abc.com 域名的指令。
(1)系統(tǒng)中存在一個(gè)hosts 文件,可以用來(lái)解析域名。在系統(tǒng)中,可以定義查找域名的順序:先查找hosts 文件,還是先查找DNS 服務(wù)器。一般設(shè)置先查找hosts 文件,如果在hosts 文件中發(fā)現(xiàn)www.abc.com 記錄,則直接返回結(jié)果。
(2)如果hosts 文件中沒(méi)有發(fā)現(xiàn)該記錄,則把查詢指令轉(zhuǎn)發(fā)到系統(tǒng)中指定的域名服務(wù)器,進(jìn)行DNS 查詢。
(3)域名服務(wù)器在自己的緩存中查找相應(yīng)的域名記錄,如果存在該記錄,則返回結(jié)果;否則,把這個(gè)查詢指令轉(zhuǎn)發(fā)到根域名服務(wù)器。
(4)在根域名服務(wù)器的記錄中,根據(jù)遞歸查詢的規(guī)則,只能返回頂級(jí)域名com ,并且把能夠解析com 的域名服務(wù)器的地址告訴客戶機(jī)。
(5)客戶機(jī)根據(jù)返回的信息,繼續(xù)向com 域名服務(wù)器發(fā)送遞歸請(qǐng)求,收到請(qǐng)求的、能夠正確返回abc.com 域名信息的域名服務(wù)器,再把相關(guān)信息返回給客戶機(jī)。
(6)客戶機(jī)再次向abc.com 的域名服務(wù)器發(fā)送遞歸請(qǐng)求,收到請(qǐng)求的服務(wù)器再次進(jìn)行解析;該服務(wù)器已經(jīng)能夠把www.abc.com 域名完全解析到一個(gè)IP 地址,并把這個(gè)IP 地址返回。
,3 Linux 下DNS 的構(gòu)建與配置
在Linux 中下架設(shè)DNS 服務(wù)器使用的工具通常是Bind 程序Bind 是為BSD 操作系統(tǒng)[5]開(kāi)發(fā)的一套網(wǎng)絡(luò)域名服務(wù)系統(tǒng),是一款實(shí)現(xiàn)DNS 服務(wù)器的開(kāi)發(fā)源軟件。在此次設(shè)計(jì)平臺(tái)Linux 9系統(tǒng)中采用了Bind-9.2.1版本。
3.1 安裝DNS 服務(wù)器
1. 查看Band 軟件包
在Red Hat Linux 9中,系統(tǒng)默認(rèn)安裝了Bind ,可以通過(guò)一下命令進(jìn)行查詢: # rpm –q bind
bind-9.2.1-16
可以知道系統(tǒng)中已經(jīng)安裝好了Bind ,其版本號(hào)為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ù)器守護(hù)進(jìn)程所對(duì)應(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 的啟動(dòng)、停止及測(cè)試
可以使用service 命令啟動(dòng)、關(guān)閉和重新啟動(dòng)DNS 守護(hù)進(jìn)程named 。
啟動(dòng)named 進(jìn)程,命令行為:
# service named start
named 已經(jīng)在運(yùn)行
關(guān)閉named 進(jìn)程,命令行為:
#service named stop
,停止named :
重新啟動(dòng)named 進(jìn)程,命令行為:
# service named restart
停止named :
named 已經(jīng)在運(yùn)行
4. 測(cè)試DNS 服務(wù)器
bind-utils
軟件包中自帶了dig 、host 和nslookup 等測(cè)試工具。如果能使用這幾個(gè)工具對(duì)地址進(jìn)行正確解析,則說(shuō)明DNS 服務(wù)器已經(jīng)正常工作。
①nslookup 命令
直接使用nslookup 命令可以進(jìn)入交互模式。輸入需要解釋的域名將顯示對(duì)應(yīng)的IP 地址,輸入IP 地址則可以顯示對(duì)應(yīng)的域名,如下所示:
# nslookup
> 192.168.120.100 //對(duì)192.168.120.100地址進(jìn)行解析 Server: 192.168.120.100 //顯示當(dāng)前DNS 服務(wù)器地址信息 Address: 192.168.120.100#53
……..
②host 命令
使用host 命令也可以對(duì)域名或IP 地址進(jìn)行解析。如果DNS 服務(wù)器工作正常,則將返回相應(yīng)的解析結(jié)果,命令行如下所示:
# host www.my.internal.zone /對(duì)此域名進(jìn)行解析/ 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 命令測(cè)試某一域名,如果DNS 服務(wù)器正常工作,將自動(dòng)對(duì)其進(jìn)行解析并返回測(cè)試結(jié)果,相關(guān)命令行如下所示:
# ping sans.my.internal.zone
PING san.my.internal.zone (192.168.255.128) 56(84) bytes of data.
….
3.1 實(shí)驗(yàn)環(huán)境的構(gòu)建
(1)DNS的幾個(gè)專(zhuān)用名稱(chēng):
①Forward Master Zone:主前向DNS 區(qū)域,用來(lái)解析域名和IP 地址的轉(zhuǎn)換[6]。 ②Reverse Master Zone:主反序DNS 區(qū)域,用來(lái)解析IP 地址和域名的轉(zhuǎn)換。
(2)實(shí)驗(yàn)環(huán)境:
Web 客戶機(jī)[7]:裝有Windows 98或其他操作系統(tǒng)的客戶機(jī)(本實(shí)驗(yàn)采用Windows
98),安裝網(wǎng)頁(yè)瀏覽器,IP 地址為192.168.0.3到192.168.0.254中的任意一個(gè),主機(jī)名任意,不重復(fù)即可。
DNS 服務(wù)器:安裝Red Hat Linux的服務(wù)器,主機(jī)名為dnsserver.mydomain (完整域名),IP 地址為192.168.0.1,在本實(shí)驗(yàn)中充當(dāng)DNS 服務(wù)器。
Web 服務(wù)器:用戶網(wǎng)頁(yè)發(fā)布的服務(wù)器,可以是裝有Apache 的Linux 服務(wù)器,也可以是Windows 的IIS ,IP 地址為192.168.0.2,并且已經(jīng)發(fā)布默認(rèn)網(wǎng)頁(yè),主機(jī)名為www.mydomain 。
整個(gè)實(shí)驗(yàn)環(huán)境構(gòu)建成一個(gè)名為mydomain 的虛擬域。實(shí)驗(yàn)用圖形界面來(lái)完成。
(3)為保證實(shí)驗(yàn)的順利進(jìn)行,首先保證整個(gè)實(shí)驗(yàn)環(huán)境的網(wǎng)絡(luò)連通性,即保證在整個(gè)實(shí)驗(yàn)環(huán)境中每一臺(tái)計(jì)算機(jī)之間的網(wǎng)絡(luò)是連通的,可以用ping 命令來(lái)檢查其連通性。
3.2 配置dnsserver 服務(wù)器中的DNS 服務(wù)
在―系統(tǒng)設(shè)置‖窗口中雙擊―服務(wù)器設(shè)置‖圖標(biāo),雙擊―域名服務(wù)‖圖標(biāo),打開(kāi)―服務(wù)器設(shè)置‖窗口,如圖3.1所示。
也可以在―主菜單‖中選擇―系統(tǒng)設(shè)置→服務(wù)器設(shè)置→域名服務(wù)‖選項(xiàng),彈出―域名服務(wù)‖對(duì)話框,如圖3.2所示。
DNS 服務(wù)器擔(dān)負(fù)著―域名轉(zhuǎn)換成IP‖及―IP轉(zhuǎn)換成域名‖兩種工作,對(duì)于DNS 服務(wù)器來(lái)說(shuō),每一個(gè)區(qū)域的數(shù)據(jù)都有兩種:前向區(qū)數(shù)據(jù)和反向區(qū)數(shù)據(jù),分別對(duì)應(yīng)域名轉(zhuǎn)換成IP
,及IP 轉(zhuǎn)換成域名的兩種轉(zhuǎn)換。
圖3.1 服務(wù)器設(shè)置窗口
3.3對(duì)域mydomain 進(jìn)行DNS 服務(wù)器的配置
對(duì)服務(wù)器配置mydomain 的前向區(qū)數(shù)據(jù)、記錄域名和IP 的對(duì)應(yīng)關(guān)系。在配置DNS 服務(wù)的對(duì)話框(見(jiàn)圖3.2)中單擊―新建‖按鈕,彈出―選擇一個(gè)區(qū)塊類(lèi)型‖對(duì)話框,如圖
3.3所示。
圖3.2 域名服務(wù)對(duì)話框
圖3.3 選擇一個(gè)區(qū)塊類(lèi)型對(duì)話框
在圖3.3中選擇―正向主區(qū)塊‖選項(xiàng),在―域名‖欄填入要添加數(shù)據(jù)的域名mydomain ,
,單擊―確定‖按鈕,彈出―名稱(chēng)到IP 的翻譯‖對(duì)話框,如圖3.4所示。
圖3.4 名稱(chēng)到IP 的翻譯對(duì)話框
在―主名稱(chēng)服務(wù)器(SOA )‖欄添入―@‖。在記錄框中已經(jīng)有一個(gè)記錄mydomain ,該
記錄是一個(gè)名稱(chēng)服務(wù)器記錄,即標(biāo)注區(qū)域mydomain 的域名服務(wù)器(DNS 服務(wù)器)記錄。 單擊―編輯‖按鈕,彈出―mydomain設(shè)置‖對(duì)話框,如圖3.5所示。在該對(duì)話框中可以編輯
該記錄完整的配置。
該對(duì)話框中包括兩欄,其中上欄設(shè)置本區(qū)域指定授權(quán)的DNS 服務(wù)器,下欄設(shè)置本
區(qū)域中負(fù)責(zé)接收外部郵件的郵件服務(wù)器。本實(shí)驗(yàn)沒(méi)有郵件服務(wù)器,因而下欄不填。在上
欄中單擊―添加‖按鈕,彈出―名稱(chēng)服務(wù)器的屬性‖對(duì)話框,如圖3.6所示。
填寫(xiě)完解析服務(wù)器dnsserver 的IP 地址后,單擊―確定‖按鈕,返回―名稱(chēng)到IP 的翻
譯‖對(duì)話框。單擊―增加‖按鈕,分別添加主機(jī)www 和dnsserver 服務(wù)器域名和IP 地址的
對(duì)應(yīng)關(guān)系,如圖3.7和圖3.8所示。
3.2 配置mydomain 服務(wù)器的反向區(qū)數(shù)據(jù)
在―域名服務(wù)‖對(duì)話框(見(jiàn)圖3.2)中單擊―新建‖按鈕,彈出―選擇一個(gè)區(qū)塊類(lèi)型‖對(duì)話
框。選擇―逆向主區(qū)塊‖選項(xiàng),在―IP 地址‖欄填入要添加區(qū)域數(shù)據(jù)IP 地址的前三部分
192.168.0,如圖3.9所示。
完成后,單擊―確定‖按鈕,彈出―IP到名稱(chēng)的翻譯‖對(duì)話框,如圖3.10所示。
在―名稱(chēng)服務(wù)器‖欄中單擊―增加‖按鈕,添加DNS 服務(wù)器名稱(chēng)。要填寫(xiě)完整的域名,
并要在域名后面加上一個(gè)點(diǎn),如圖3.11所示。