鄒家寧,張治斌
(河南理工大學計算機科學與技術學院,焦作 454000)
基于重定向的多出口Web服務加速系統設計
鄒家寧,張治斌
(河南理工大學計算機科學與技術學院,焦作454000)
大學校園計算機網絡作為園區網的典型代表,除了為校園內部網絡用戶提供因特網接入以外,還有一個重要角色就是作為資源子網為校園以外的網絡用戶提供大量信息資源,主要包括但不限于本校對外提供的宣傳類信息、面向社會公開提供的教育信息、面向本校外出師生的內部業務系統等。這些信息服務的最主要提供形式是基于HTTP協議的網頁和Web Service。而在校外訪問這些服務的用戶分布于國內各大網絡運營商以至于國外,如果單獨使用CERNET出口提供服務,運營商的網間互聯瓶頸會嚴重降低用戶的訪問效率。那么在同時使用多個運營商出口的環境下怎樣保證外部用戶從合適的鏈路進入,快速訪問內部Web資源是需要解決的關鍵問題。如何充分利用原有設備,設計一個加速系統,低成本解決這個問題,具有重大現實意義。
對于大型網絡,解決上述立足于規避互聯瓶頸的加速問題的終極方案是將內部網絡建立自治域(AS),與運營商網絡通過BGP協議互聯[1-2],這樣所有運營商網絡都有指向園區網的直接路由,也就無需經過其他運營商轉發,從而避開外網互聯瓶頸,也無需網絡地址轉換,與其他方案比較而言網絡傳輸效率和服務器資源使用效率最高。但對于國內大多數大學校園網來說,由于網絡規模不夠大,所以一方面申請本來就極為緊缺的AS號碼很困難,另一方面運營商的政策性限制也不允許廣泛進行BGP互聯。因此只能采取其他解決方案。
對于經營性的商業網站,解決加速問題的一種成熟方案是內容分發網絡(CDN)[3-5],通過在各大運營商數據中心部署內容鏡像來將服務內容“推送”到用戶附近,使得用戶可以就近獲取服務內容以達到加速的目的。這個方案的問題在于其成本較高,所以一般不適合應用于非經營性的網站,尤其是多數的大學網站。
多出口大學校園網采用較多的加速方案是基于客戶IP地址來劃分視圖的智能DNS[6-9]解析。也就是在DNS服務器的配置中,根據出口數量建立多個視圖,分別配置運營商所屬的IP地址數據,從而根據DNS解析請求的源IP地址來識別客戶來自于哪個運營商,再按照相應視圖將用戶查詢的域名解析為針對相應運營商分配的IP地址,以引導用戶通過正確的鏈路訪問網站資源。此種方式成本低廉,基本無需額外資金投入,因而適合大學校園網的非經營性網站,在國內大學得到廣泛采用。但此種方案難以避免的缺陷有二:一是DNS服務用于將域名解析為IP地址,其中并不包含TCP/ UDP端口信息,因而在這個環節對IP地址難以復用,而運營商隨接入服務分配給校園網的IP地址數量極其有限,難以滿足校園網對外服務網站數量的快速增長的需要;二是隨著互聯網的發展,用戶機對DNS服務器的設置不一定遵循“同一運營商”的原則,如果用戶機本身和代理用戶進行遞歸查詢的DNS服務器屬于不同的運營商,那么此種方案的效果就會適得其反,嚴重惡化用戶訪問網站的效率。
由于HTTP協議在校園網對外服務中的主體性,本文只研究基于HTTP協議的多鏈路訪問優化問題。
根據HTTP協議規范[10-12],只要充分利用HTTP狀態碼302、301的重定向功能,告知用戶機使用另外的目標地址和端口號訪問同一內網資源,即可有效解決外網用戶訪問校園網Web資源的多鏈路選擇問題。由于HTTP是應用層協議,其重定向目標不僅可以包含域名或IP地址,也可以包含TCP端口號,這就有效解決了公網運營商IP地址復用問題。另外HTTP協議的服務請求報文是發自用戶機IP地址,與用戶DNS服務器無關,所以智能DNS方案的第二個缺陷也就不復存在了。
只要通過合適的設備配置和算法設計,接收公網用戶發送的HTTP請求,并通過一個重定向回復[13-14],使客戶機重新發送請求至與用戶一致的公網鏈路入口,并通過邊界路由器上運行的靜態NAT,將數據包的目的IP地址和端口號進行轉換,進入內網訪問正確的資源。
3.1解決方案的工作流程
基于HTTP重定向的Web服務加速解決方案的整體工作流程包括以下部分:
首先,該方案僅使用常規配置的DNS服務器,使得校內資源的域名解析為CERNET分配的IP地址,即資源實際的IP地址。將此地址返回給外網DNS及外網用戶。
公網用戶得到該地址以后,訪問Web資源的HTTP請求報文即通過教育網鏈路進入校園網,在邊界路由器上執行策略路由將所有來自非CERNET的訪問指定資源的數據包路由至用于進行HTTP重定向的服務器。
重定向服務器上需要實現一個僅執行重定向的HTTP服務子集。該服務程序由筆者自行實現。服務程序應按照用戶IP地址判斷用戶所屬運營商,然后發送重定向目標為該運營商分配的IP地址的HTTP重定向報文給用戶。該回復報文封裝后仍通過CERNET鏈路發送給用戶。由于請求報文和重定向報文都很小,盡管這個部分沒有能夠規避外網互聯瓶頸,然而對用戶總的訪問效率的不利影響非常有限。
用戶機收到重定向報文后發送新的HTTP請求報文,由于其目標IP地址是屬于用戶本身所屬的相應運營商的,因此封裝報文的數據包將會被由該運營商的網絡直接路由到正確的校園網入口鏈路,從而使得數據量較大的主要的數據傳輸過程有效規避了外網互聯瓶頸。
校園網出口上連接該運營商鏈路的邊界路由器負責運行針對指定資源的靜態NAT,將用戶發送的目標地址為該運營商所屬的IP地址的數據包,正確轉換為校園網內的CERNET地址,這樣就能夠保證正確完成接下來的全部通信過程。
3.2相關策略路由配置
由上文描述可知,為了正確實現指定Web服務對特定公網用戶的加速功能,需要在CERNET出口路由器上實現策略路由功能如下:
(1)根據進入數據包的目標地址是否匹配需要加速的Web服務來確定是否進行接下來的路由策略(這個步驟也可以通過常規靜態路由來完成)。
(2)訪問指定的Web服務的數據包需要根據其源地址確定它來自哪個公網運營商,并根據不同運營商來分類,決定該數據包轉發到重定向服務器的哪個接口或地址。
由于設備配置手段的限制,現有的路由器很難在單臺設備上實現1、2兩步功能,因此為了滿足上述需求,需要配置至少兩臺路由設備。連接CERNET的邊界路由器負責上述步驟1的策略路由或者常規路由;另外一臺內部路由設備負責上述步驟2的策略路由。
3.3重定向服務程序設計
重定向服務器上使用多個網絡接口或者單一接口的多個地址,由多個服務進程負責監聽,每個進程對應一個監聽地址,從而對應于一個公網運營商。這樣的處理方式有利于充分利用路由設備的性能,使得服務器上的重定向進程無需查表判斷源地址所屬的運營商,減輕了服務器的負擔。
重定向服務進程使用配置文件記錄了內網所有Web服務站點的主機頭到不同運營商的公網IP地址/ TCP端口號的映射關系。每個重定向服務進程可以用多線程的方式為多個用戶并發服務。每個線程可以獨立打開并分析用戶發來的HTTP請求數據報,根據用戶提交的URL提取主機頭部分,根據這部分內容并結合配置文件提供的映射關系,確定要重定向的IP地址和端口號,并構造相應重定向指令,封裝后回復給用戶機。用戶機按照重定向指令的要求,向直連該運營商的路由出口重新提交HTTP訪問請求,并得到快速回應。
根據實踐經驗,典型情況下同一運營商內部傳輸延時分布在10ms-50ms,不同運營商之間的傳輸延時分布在200ms-500ms。本方案的實施,盡管保留了跨運營商的初始訪問連接,但后續數據傳輸過程經由單一運營商的低延時鏈路,使得傳輸環節延時降低為原來的10%以下,極大提高了數據傳輸效率,優化了用戶訪問體驗。可以說本方案具有很高的性價比。
另外考慮到網絡上與日俱增的對于Web服務的攻擊行為,后續開發還應采取相應的過濾措施以抵抗攻擊。
[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]邱翔鷗.為因特網加速的內容配送網絡[J].世界電信,2002(03):16-20.
[4]高勇,李子木,吳建平.CERNET上CDN性能的研究[J].計算機工程,2002(S1):211-215
[5]王樟,柳健,楊瑞娟.CDN網絡中的內容分發策略研究[J].中國數據通信,2004(02):13-16
[6]韓鈺,侯晶晶.策略路由與動態DNS技術在校園網中的應用研究[J].教育信息化,2006(13):30-32
[7]陳松,戰學剛.基于雙向NAT和智能DNS內網服務器安全快速訪問策略[J].計算機工程與設計,2009(12):2941-2944
[8]吳江,馮雯,姜少杰.智能DNS系統在校園網的研究與實現[J].微計算機信息,2010(09):102-104
[9]趙天,侯國平,鄧成俊.智能DNS在多出口校園網中的應用[J].計算機與現代化,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重定向在網關認證中的應用[J].大連理工大學學報.2005(S1):48-51.
[14]劉潤達,諸云強,宋佳。馮敏.一種簡單跨域單點登錄系統的實現[J].計算機應用.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-),男,遼寧錦州人,講師,研究方向為網絡精細化管理
2015-08-13
2015-09-26
為了提高多出口園區網對外提供Web服務的數據傳輸效率,在分析現有解決方案的基礎上,提出一種基于HTTP重定向的低成本解決方案。可充分利用原有網絡設備,較好地解決了多運營商Web訪問加速問題。
Web服務加速;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.