由于CERNET和CHINANET之間的帶寬瓶頸等問題,很多高校都采用同時(shí)接入教育網(wǎng)(CERNET)和電信網(wǎng)(CHINANET)的雙出口方案,以提高校園網(wǎng)對(duì)公網(wǎng)的訪問速度和降低網(wǎng)絡(luò)使用費(fèi)用。
西北農(nóng)林科技大學(xué)校園網(wǎng)采用的也是雙出口方案,其中一條鏈路接CERNET,帶寬8M,而另一條接電信網(wǎng),帶寬100M。通過采用雙出口,校園網(wǎng)訪問公網(wǎng)速度慢的問題的確得到了解決,但反過來公網(wǎng)訪問校園網(wǎng)慢的問題卻更加突出了。正常情況下校園網(wǎng)服務(wù)器使用的是教育網(wǎng)的域名和IP地址,所有對(duì)校園網(wǎng)服務(wù)器的訪問都要走CERNET鏈路,因此,盡管校園網(wǎng)擁有高速的CHINANET鏈路,但公網(wǎng)用戶卻只能通過有著帶寬瓶頸的教育鏈路才能訪問到校園網(wǎng)的資源,這無疑是對(duì)CHINANET出口鏈路的嚴(yán)重浪費(fèi)。如果再增加一套域名和服務(wù)器是能夠解決這個(gè)問題的,但這會(huì)增加額外的經(jīng)費(fèi)支出,同時(shí)校園網(wǎng)的域名也變得不再統(tǒng)一。
本文以西北農(nóng)林科技大學(xué)校園網(wǎng)為應(yīng)用背景,探討一種在不增加域名和服務(wù)器的情況下解決以上問題的方法。
基于策略的域名解析
DNS(Domain Name System)的功能是實(shí)現(xiàn)主機(jī)域名和主機(jī)IP地址之間的相互轉(zhuǎn)換。當(dāng)用戶在應(yīng)用程序中輸入主機(jī)域名時(shí),DNS服務(wù)器可以將此名稱解析為與之對(duì)應(yīng)的IP地址。這種DNS上的域名解析一般是靜態(tài)的,即域名與IP地址是一一對(duì)應(yīng)的。
隨著網(wǎng)絡(luò)的發(fā)展以及新的應(yīng)用的不斷出現(xiàn),靜態(tài)DNS已經(jīng)不能滿足我們的需要了,因此,產(chǎn)生了域名的動(dòng)態(tài)解析技術(shù)。讓我們先來看看DNS服務(wù)器中兩種貌似策略域名解析的域名解析方式。
首先是多個(gè)域名對(duì)應(yīng)一個(gè)IP地址:這種情況一般用于實(shí)現(xiàn)虛擬主機(jī)。只用一個(gè)IP地址就可以實(shí)現(xiàn)多個(gè)擁有不同域名的站點(diǎn),這對(duì)那種IP地址資源短缺但又想擁有多個(gè)站點(diǎn)的情形非常有用。
其次是一個(gè)域名對(duì)應(yīng)多個(gè)IP地址:在域名服務(wù)的配置里有一種實(shí)現(xiàn)服務(wù)器負(fù)載均衡的方法,DNS配置文件中一般會(huì)有類似下面的內(nèi)容:
www.youdomain.edu.cn IN A 210.27.80.4
www.youdomain.edu.cn IN A 210.27.80.5
……
www.youdomain.edu.cn IN A 210.27.80.N
這種方法適用多臺(tái)內(nèi)容相同的服務(wù)器分流。在這種查詢方式中,DNS服務(wù)器是以輪循的方式回應(yīng)請(qǐng)求的,即對(duì)第一個(gè)請(qǐng)求回應(yīng)的是地址210.27.80.4,下一個(gè)請(qǐng)求回應(yīng)地址就是210.27.80.5,依此類推。
盡管上面兩種方式可以將一個(gè)域名解析成幾個(gè)不同的IP地址,或?qū)⒍鄠€(gè)不同的域名解析成一個(gè)IP地址,但它們?nèi)匀徊荒芩阕鞑呗杂蛎馕觥_@是因?yàn)椋呗杂蛎馕雠c上面的兩種方式相比要智能得多,它是基于策略的,DNS服務(wù)器可以根據(jù)客戶端所在網(wǎng)絡(luò)的不同,返回不同的解析結(jié)果;或者是DNS服務(wù)器根據(jù)客戶端所在網(wǎng)絡(luò)的不同,應(yīng)用不同的安全策略,比如對(duì)內(nèi)網(wǎng)用戶提供遞歸解析服務(wù)的同時(shí)忽略外網(wǎng)用戶的遞歸解析請(qǐng)求。
策略域名解析的實(shí)現(xiàn)
相關(guān)配置:以WWW服務(wù)器為例,域名為www.nwsuaf.edu.cn,配有兩塊網(wǎng)卡,一塊網(wǎng)卡配置教育網(wǎng)IP地址(210.27.80.4),另外一塊配置電信網(wǎng)IP地址(61.150.47.6)。
實(shí)現(xiàn)目標(biāo):來自教育網(wǎng)對(duì)www.nwsuaf.edu.cn的域名解析請(qǐng)求,DNS服務(wù)器返回210.27.80.4,而來自其他網(wǎng)絡(luò)的域名解析請(qǐng)求,就返回61.150.47.6。這樣,非教育網(wǎng)的用戶就可以直接通過電信的高速鏈路對(duì)校園網(wǎng)WWW服務(wù)器進(jìn)行訪問。
1.DNS服務(wù)器的配置
Unix/Linux下的DNS服務(wù)軟件始終是以Berkeley的BIND(Berkeley Internet Name Domain)程序?yàn)橹髁鳌IND 8或者以前的版本無法實(shí)現(xiàn)策略域名解析,但從BIND 9開始出現(xiàn)了View語句,可以很好地解決這個(gè)問題。
下面為/etc/named.conf文件的主要內(nèi)容:
acl edu-nets { 210.27.0.0/16;202.117.0.0/16;… };//所有教育網(wǎng)的網(wǎng)段列表
options{ directory “/var/named” #數(shù)據(jù)文件存放路徑
pid-file “/var/named/named.pid”;
};
view “CerNet”{ #定義名為CerNet的view
match-clients {edu-nets;};
recursion yes;#遞歸解析
zone “.” {type hint;file “named.ca”;};
zone “0.0.127.IN-ADDR.ARPA” {type master; file “127.0.0”;};
zone “nwsuaf.edu.cn” {type master;file “nwsuaf.edu.cn.cernet”}; #教育網(wǎng)的解析文件
zone “80.27.210.in-addr.arpa” {type master;file “210.27.80”;};#反向解析文件
};
view “ChinaNet “{ #定義名為ChinaNet的view
match-clients {any;};#除了教育網(wǎng)以外的所有網(wǎng)絡(luò)
recursion no;#關(guān)閉遞歸解析
zone “.” {type hint; file “named.ca”};
zone “0.0.127.IN-ADDR.ARPA” {type master;file “127.0.0”;};
zone “nwsuaf.edu.cn” {type master;file “nwsuaf.edu.cn.public”;};#公網(wǎng)的解析文件
zone “47.150.61.in-addr.arpa” { type master; file “61.150.47”;};#反向解析文件
};
然后設(shè)置/etc/named下的nwsuaf.edu.cn.cernet和nwsuaf.edu.cn.public:
在nwsuaf.edu.cn.cernet文件中加上一條記錄:
www.youdomain.edu.cn IN A 210.27.80.4
在nwsuaf.edu.cn.public文件中加上一條記錄:
www.youdomain.edu.cn IN A 61.150.47.6
經(jīng)過這樣的配置之后,策略域名就可以正常工作了。其中教育網(wǎng)的網(wǎng)段列表可以從教育科研網(wǎng)(http://www.edu.cn/)獲取。
2.WWW服務(wù)器的配置
最后,為了配合DNS服務(wù)器中所做的設(shè)置,還需要對(duì)WWW服務(wù)器的雙網(wǎng)卡進(jìn)行設(shè)置:
(1)配置兩塊網(wǎng)卡
第一塊(eth0):IP地址210.27.80.4,掩碼255.255.255.0,網(wǎng)關(guān)210.27.80.1。
第二塊(eth1):IP地址61.150.47.6,掩碼255.255.255.224,網(wǎng)關(guān)61.150.47.30。
(2)增加路由
route add -net 210.27.112.0 netmask 255.255.248.0 dev eth0 //到教育網(wǎng)的路由
route add -net 202.117.176.0 netmask 255.255.240.0 dev eth0 //到教育網(wǎng)的路由
……
route add default gw 61.150.47.30 dev eth1 //到電信網(wǎng)的默認(rèn)路由
最好將上述命令寫入/etc/rc.d/rc.local腳本,這樣系統(tǒng)啟動(dòng)時(shí)就會(huì)加載這些路由信息。通過以上配置,WWW服務(wù)器就可以正常工作了,公網(wǎng)用戶就可以通過校園網(wǎng)的電信高速鏈路訪問WWW服務(wù)器了。
如果條件允許,也可以配置兩臺(tái)服務(wù)器,每個(gè)網(wǎng)段放置一臺(tái),效果會(huì)更好。但是如果該服務(wù)器的訪問量很小的話就比較浪費(fèi)資源,所以在訪問量不是很大的情況下,用一臺(tái)服務(wù)器加雙網(wǎng)卡不失為一個(gè)好的方案。
總結(jié)
本文在RedHat Linux操作系統(tǒng)下,用BIND 9.3.1實(shí)現(xiàn)了域名的動(dòng)態(tài)解析,解決了公網(wǎng)訪問校園網(wǎng)速度慢這個(gè)一直困擾我們的問題。盡管本文只是動(dòng)態(tài)域名解析技術(shù)在雙出口校園網(wǎng)中的一個(gè)簡(jiǎn)單應(yīng)用,卻已經(jīng)讓我們充分領(lǐng)略到BIND 9.0新版本的功能之強(qiáng)大。在規(guī)模更大,結(jié)構(gòu)更復(fù)雜的網(wǎng)絡(luò)中,應(yīng)該能夠發(fā)揮更大的作用。