沈達峰
(淮陰工學院現(xiàn)代教育技術(shù)中心,江蘇淮安223003)
DNS是Internet基石之一,幾乎所有的Internet的應(yīng)用都要使用DNS。校園網(wǎng)是Internet中重要的一環(huán),而DNS是其不可缺少的組成部分。校園網(wǎng)必然要提供很多的對外服務(wù),因此校園的DNS既要為網(wǎng)絡(luò)內(nèi)部客戶機提供解析服務(wù),也將為外網(wǎng)提供解析服務(wù),而外網(wǎng)的客戶機可能位于世界的各個地方。以國內(nèi)網(wǎng)絡(luò)來說,來訪的可能是電信、網(wǎng)通的用戶。由于國內(nèi)網(wǎng)絡(luò)的特殊狀況,中國教育科研網(wǎng)(CERNET)、中國電信(CHINANET)、中國網(wǎng)通(CNC)等幾大ISP之間存在嚴重的網(wǎng)絡(luò)瓶頸。網(wǎng)絡(luò)繁忙時將導致某些客戶網(wǎng)絡(luò)的DNS服務(wù)器不能與校園網(wǎng)DNS服務(wù)器之間進行通信,使用戶無法訪問校園網(wǎng)資源。目前,大部分高校為提高校園網(wǎng)的效率,都采用了同時接入CERNET、CHINANET和CNC的多出口解決方案。多出口方案的實施,為提高校園網(wǎng)和其他網(wǎng)絡(luò)的互訪速度提供了物理基礎(chǔ),而如何可靠、有效地實現(xiàn)校園網(wǎng)和其他網(wǎng)絡(luò)的高速互訪,需要在多個方面進行綜合考慮,有多種方案可以實施。本文以某校園網(wǎng)為模型,就多出口網(wǎng)絡(luò)如何合理部署DNS進行分析研究。
Internet域名服務(wù)系統(tǒng)(DNS)是一種分布式的等級制查詢服務(wù),用以在域名和互聯(lián)網(wǎng)協(xié)議(IP)地址間進行翻譯轉(zhuǎn)換。Internet上的所有數(shù)據(jù)包和路由都有IP地址,因此,DNS起到IP層與應(yīng)用層間的橋梁作用。
DNS的域分為不同等級。一般說來,頂級域包括 com、net、org的通用頂級域(gTLDs)和 cn、us等的國家頂級域(ccTLDs)。DNS的根服務(wù)器在頂級域之上,存儲DNS體系中最高層次的zone file,提供各通用頂級域和國家頂級域的記錄信息。
域名解析的工作原理和根服務(wù)器的工作步驟如下:
第1步,客戶機提出域名解析請求,并將該請求發(fā)送給本地的域名服務(wù)器(遞歸服務(wù)器);
第2步,當本地的域名服務(wù)器收到請求后,就先查詢本地的緩存,如果有該記錄項,則本地的域名服務(wù)器就直接把查詢的結(jié)果返回;
第3步,如果本地的緩存中沒有該記錄,則本地域名服務(wù)器就把請求發(fā)送給根域名服務(wù)器,然后根域名服務(wù)器再返回給本地域名服務(wù)器一個所查詢域(根的子域,如CN)的頂級域名服務(wù)器的地址;
第4步,本地服務(wù)器再向查詢返回的域名服務(wù)器(權(quán)威服務(wù)器)發(fā)送請求,收到該請求的服務(wù)器查詢其數(shù)據(jù)庫,并返回與此請求所對應(yīng)的資源記錄(下級域名服務(wù)器的地址或者域名所對應(yīng)的IP地址等);
第5步,重復第4步,直到找到正確的記錄;
第6步,本地域名服務(wù)器把返回的結(jié)果保存到緩存,以備下一次使用,同時還將結(jié)果返回給客戶機。
策略域名可以根據(jù)不同IP的請求將同一個域名解析為不同的IP地址或采用不同的安全策略(比如對內(nèi)網(wǎng)用戶提供遞歸解析服務(wù)的同時忽略外網(wǎng)用戶的遞歸解析請求)。換言之,對于CERNET ISP的接入用戶和CHINANET ISP的接入用戶,企業(yè)的相同域名最后對應(yīng)的IP地址是不同的。因此,在用戶訪問企業(yè)電子商務(wù)網(wǎng)站時,由企業(yè)的DNS服務(wù)器根據(jù)用戶接入的ISP而解析出對應(yīng)該ISP的地址,讓用戶能高速訪問到自己的網(wǎng)站,不再需要用戶去了解自己接入的ISP,再去選擇企業(yè)對應(yīng)的域名。
根據(jù)DNS協(xié)議,每個域的權(quán)威服務(wù)器可以有多個,遞歸服務(wù)器以一定的遍歷順序訪問這些權(quán)威服務(wù)器,如果訪問第一個服務(wù)器失敗,則順序訪問第二個,直到訪問成功為止。
國內(nèi)校園網(wǎng)一般都是首先接入中國教育科研網(wǎng)CERNET,再根據(jù)需要逐步接入中國電信(CERNET)、中國網(wǎng)通(CNCNET)等。鑒于此,很多學校的DNS部署都采用了類似圖1所示的拓撲方案:主、輔DNS服務(wù)器部署于連接CERNET的防火墻之 DMZ區(qū)中,使用 CERNET的地址 xxx.xxx.xxx.x1 和 xxx.xxx.xxx.x2,并使用策略域名技術(shù)。這種方案在一定程度上提高了網(wǎng)絡(luò)性能,但仍然存在兩個方面的問題。

圖1 mdu.edu.cn校園網(wǎng)模型核心拓撲一
(1)使用學校DNS的校內(nèi)用戶是否能正常訪問互聯(lián)網(wǎng)依賴于教科研網(wǎng)是否能正常訪問,如果教科研網(wǎng)無法訪問,則會因?qū)W校DNS服務(wù)器無法訪問根域名服務(wù)器而無法給用戶的計算機反饋相應(yīng)的解析結(jié)果,從而使用戶無法正常訪問互聯(lián)網(wǎng)。
(2)學校部署于各個防火墻DMZ中的服務(wù)器能否正常提供服務(wù)同樣依賴于教科研網(wǎng)是否暢通。如果網(wǎng)絡(luò)不通或擁堵時間太長,也會使外面要訪問學校服務(wù)器的用戶因其DNS服務(wù)器與學校的DNS之間無法通信或延時太大而無法獲得相應(yīng)服務(wù)的IP地址,從而無法訪問校園網(wǎng)。
針對傳統(tǒng)部署方案中存在的問題,按圖2布置DNS,每個連接不同ISP防火墻的DMZ中都有使用相應(yīng)ISP地址的DNS服務(wù)器。這種部署方案解決了上述問題,極大地提高了網(wǎng)絡(luò)運行的可靠性。

圖2 mdu.edu.cn校園網(wǎng)核心拓撲模型二
DNS服務(wù)器間的數(shù)據(jù)同步是在網(wǎng)絡(luò)中部署DNS的一個重要方面,如果沒有同步機制,極有可能造成部分DNS服務(wù)器的數(shù)據(jù)得不到及時更新或數(shù)據(jù)錯誤,給用戶造成無法訪問校園網(wǎng)的后果。
目前常使用BIND(Berkeley Internet Name Domain)來部署DNS,用BIND提供的VIEW功能實現(xiàn)策略域名解析。TRANSFER-SOURCE同步是基于使用文本文件存數(shù)的BIND系統(tǒng)中同步主從服務(wù)器間數(shù)據(jù)的一種方法。
3.1.1 同步過程
BIND使用TRANSFER-SOURCE進行同步的步驟如下:
第1步,主服務(wù)器向從服務(wù)器發(fā)送notify消息;
第2步,從服務(wù)器收到主服務(wù)器發(fā)送notify消息,向主服務(wù)器返回一個notifyresponse消息;
第3步,從服務(wù)器向主服務(wù)器發(fā)送SOAquery消息;
第4步,主服務(wù)器向從服務(wù)器返回 SOAre-sponse消息;
第5步,從服務(wù)器收到SOAresponse消息后,比對自身的Serial值,如果發(fā)現(xiàn)主服務(wù)器的Serial值大于自身的Serial值,那么就發(fā)送Zonetransferrequest消息;
第6步,主服務(wù)器返回Zonetransferresponse消息;
第7步,主服務(wù)器執(zhí)行Zonetransfer。
3.1.2 實現(xiàn)方法
對于部署多VIEW策略域名系統(tǒng),順利實現(xiàn)同步的核心是“從服務(wù)器需要設(shè)置和VIEW一一對應(yīng)的IP地址”。
針對圖2所示的mdu.edu.cn拓撲模型,部署有4個VIEW:Internal(校內(nèi)用戶)、Cernet(教科研網(wǎng)用戶)、Cncnet(中國網(wǎng)通用戶)和Othernet(其余用戶),考慮數(shù)據(jù)同步的及時性和可靠性,用服務(wù)器第二塊網(wǎng)卡組成一個同步網(wǎng)絡(luò),按表1部署IP地址。

表1 DNS服務(wù)器IP地址表


3.2.1 DLZ
DLZ (Dynamically Loadable Zones)對于早期BIND9來說是一個補丁程序,為BIND提供基于數(shù)據(jù)庫的數(shù)據(jù)支持,支持PostgreSQL、MySQL等多種類型的數(shù)據(jù)庫,具有實時性強、方便管理的特點,新版BIND已包含有DLZ功能。
3.2.2 BIND -DLZ 部署
BIND是基于Linux/UN*X平臺的域名系統(tǒng)軟件。Linux/UN*X平臺有很多種,這里使用Solaris 10,它用 SMF(Service Management Facility)來管理服務(wù),非常方便。針對圖2所示的網(wǎng)絡(luò)模型,IP地址部署情況如表2所示。

表2 DNS服務(wù)器IP地址表DNS
(1)基礎(chǔ)軟件部署
使用BIND-DLZ部署系統(tǒng)域名,軟件列表見表3。
phpMyAdmin是一套用來管理MySQL-server以及單一數(shù)據(jù)庫的PHP程序,借助于它可以不必去記冗長而繁瑣的Mysql命令,這對于搭建平臺、管理DNS數(shù)據(jù)記錄非常方便。

表3 軟件列表
(2)同步部署
1)使用phpMyAdmin在三臺服務(wù)器上建立數(shù)據(jù)庫dns,并在其中建立mdu表,其結(jié)構(gòu)見表4。

表4 mdu表結(jié)構(gòu)
2)在主服務(wù)器10.20.20.1的數(shù)據(jù)庫中添加權(quán)限,見表5。

表5 權(quán)限設(shè)置
3)配置同步
DNS:
編輯 mf.cnf,在[mysqld]部分添加:
binlog-do-db=dns//要同步的數(shù)據(jù)庫
binlog_ignore_db=mysql,information_schema//不同步的數(shù)據(jù)庫
DNS1:
編輯 mf.cnf,在[mysqld]部分添加:
master- host=10.20.20.1
master-user=rep1
master-password=123456789
master-port=3306
replicate-do-db=dns
log-warnings
master-connect-retry=60
將server-id=1改為server-id=2
DNS2:略。
(3)BIND部署
1)安裝支持DLZ的BIND;
2)配置BIND;
3)配置SMF。
BIND與MYSQL有依賴關(guān)系,編輯bind.xml:
……
<dependency
name= 'mysql'
grouping= 'require_all'
restart_on= 'refresh'
type= 'service'
<service_fmri value='svc:/application/database/mysql'/>
</dependency>
……
配置同步可以保證BIND不會因MYSQL啟動時間比較長等原因而無法進入正常狀態(tài)。
針對多出口網(wǎng)絡(luò)如何合理部署DNS服務(wù)器在拓撲和數(shù)據(jù)同步兩個方面提出了解決方法,并在具體網(wǎng)絡(luò)或虛擬平臺上得到完全實現(xiàn)。實驗結(jié)果表明,根據(jù)本文提出的方案部署DNS服務(wù)器,顯著提高了多出口網(wǎng)絡(luò)中域名服務(wù)器的響應(yīng)速度,改善了域名數(shù)據(jù)更新的實時性,提升了網(wǎng)絡(luò)的綜合性能。基于TRANSFER-SOURCE方式同步實現(xiàn)較簡單,性能較強,但數(shù)據(jù)維護難度稍大;基于數(shù)據(jù)庫方式的同步調(diào)試過程稍顯繁瑣,但維護方便。
[1]黃勇萍.根據(jù)客戶網(wǎng)絡(luò)應(yīng)答的DNS服務(wù)器設(shè)計與實現(xiàn)[J].微計算機應(yīng)用,2012,20(1):16 -19.
[2]王偉,李曉東,孫國念.域名鏡像服務(wù)器部署分析[J].計算機工程與應(yīng)用,2008,44(7):161 -163.
[3]雷明彬.策略DNS在多出口電子商務(wù)網(wǎng)站中的應(yīng)用[J].商場現(xiàn)代化,2008,545:132.
[4]徐陽,劉慶松.兩種方法實現(xiàn)DNS主從服務(wù)器數(shù)據(jù)同步[J].中國教育網(wǎng)絡(luò),2009(8):76-77.
[5]白興瑞.基于SUN Solaris 10的域名服務(wù)器配置[J].現(xiàn)代計算機,2008,283:98 -99.
[6]李文正.基于智能DNS的網(wǎng)絡(luò)負載均衡的研究[J].北京工商大學學報:自然科學版,2008,26(3):57-60.
[7]于群英,楊文榮.數(shù)據(jù)分析與DNS服務(wù)器維護策略[J].計算機技術(shù)與發(fā)展,2008,18(6):210 -213.
[8]池水明.互聯(lián)網(wǎng)站點實現(xiàn)來自不同ISP用戶的快速訪問—智能DNS解決方案[J].電子工程師,2008,34(5):25-28.