孫偉平 張 延
(1.鄭州大學(xué)西亞斯國際學(xué)院 河南 鄭州 451150;2.鄭州城市職業(yè)學(xué)院 河南 鄭州 452370)
目前高校的網(wǎng)絡(luò)接入一般都是雙線接入,作為高等院校來說教育網(wǎng)是必須接入的,另外一條根據(jù)實(shí)際情況可以選擇聯(lián)通或電信。學(xué)校內(nèi)部放置了一些提供對外服務(wù)的網(wǎng)站,如果把這些網(wǎng)站放置在教育網(wǎng)線路上那么對于教育網(wǎng)用戶來說訪問速度比較快,而對于其它用戶來說訪問較慢,如果把網(wǎng)站放置到非教育網(wǎng)線路上那么教育網(wǎng)用戶訪問又會感覺慢,最好的方法就是教育網(wǎng)用戶訪問走教育網(wǎng)線路,非教育網(wǎng)用戶訪問走另外一條線路。利用智能DNS和反向代理可以很好的解決網(wǎng)站雙線訪問的難題。
1.1 可以用BGP協(xié)議實(shí)現(xiàn)單IP的雙線訪問,也就是服務(wù)器上只配制一個IP地址就可以實(shí)現(xiàn)網(wǎng)站的雙線訪問。這種辦法固然不錯,但實(shí)現(xiàn)起來成本高,且比較麻煩。因?yàn)槭紫刃枰徺I一臺價格昂貴的BGP路由器,另外還需要CNNIC(中國互聯(lián)網(wǎng)信息中心)申請專用的IP段和和AS號(自治系統(tǒng)號),所以對于普通高校來說這種方法顯然不合適。
1.2 就是在一臺服務(wù)器上安裝雙網(wǎng)卡,每個網(wǎng)卡配置一個IP地址,然后在服務(wù)器上做策略路由。這種方法依懶于智能DNS的解析,例如教育網(wǎng)用戶訪問網(wǎng)站時DNS服務(wù)器解析出教育網(wǎng)的IP,聯(lián)通用戶訪問網(wǎng)站時DNS服務(wù)器解析出聯(lián)通IP地址,這其實(shí)在一種理想的狀態(tài)下是沒問題的。智能DNS判斷用戶是教育網(wǎng)用戶和聯(lián)通用戶取決于用戶電腦所配置的DNS地址。如果教育網(wǎng)用戶的電腦配置的是聯(lián)通的DNS地址那么在通過智能DNS解析時解析出來的就是聯(lián)通線路的IP地址。這個時候在訪問網(wǎng)站時就出現(xiàn)問題了,教育網(wǎng)用戶會通過聯(lián)通的IP去訪問網(wǎng)站,當(dāng)服務(wù)器收到請求后在返回?cái)?shù)據(jù)包時會通過策略路由判斷出目的IP是教育網(wǎng)IP,這時候數(shù)據(jù)包就從教育網(wǎng)線路出去了,我們會發(fā)現(xiàn)數(shù)據(jù)包進(jìn)來和出去不是走的同一條線路,這個時候網(wǎng)站就無法訪問。所以說一個服務(wù)器上通過雙網(wǎng)卡配置兩個IP來實(shí)現(xiàn)網(wǎng)站雙線訪問是很不穩(wěn)定的。
1.3 通過我們的綜合比較和測試找出了一種比較完美的解決方案。例如我校網(wǎng)絡(luò)是教育網(wǎng)和聯(lián)通雙線接入,為了充分發(fā)揮網(wǎng)站的訪問速度,使不同的訪問用戶走不同的線路,我們可以利用智能DNS+反向代理來實(shí)現(xiàn),我們先來了解一下什么是反向代理。反向代理(Reverse Proxy)方式是指以代理服務(wù)器來接受internet上的連接請求,然后將請求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的Web服務(wù)器,并將從Web服務(wù)器上得到的結(jié)果返回給internet上請求連接的客戶端,此時代理服務(wù)器對外就表現(xiàn)為一臺Web服務(wù)器。常用的反向代理服務(wù)器軟件有squid和 nginx。
如上圖,我們通過BIND來實(shí)現(xiàn)DNS的智能解析,教育網(wǎng)用戶訪問網(wǎng)站時解析出教育網(wǎng)IP,其它用戶訪問網(wǎng)站時解析出聯(lián)通的IP地址,其實(shí)實(shí)現(xiàn)智能DNS我們可以購買商用智能DNS解析服務(wù)器,但是價格比較昂貴,我們完全可以用LINUX系統(tǒng)下免費(fèi)的BIND來實(shí)現(xiàn)DNS的智能解析,BIND是linux系統(tǒng)下一款開源的DNS軟件,很多大公司都在使用非常穩(wěn)定,完全可以取代商業(yè)化的DNS設(shè)備。
我們在教育網(wǎng)線路下放置一臺WEB服務(wù)器,使教育網(wǎng)用戶可能直接訪問。在聯(lián)通線路上放置的是一臺反向代理+WEB緩存服務(wù)器,非教育網(wǎng)用戶訪問網(wǎng)站時通過反向代理服務(wù)器進(jìn)行訪問,我們之所以不在聯(lián)通線路下放置一臺和教育網(wǎng)線路下一模一樣的服務(wù)器是因?yàn)檫@樣不僅可以避免兩臺服務(wù)器在文件更新時數(shù)據(jù)同步的麻煩也避免了解決在不同服務(wù)器之間session共享的麻煩,在反向代理服務(wù)器上開啟緩存功能還可以大大提高網(wǎng)站的訪問速度。
2.1 智能 DNS配置
2.2 配制反向代理服務(wù)器,這里使用squid
1)squid.conf配置文件內(nèi)容
#設(shè)置代理服務(wù)器名稱
2)配置/etc/hosts文件,內(nèi)容如下
高等學(xué)校網(wǎng)站是學(xué)校對外進(jìn)行宣傳的一個平臺,其訪問速度非常重要,通過智能DNS+反向代理好可以很好的解決高校網(wǎng)站雙線訪問的問題,不僅分擔(dān)了鏈路的流量也提高了網(wǎng)站的訪問速度,為宣傳學(xué)校構(gòu)建信息化校園起到了關(guān)鍵作用。
[1]Paul Albitz&Cricket Liu.DNS and Bind,Third Edition[M].雷迎春,陳世林,楊傳軍,譯.中國電力出版社,2000.
[2]林天峰,等,編著.Linux服務(wù)器架設(shè)指南[M].清華大學(xué)出版社,2010.