鄒家寧,張治斌
(河南理工大學(xué)計算機科學(xué)與技術(shù)學(xué)院,焦作 454000)
基于重定向的多出口Web服務(wù)加速系統(tǒng)設(shè)計
鄒家寧,張治斌
(河南理工大學(xué)計算機科學(xué)與技術(shù)學(xué)院,焦作454000)
大學(xué)校園計算機網(wǎng)絡(luò)作為園區(qū)網(wǎng)的典型代表,除了為校園內(nèi)部網(wǎng)絡(luò)用戶提供因特網(wǎng)接入以外,還有一個重要角色就是作為資源子網(wǎng)為校園以外的網(wǎng)絡(luò)用戶提供大量信息資源,主要包括但不限于本校對外提供的宣傳類信息、面向社會公開提供的教育信息、面向本校外出師生的內(nèi)部業(yè)務(wù)系統(tǒng)等。這些信息服務(wù)的最主要提供形式是基于HTTP協(xié)議的網(wǎng)頁和Web Service。而在校外訪問這些服務(wù)的用戶分布于國內(nèi)各大網(wǎng)絡(luò)運營商以至于國外,如果單獨使用CERNET出口提供服務(wù),運營商的網(wǎng)間互聯(lián)瓶頸會嚴重降低用戶的訪問效率。那么在同時使用多個運營商出口的環(huán)境下怎樣保證外部用戶從合適的鏈路進入,快速訪問內(nèi)部Web資源是需要解決的關(guān)鍵問題。如何充分利用原有設(shè)備,設(shè)計一個加速系統(tǒng),低成本解決這個問題,具有重大現(xiàn)實意義。
對于大型網(wǎng)絡(luò),解決上述立足于規(guī)避互聯(lián)瓶頸的加速問題的終極方案是將內(nèi)部網(wǎng)絡(luò)建立自治域(AS),與運營商網(wǎng)絡(luò)通過BGP協(xié)議互聯(lián)[1-2],這樣所有運營商網(wǎng)絡(luò)都有指向園區(qū)網(wǎng)的直接路由,也就無需經(jīng)過其他運營商轉(zhuǎn)發(fā),從而避開外網(wǎng)互聯(lián)瓶頸,也無需網(wǎng)絡(luò)地址轉(zhuǎn)換,與其他方案比較而言網(wǎng)絡(luò)傳輸效率和服務(wù)器資源使用效率最高。但對于國內(nèi)大多數(shù)大學(xué)校園網(wǎng)來說,由于網(wǎng)絡(luò)規(guī)模不夠大,所以一方面申請本來就極為緊缺的AS號碼很困難,另一方面運營商的政策性限制也不允許廣泛進行BGP互聯(lián)。因此只能采取其他解決方案。
對于經(jīng)營性的商業(yè)網(wǎng)站,解決加速問題的一種成熟方案是內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)[3-5],通過在各大運營商數(shù)據(jù)中心部署內(nèi)容鏡像來將服務(wù)內(nèi)容“推送”到用戶附近,使得用戶可以就近獲取服務(wù)內(nèi)容以達到加速的目的。這個方案的問題在于其成本較高,所以一般不適合應(yīng)用于非經(jīng)營性的網(wǎng)站,尤其是多數(shù)的大學(xué)網(wǎng)站。
多出口大學(xué)校園網(wǎng)采用較多的加速方案是基于客戶IP地址來劃分視圖的智能DNS[6-9]解析。也就是在DNS服務(wù)器的配置中,根據(jù)出口數(shù)量建立多個視圖,分別配置運營商所屬的IP地址數(shù)據(jù),從而根據(jù)DNS解析請求的源IP地址來識別客戶來自于哪個運營商,再按照相應(yīng)視圖將用戶查詢的域名解析為針對相應(yīng)運營商分配的IP地址,以引導(dǎo)用戶通過正確的鏈路訪問網(wǎng)站資源。此種方式成本低廉,基本無需額外資金投入,因而適合大學(xué)校園網(wǎng)的非經(jīng)營性網(wǎng)站,在國內(nèi)大學(xué)得到廣泛采用。但此種方案難以避免的缺陷有二:一是DNS服務(wù)用于將域名解析為IP地址,其中并不包含TCP/ UDP端口信息,因而在這個環(huán)節(jié)對IP地址難以復(fù)用,而運營商隨接入服務(wù)分配給校園網(wǎng)的IP地址數(shù)量極其有限,難以滿足校園網(wǎng)對外服務(wù)網(wǎng)站數(shù)量的快速增長的需要;二是隨著互聯(lián)網(wǎng)的發(fā)展,用戶機對DNS服務(wù)器的設(shè)置不一定遵循“同一運營商”的原則,如果用戶機本身和代理用戶進行遞歸查詢的DNS服務(wù)器屬于不同的運營商,那么此種方案的效果就會適得其反,嚴重惡化用戶訪問網(wǎng)站的效率。
由于HTTP協(xié)議在校園網(wǎng)對外服務(wù)中的主體性,本文只研究基于HTTP協(xié)議的多鏈路訪問優(yōu)化問題。
根據(jù)HTTP協(xié)議規(guī)范[10-12],只要充分利用HTTP狀態(tài)碼302、301的重定向功能,告知用戶機使用另外的目標地址和端口號訪問同一內(nèi)網(wǎng)資源,即可有效解決外網(wǎng)用戶訪問校園網(wǎng)Web資源的多鏈路選擇問題。由于HTTP是應(yīng)用層協(xié)議,其重定向目標不僅可以包含域名或IP地址,也可以包含TCP端口號,這就有效解決了公網(wǎng)運營商IP地址復(fù)用問題。另外HTTP協(xié)議的服務(wù)請求報文是發(fā)自用戶機IP地址,與用戶DNS服務(wù)器無關(guān),所以智能DNS方案的第二個缺陷也就不復(fù)存在了。
只要通過合適的設(shè)備配置和算法設(shè)計,接收公網(wǎng)用戶發(fā)送的HTTP請求,并通過一個重定向回復(fù)[13-14],使客戶機重新發(fā)送請求至與用戶一致的公網(wǎng)鏈路入口,并通過邊界路由器上運行的靜態(tài)NAT,將數(shù)據(jù)包的目的IP地址和端口號進行轉(zhuǎn)換,進入內(nèi)網(wǎng)訪問正確的資源。
3.1解決方案的工作流程
基于HTTP重定向的Web服務(wù)加速解決方案的整體工作流程包括以下部分:
首先,該方案僅使用常規(guī)配置的DNS服務(wù)器,使得校內(nèi)資源的域名解析為CERNET分配的IP地址,即資源實際的IP地址。將此地址返回給外網(wǎng)DNS及外網(wǎng)用戶。
公網(wǎng)用戶得到該地址以后,訪問Web資源的HTTP請求報文即通過教育網(wǎng)鏈路進入校園網(wǎng),在邊界路由器上執(zhí)行策略路由將所有來自非CERNET的訪問指定資源的數(shù)據(jù)包路由至用于進行HTTP重定向的服務(wù)器。
重定向服務(wù)器上需要實現(xiàn)一個僅執(zhí)行重定向的HTTP服務(wù)子集。該服務(wù)程序由筆者自行實現(xiàn)。服務(wù)程序應(yīng)按照用戶IP地址判斷用戶所屬運營商,然后發(fā)送重定向目標為該運營商分配的IP地址的HTTP重定向報文給用戶。該回復(fù)報文封裝后仍通過CERNET鏈路發(fā)送給用戶。由于請求報文和重定向報文都很小,盡管這個部分沒有能夠規(guī)避外網(wǎng)互聯(lián)瓶頸,然而對用戶總的訪問效率的不利影響非常有限。
用戶機收到重定向報文后發(fā)送新的HTTP請求報文,由于其目標IP地址是屬于用戶本身所屬的相應(yīng)運營商的,因此封裝報文的數(shù)據(jù)包將會被由該運營商的網(wǎng)絡(luò)直接路由到正確的校園網(wǎng)入口鏈路,從而使得數(shù)據(jù)量較大的主要的數(shù)據(jù)傳輸過程有效規(guī)避了外網(wǎng)互聯(lián)瓶頸。
校園網(wǎng)出口上連接該運營商鏈路的邊界路由器負責(zé)運行針對指定資源的靜態(tài)NAT,將用戶發(fā)送的目標地址為該運營商所屬的IP地址的數(shù)據(jù)包,正確轉(zhuǎn)換為校園網(wǎng)內(nèi)的CERNET地址,這樣就能夠保證正確完成接下來的全部通信過程。
3.2相關(guān)策略路由配置
由上文描述可知,為了正確實現(xiàn)指定Web服務(wù)對特定公網(wǎng)用戶的加速功能,需要在CERNET出口路由器上實現(xiàn)策略路由功能如下:
(1)根據(jù)進入數(shù)據(jù)包的目標地址是否匹配需要加速的Web服務(wù)來確定是否進行接下來的路由策略(這個步驟也可以通過常規(guī)靜態(tài)路由來完成)。
(2)訪問指定的Web服務(wù)的數(shù)據(jù)包需要根據(jù)其源地址確定它來自哪個公網(wǎng)運營商,并根據(jù)不同運營商來分類,決定該數(shù)據(jù)包轉(zhuǎn)發(fā)到重定向服務(wù)器的哪個接口或地址。
由于設(shè)備配置手段的限制,現(xiàn)有的路由器很難在單臺設(shè)備上實現(xiàn)1、2兩步功能,因此為了滿足上述需求,需要配置至少兩臺路由設(shè)備。連接CERNET的邊界路由器負責(zé)上述步驟1的策略路由或者常規(guī)路由;另外一臺內(nèi)部路由設(shè)備負責(zé)上述步驟2的策略路由。
3.3重定向服務(wù)程序設(shè)計
重定向服務(wù)器上使用多個網(wǎng)絡(luò)接口或者單一接口的多個地址,由多個服務(wù)進程負責(zé)監(jiān)聽,每個進程對應(yīng)一個監(jiān)聽地址,從而對應(yīng)于一個公網(wǎng)運營商。這樣的處理方式有利于充分利用路由設(shè)備的性能,使得服務(wù)器上的重定向進程無需查表判斷源地址所屬的運營商,減輕了服務(wù)器的負擔(dān)。
重定向服務(wù)進程使用配置文件記錄了內(nèi)網(wǎng)所有Web服務(wù)站點的主機頭到不同運營商的公網(wǎng)IP地址/ TCP端口號的映射關(guān)系。每個重定向服務(wù)進程可以用多線程的方式為多個用戶并發(fā)服務(wù)。每個線程可以獨立打開并分析用戶發(fā)來的HTTP請求數(shù)據(jù)報,根據(jù)用戶提交的URL提取主機頭部分,根據(jù)這部分內(nèi)容并結(jié)合配置文件提供的映射關(guān)系,確定要重定向的IP地址和端口號,并構(gòu)造相應(yīng)重定向指令,封裝后回復(fù)給用戶機。用戶機按照重定向指令的要求,向直連該運營商的路由出口重新提交HTTP訪問請求,并得到快速回應(yīng)。
根據(jù)實踐經(jīng)驗,典型情況下同一運營商內(nèi)部傳輸延時分布在10ms-50ms,不同運營商之間的傳輸延時分布在200ms-500ms。本方案的實施,盡管保留了跨運營商的初始訪問連接,但后續(xù)數(shù)據(jù)傳輸過程經(jīng)由單一運營商的低延時鏈路,使得傳輸環(huán)節(jié)延時降低為原來的10%以下,極大提高了數(shù)據(jù)傳輸效率,優(yōu)化了用戶訪問體驗??梢哉f本方案具有很高的性價比。
另外考慮到網(wǎng)絡(luò)上與日俱增的對于Web服務(wù)的攻擊行為,后續(xù)開發(fā)還應(yīng)采取相應(yīng)的過濾措施以抵抗攻擊。
[1]Y.Rekhter,T.Li,S.Hares.A Border Gateway Protocol 4(BGP-4)[S/OL].(2006-1).http://www.rfc-editor.org/rfc/rfc4271.txt
[2]E.Chen,J.Yuan.Autonomous-System-Wide Unique BGP Identifier for BGP-4[S/OL].(2006-1).http://www.rfc-editor.org/rfc/rfc6286. txt
[3]邱翔鷗.為因特網(wǎng)加速的內(nèi)容配送網(wǎng)絡(luò)[J].世界電信,2002(03):16-20.
[4]高勇,李子木,吳建平.CERNET上CDN性能的研究[J].計算機工程,2002(S1):211-215
[5]王樟,柳健,楊瑞娟.CDN網(wǎng)絡(luò)中的內(nèi)容分發(fā)策略研究[J].中國數(shù)據(jù)通信,2004(02):13-16
[6]韓鈺,侯晶晶.策略路由與動態(tài)DNS技術(shù)在校園網(wǎng)中的應(yīng)用研究[J].教育信息化,2006(13):30-32
[7]陳松,戰(zhàn)學(xué)剛.基于雙向NAT和智能DNS內(nèi)網(wǎng)服務(wù)器安全快速訪問策略[J].計算機工程與設(shè)計,2009(12):2941-2944
[8]吳江,馮雯,姜少杰.智能DNS系統(tǒng)在校園網(wǎng)的研究與實現(xiàn)[J].微計算機信息,2010(09):102-104
[9]趙天,侯國平,鄧成俊.智能DNS在多出口校園網(wǎng)中的應(yīng)用[J].計算機與現(xiàn)代化,2010(11):103-105
[10]R.Fielding,J.Gettys,J.Mogul,H.Frystyk,L.Masinter,P.Leach,T.Berners-Lee.Hypertext Transfer Protocol-HTTP/1.1[S/OL]. (1999-6).http://www.rfc-editor.org/rfc/rfc2616.txt
[11]M.Nottingham,E.Hammer-Lahav.Defining Well-Known Uniform Resource Identifiers(URIs)[S/OL].(2010-4).http://www.rfc-editor. org/rfc/rfc5785.txt.
[12]A.Barth.HTTP State Management Mechanism.[S/OL].(2011-4).http://www.rfc-editor.org/rfc/rfc6265.txt.
[13]張曉軍,呂潔,張蓓.HTTP重定向在網(wǎng)關(guān)認證中的應(yīng)用[J].大連理工大學(xué)學(xué)報.2005(S1):48-51.
[14]劉潤達,諸云強,宋佳。馮敏.一種簡單跨域單點登錄系統(tǒng)的實現(xiàn)[J].計算機應(yīng)用.2007(02):288-291.
Web Service Acceleration;HTTP Redirection;Multi-Home Network;Multi ISPs
A Web Service Accelerate Solution Based on HTTP Redirection in Multi-Home Network
ZOU Jia-ning,ZHANG Zhi-bin
(College of Computer Science and Rechnology,Henan Polytechnic University,Jiaozuo 454000)
1007-1423(2015)28-0037-04
10.3969/j.issn.1007-1423.2015.28.010
鄒家寧(1974-),男,遼寧錦州人,講師,研究方向為網(wǎng)絡(luò)精細化管理
2015-08-13
2015-09-26
為了提高多出口園區(qū)網(wǎng)對外提供Web服務(wù)的數(shù)據(jù)傳輸效率,在分析現(xiàn)有解決方案的基礎(chǔ)上,提出一種基于HTTP重定向的低成本解決方案??沙浞掷迷芯W(wǎng)絡(luò)設(shè)備,較好地解決了多運營商Web訪問加速問題。
Web服務(wù)加速;HTTP重定向;多出口;多運營商
In order to improve data transmission efficiency for Web service,especially in a multi-home network,firstly analyzes original solution,and then gives a solution based on HTTP redirection.This low-cost solution depends on existing routers and servers,optimizes Web per-formance for users from multi ISPs’network.