伍仕杰 徐倩
摘 要:DNS是計(jì)算機(jī)網(wǎng)絡(luò)重要的應(yīng)用系統(tǒng),本文研究了基于OpenSUSE15 Linux和BIND9的DNS Server配置,介紹了平臺概況,詳細(xì)描述了配置的過程,重點(diǎn)對相關(guān)的關(guān)鍵選項(xiàng)或是參數(shù)的配置進(jìn)行了分析,為DNS 服務(wù)器的配置維護(hù)提供參考。
關(guān)鍵詞:DNS BIND配置
前言:
DNS 是計(jì)算機(jī)網(wǎng)絡(luò)重要的應(yīng)用系統(tǒng),對于計(jì)算機(jī)網(wǎng)絡(luò)的應(yīng)用和服務(wù)有著重要的意義。Windows和Linux平臺都有相關(guān)的軟件可以搭建DNS服務(wù)器, OpenSUSE15 Linux和BIND9的組合穩(wěn)定且方便維護(hù)。
一、平臺概況
BIND是一款開放源碼的DNS服務(wù)器軟件,是由美國加州大學(xué)Berkeley分校開發(fā)和維護(hù)的,全名為Berkeley Internet Name Domain,它是目前世界上使用最為廣泛的開源DNS服務(wù)器軟件,支持各種unix平臺和windows平臺。BIND9是最新的版本。
YaST是OpenSUSE及SUSE Linux中的工具,是在Linux環(huán)境下最有效的安裝和系統(tǒng)管理工具。它是一個(gè)由Novell公司發(fā)起和積極推動(dòng)的開源項(xiàng)目。YaST是以RPM為基礎(chǔ)的操作系統(tǒng)安裝與設(shè)置工具,它的特性主要在于,可以設(shè)置很多系統(tǒng)的各個(gè)部分。一些服務(wù),包括多個(gè)配置文件需要捆綁在一起。管理員不必找出是哪些配置文件,因?yàn)閅aST提供了一個(gè)通用的接口,適用修改所有相關(guān)的文件,讓管理員可以方便地配置復(fù)雜的配置文件。
SuSE YaST并不意味著管理員必須將SUSE運(yùn)行在圖形窗口模式下使用。SUSE是使用標(biāo)準(zhǔn)的SSH協(xié)議,可以通過SecureCRT,Putty等標(biāo)準(zhǔn)SSH工具都可以遠(yuǎn)程進(jìn)行管理,而且YaST和無圖形窗口模式100%兼容,對于遠(yuǎn)程連接服務(wù)器來說也非常方便。這樣即使是對于沒有經(jīng)驗(yàn)的Linux管理員,YaST也是事半功倍的好用的工具。
Yast-DNS-Server是Yast的一個(gè)組件,可以方便靈活地對DNS服務(wù)進(jìn)行配置和管理。
二、安裝環(huán)境
(一)安裝OpenSUSE15.1
OpenSUSE15.1是OpenSUSE的最新版本,安裝過程中選擇系統(tǒng)角色即使用用途,選擇“KDE Plasma桌面系統(tǒng)”即可安裝圖形化界面。
(二)安裝YaST-DNS-Server
OpenSUSE 的zyper命令能提供互聯(lián)網(wǎng)上的在線安裝,但我們是在內(nèi)網(wǎng)使用,為確保安全,采用線下安裝的方式。首先下載DNS-Server的rpm,拷貝到服務(wù)器,將文件名改短,如“yast-dns-server.rpm”,在terminal中進(jìn)入此路徑,輸入命令#yast –in yast-dns-server.rpm進(jìn)行安裝。
在安裝過程中,安裝程序會自動(dòng)提示安裝BIND,確認(rèn)安裝就可以了。
三、配置
(一)配置權(quán)威服務(wù)器
1、增加域及記錄
權(quán)威服務(wù)器,打開YaST,找到Network Service,其中安裝了DNS-Server,點(diǎn)擊打開,點(diǎn)擊“DNS Zones”,在“Name”填寫框中填寫“cs.”,“Type”默認(rèn)選擇“Master”,表明這是一個(gè)主域服務(wù)器。點(diǎn)擊后面的“Add”按鈕。下面“Configured DNS Zones”框中增加“cs.”域,選擇該域,點(diǎn)擊框右邊的“Edit”按鈕,進(jìn)入域編輯器“Zone Editor”。
點(diǎn)擊標(biāo)簽“Records”,在下面的輸入框輸入相應(yīng)的項(xiàng),“Record Key”中填入域名,“Type”中選擇“A:IPv4 Domain Name Translation”,“Value”項(xiàng)填寫IP地址。完畢后,點(diǎn)擊右側(cè)“Add”按鈕,記錄被記錄,陳列在下邊“Configured Resource Records”表中。點(diǎn)擊右下角“OK”按鈕,回到“DNS Zones”,點(diǎn)擊右下角“OK”按鈕,DNS-Server完成配置保存、緩存清理等后關(guān)閉。
DNS-Server在 /etc/named.conf配置文件中,定義一個(gè)主域服務(wù)器:
2、測試。
在terminal中使用“nslookup 域名 127.0.0.1” 命令,測試剛才加入的域名是否能正確解析。
3、訪問控制
在測試過程中發(fā)現(xiàn),在服務(wù)器所在局域網(wǎng)能使用該服務(wù)器解析域名,但在局域往外解析失敗,返回“Query refused”。這是對請求查詢的主機(jī)進(jìn)行了限制。
找到DNS-Server中“Basic Options”,在“Add or Change Option”選擇“allow-query”項(xiàng),填值“{0.0.0.0/0}”,允許所有主機(jī)的查詢。
(二)配置緩存 DNS 服務(wù)器
已經(jīng)配置了主域服務(wù)器,仍有必要定義一個(gè)緩存服務(wù)器。因?yàn)榫彺娣?wù)器上不存放特定域名的配置文件。當(dāng)客戶端請求緩存服務(wù)器來解析域名時(shí),該服務(wù)器將首先檢查其本地緩存。如果找不到匹配項(xiàng)便會詢問主服務(wù)器,接著這條響應(yīng)將被緩存起來。這樣可以減少 DNS 權(quán)威服務(wù)器的查詢次數(shù)。
1、定義一個(gè)緩存服務(wù)器
在新的服務(wù)器上安裝YaST-DNS-Server,由于緩存服務(wù)器上不定義特定域名,所以只需定義一個(gè)轉(zhuǎn)發(fā)。
作為緩存服務(wù)器,在很多情況下都使用轉(zhuǎn)發(fā)器forwarder,所有非本域的和在緩存中無法找到的域名查詢都將轉(zhuǎn)發(fā)到設(shè)置的DNS轉(zhuǎn)發(fā)器上,由這臺DNS來完成解析工作并做緩存。但這種方式,對域沒有選擇性,只要自己不能解析的都往設(shè)置的DNS轉(zhuǎn)發(fā)器上發(fā),對指定的權(quán)威服務(wù)器勢必也造成負(fù)擔(dān)。在BIND9.1.0以后引入了一個(gè)新的特性:轉(zhuǎn)發(fā)區(qū)(forward zone),它允許把DNS配置成只有查找特定域名的時(shí)候才使用轉(zhuǎn)發(fā)器。
緩存服務(wù)器采用轉(zhuǎn)發(fā)區(qū)(forward zone)是比較好的方式,將指定區(qū)域的查詢請求轉(zhuǎn)發(fā)到該區(qū)域的權(quán)威服務(wù)器上,權(quán)威服務(wù)器只負(fù)責(zé)查詢所在區(qū)域的查詢,而不必去管非本區(qū)域的查詢。
點(diǎn)擊“DNS Zones”,在Name填寫框中填寫“cs.”,Type選擇“Forward”,點(diǎn)擊后面的“Add”按鈕。下面“Configured DNS Zones”框中增加“cs.”域,但與主域名服務(wù)器不同的是,其類型為“Forward”。
可以看到,配置文件named.conf中增加了
跟實(shí)際應(yīng)用最緊密的是前兩個(gè),其中第一個(gè)指向根的區(qū)域選擇器最為重要。
(三)指向根域
BIND是互聯(lián)網(wǎng)上的域名系統(tǒng)服務(wù)軟件,對于根的指向默認(rèn)指向的是世界互聯(lián)網(wǎng)上的 13 個(gè)根域名服務(wù)器。對于我們內(nèi)網(wǎng)來講,尤其是對使用我們內(nèi)網(wǎng)域名系統(tǒng)來講,必須要重新配置。
相對來講,根域往往是固定的,不需要經(jīng)常修改,所以在Yast-DNS-Server中沒有提供配置接口,只能通過BIND配置文件來進(jìn)行修改。
在BIND配置文件named.conf中定義了根的區(qū)域選擇器:
可以看到,定義根的指向是“root.hint”。文件“root.hint”里面默認(rèn)定義了從a.root-server.net、b.root-server.net到m.root-server.net的13個(gè)互聯(lián)網(wǎng)根服務(wù)器。在內(nèi)網(wǎng)域名系統(tǒng)里面,需要把它修改為內(nèi)網(wǎng)的根服務(wù)器:
(四)日志設(shè)置
YaST-DNS-Server提供了日志管理,同在左側(cè)菜單欄“Logging”。默認(rèn)“Log Type”是選擇“System Log”,既是記錄在系統(tǒng)日志“messages”中,其路徑為“/var/log/messages”。“messages”主要記錄啟動(dòng)、關(guān)閉的日志記錄和一些嚴(yán)重錯(cuò)誤,如果把DNS-Server的日志也記錄在這個(gè)文件里,存在的弊端就是DNS的日志和系統(tǒng)日志混在一起,而且DNS查詢請求往往比較多,日志條目會非常多,不利于日志分析,所以應(yīng)設(shè)置專門的DNS日志。
我們選擇“File”選項(xiàng), “Filename”填寫文件名及路徑 “var/lib/named/log/query.log”,“Maximum Size”為單個(gè)日志文件最大體積,“Maximum Version”為文件數(shù)量。由于DNS請求較多,把“Maximum Size”設(shè)定為100MB,把“Maximum Version”設(shè)定為“5”,則會建立query.log.0至query.log.4等5個(gè)文件,而當(dāng)前正在記錄的文件為query.log。這些文件會根據(jù)生成時(shí)間自動(dòng)更替保證為記錄最新的日志。
可以將右側(cè)框“Additional Logging”內(nèi)的三個(gè)選項(xiàng)“Log All DNS Queries”、“Log Zone Updates”、“Log Zone Transfers”選上,將三類日志記錄在日志文件中。
四、總結(jié)
BIND9作為比較流行的DNS服務(wù)器,提供了功能良好的底層應(yīng)用,但其配置等需要對相關(guān)配置文件進(jìn)行修改,而YaST提供了直觀明了的圖形界面,能方便對部分常用的配置進(jìn)行增、刪、改,尤其是涉及到增加、修改、刪除域及其記錄時(shí)。YaST和BIND是兼顧性能與方便操作的組合。本文研究了基于OpenSUSE15 Linux和BIND9的DNS Server配置,詳細(xì)描述了配置的過程,對相關(guān)的關(guān)鍵選項(xiàng)或是參數(shù)的配置重點(diǎn)進(jìn)行了分析,希望能為DNS 服務(wù)器的配置維護(hù)提供參考。
參考文獻(xiàn):
[1]周增國,龐有軍.Linux平臺校園網(wǎng)DNS服務(wù)的設(shè)計(jì)與實(shí)現(xiàn).《大連大學(xué)學(xué)報(bào)》,2008年03期.
[2]秦寶龍,淑琴.利用BIND9為內(nèi)外網(wǎng)用戶提供域名解析服務(wù).內(nèi)蒙古電大學(xué)刊, 2012年03期.