沈達峰
(淮陰工學院現代教育技術中心,江蘇淮安223003)
DNS是Internet基石之一,幾乎所有的Internet的應用都要使用DNS。校園網是Internet中重要的一環(huán),而DNS是其不可缺少的組成部分。校園網必然要提供很多的對外服務,因此校園的DNS既要為網絡內部客戶機提供解析服務,也將為外網提供解析服務,而外網的客戶機可能位于世界的各個地方。以國內網絡來說,來訪的可能是電信、網通的用戶。由于國內網絡的特殊狀況,中國教育科研網(CERNET)、中國電信(CHINANET)、中國網通(CNC)等幾大ISP之間存在嚴重的網絡瓶頸。網絡繁忙時將導致某些客戶網絡的DNS服務器不能與校園網DNS服務器之間進行通信,使用戶無法訪問校園網資源。目前,大部分高校為提高校園網的效率,都采用了同時接入CERNET、CHINANET和CNC的多出口解決方案。多出口方案的實施,為提高校園網和其他網絡的互訪速度提供了物理基礎,而如何可靠、有效地實現校園網和其他網絡的高速互訪,需要在多個方面進行綜合考慮,有多種方案可以實施。本文以某校園網為模型,就多出口網絡如何合理部署DNS進行分析研究。
Internet域名服務系統(tǒng)(DNS)是一種分布式的等級制查詢服務,用以在域名和互聯網協議(IP)地址間進行翻譯轉換。Internet上的所有數據包和路由都有IP地址,因此,DNS起到IP層與應用層間的橋梁作用。
DNS的域分為不同等級。一般說來,頂級域包括 com、net、org的通用頂級域(gTLDs)和 cn、us等的國家頂級域(ccTLDs)。DNS的根服務器在頂級域之上,存儲DNS體系中最高層次的zone file,提供各通用頂級域和國家頂級域的記錄信息。
域名解析的工作原理和根服務器的工作步驟如下:
第1步,客戶機提出域名解析請求,并將該請求發(fā)送給本地的域名服務器(遞歸服務器);
第2步,當本地的域名服務器收到請求后,就先查詢本地的緩存,如果有該記錄項,則本地的域名服務器就直接把查詢的結果返回;
第3步,如果本地的緩存中沒有該記錄,則本地域名服務器就把請求發(fā)送給根域名服務器,然后根域名服務器再返回給本地域名服務器一個所查詢域(根的子域,如CN)的頂級域名服務器的地址;
第4步,本地服務器再向查詢返回的域名服務器(權威服務器)發(fā)送請求,收到該請求的服務器查詢其數據庫,并返回與此請求所對應的資源記錄(下級域名服務器的地址或者域名所對應的IP地址等);
第5步,重復第4步,直到找到正確的記錄;
第6步,本地域名服務器把返回的結果保存到緩存,以備下一次使用,同時還將結果返回給客戶機。
策略域名可以根據不同IP的請求將同一個域名解析為不同的IP地址或采用不同的安全策略(比如對內網用戶提供遞歸解析服務的同時忽略外網用戶的遞歸解析請求)。換言之,對于CERNET ISP的接入用戶和CHINANET ISP的接入用戶,企業(yè)的相同域名最后對應的IP地址是不同的。因此,在用戶訪問企業(yè)電子商務網站時,由企業(yè)的DNS服務器根據用戶接入的ISP而解析出對應該ISP的地址,讓用戶能高速訪問到自己的網站,不再需要用戶去了解自己接入的ISP,再去選擇企業(yè)對應的域名。
根據DNS協議,每個域的權威服務器可以有多個,遞歸服務器以一定的遍歷順序訪問這些權威服務器,如果訪問第一個服務器失敗,則順序訪問第二個,直到訪問成功為止。
國內校園網一般都是首先接入中國教育科研網CERNET,再根據需要逐步接入中國電信(CERNET)、中國網通(CNCNET)等。鑒于此,很多學校的DNS部署都采用了類似圖1所示的拓撲方案:主、輔DNS服務器部署于連接CERNET的防火墻之 DMZ區(qū)中,使用 CERNET的地址 xxx.xxx.xxx.x1 和 xxx.xxx.xxx.x2,并使用策略域名技術。這種方案在一定程度上提高了網絡性能,但仍然存在兩個方面的問題。
圖1 mdu.edu.cn校園網模型核心拓撲一
(1)使用學校DNS的校內用戶是否能正常訪問互聯網依賴于教科研網是否能正常訪問,如果教科研網無法訪問,則會因學校DNS服務器無法訪問根域名服務器而無法給用戶的計算機反饋相應的解析結果,從而使用戶無法正常訪問互聯網。
(2)學校部署于各個防火墻DMZ中的服務器能否正常提供服務同樣依賴于教科研網是否暢通。如果網絡不通或擁堵時間太長,也會使外面要訪問學校服務器的用戶因其DNS服務器與學校的DNS之間無法通信或延時太大而無法獲得相應服務的IP地址,從而無法訪問校園網。
針對傳統(tǒng)部署方案中存在的問題,按圖2布置DNS,每個連接不同ISP防火墻的DMZ中都有使用相應ISP地址的DNS服務器。這種部署方案解決了上述問題,極大地提高了網絡運行的可靠性。
圖2 mdu.edu.cn校園網核心拓撲模型二
DNS服務器間的數據同步是在網絡中部署DNS的一個重要方面,如果沒有同步機制,極有可能造成部分DNS服務器的數據得不到及時更新或數據錯誤,給用戶造成無法訪問校園網的后果。
目前常使用BIND(Berkeley Internet Name Domain)來部署DNS,用BIND提供的VIEW功能實現策略域名解析。TRANSFER-SOURCE同步是基于使用文本文件存數的BIND系統(tǒng)中同步主從服務器間數據的一種方法。
3.1.1 同步過程
BIND使用TRANSFER-SOURCE進行同步的步驟如下:
第1步,主服務器向從服務器發(fā)送notify消息;
第2步,從服務器收到主服務器發(fā)送notify消息,向主服務器返回一個notifyresponse消息;
第3步,從服務器向主服務器發(fā)送SOAquery消息;
第4步,主服務器向從服務器返回 SOAre-sponse消息;
第5步,從服務器收到SOAresponse消息后,比對自身的Serial值,如果發(fā)現主服務器的Serial值大于自身的Serial值,那么就發(fā)送Zonetransferrequest消息;
第6步,主服務器返回Zonetransferresponse消息;
第7步,主服務器執(zhí)行Zonetransfer。
3.1.2 實現方法
對于部署多VIEW策略域名系統(tǒng),順利實現同步的核心是“從服務器需要設置和VIEW一一對應的IP地址”。
針對圖2所示的mdu.edu.cn拓撲模型,部署有4個VIEW:Internal(校內用戶)、Cernet(教科研網用戶)、Cncnet(中國網通用戶)和Othernet(其余用戶),考慮數據同步的及時性和可靠性,用服務器第二塊網卡組成一個同步網絡,按表1部署IP地址。
表1 DNS服務器IP地址表
3.2.1 DLZ
DLZ (Dynamically Loadable Zones)對于早期BIND9來說是一個補丁程序,為BIND提供基于數據庫的數據支持,支持PostgreSQL、MySQL等多種類型的數據庫,具有實時性強、方便管理的特點,新版BIND已包含有DLZ功能。
3.2.2 BIND -DLZ 部署
BIND是基于Linux/UN*X平臺的域名系統(tǒng)軟件。Linux/UN*X平臺有很多種,這里使用Solaris 10,它用 SMF(Service Management Facility)來管理服務,非常方便。針對圖2所示的網絡模型,IP地址部署情況如表2所示。
表2 DNS服務器IP地址表DNS
(1)基礎軟件部署
使用BIND-DLZ部署系統(tǒng)域名,軟件列表見表3。
phpMyAdmin是一套用來管理MySQL-server以及單一數據庫的PHP程序,借助于它可以不必去記冗長而繁瑣的Mysql命令,這對于搭建平臺、管理DNS數據記錄非常方便。
表3 軟件列表
(2)同步部署
1)使用phpMyAdmin在三臺服務器上建立數據庫dns,并在其中建立mdu表,其結構見表4。
表4 mdu表結構
2)在主服務器10.20.20.1的數據庫中添加權限,見表5。
表5 權限設置
3)配置同步
DNS:
編輯 mf.cnf,在[mysqld]部分添加:
binlog-do-db=dns//要同步的數據庫
binlog_ignore_db=mysql,information_schema//不同步的數據庫
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有依賴關系,編輯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)。
針對多出口網絡如何合理部署DNS服務器在拓撲和數據同步兩個方面提出了解決方法,并在具體網絡或虛擬平臺上得到完全實現。實驗結果表明,根據本文提出的方案部署DNS服務器,顯著提高了多出口網絡中域名服務器的響應速度,改善了域名數據更新的實時性,提升了網絡的綜合性能?;赥RANSFER-SOURCE方式同步實現較簡單,性能較強,但數據維護難度稍大;基于數據庫方式的同步調試過程稍顯繁瑣,但維護方便。
[1]黃勇萍.根據客戶網絡應答的DNS服務器設計與實現[J].微計算機應用,2012,20(1):16 -19.
[2]王偉,李曉東,孫國念.域名鏡像服務器部署分析[J].計算機工程與應用,2008,44(7):161 -163.
[3]雷明彬.策略DNS在多出口電子商務網站中的應用[J].商場現代化,2008,545:132.
[4]徐陽,劉慶松.兩種方法實現DNS主從服務器數據同步[J].中國教育網絡,2009(8):76-77.
[5]白興瑞.基于SUN Solaris 10的域名服務器配置[J].現代計算機,2008,283:98 -99.
[6]李文正.基于智能DNS的網絡負載均衡的研究[J].北京工商大學學報:自然科學版,2008,26(3):57-60.
[7]于群英,楊文榮.數據分析與DNS服務器維護策略[J].計算機技術與發(fā)展,2008,18(6):210 -213.
[8]池水明.互聯網站點實現來自不同ISP用戶的快速訪問—智能DNS解決方案[J].電子工程師,2008,34(5):25-28.