基于重定向的多出口Web服务加速系统设计
2015-02-23邹家宁张治斌
邹家宁,张治斌
(河南理工大学计算机科学与技术学院,焦作 454000)
基于重定向的多出口Web服务加速系统设计
邹家宁,张治斌
(河南理工大学计算机科学与技术学院,焦作454000)
0 引言
大学校园计算机网络作为园区网的典型代表,除了为校园内部网络用户提供因特网接入以外,还有一个重要角色就是作为资源子网为校园以外的网络用户提供大量信息资源,主要包括但不限于本校对外提供的宣传类信息、面向社会公开提供的教育信息、面向本校外出师生的内部业务系统等。这些信息服务的最主要提供形式是基于HTTP协议的网页和Web Service。而在校外访问这些服务的用户分布于国内各大网络运营商以至于国外,如果单独使用CERNET出口提供服务,运营商的网间互联瓶颈会严重降低用户的访问效率。那么在同时使用多个运营商出口的环境下怎样保证外部用户从合适的链路进入,快速访问内部Web资源是需要解决的关键问题。如何充分利用原有设备,设计一个加速系统,低成本解决这个问题,具有重大现实意义。
1 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服务器属于不同的运营商,那么此种方案的效果就会适得其反,严重恶化用户访问网站的效率。
2 基于HTTP重定向的解决方案
由于HTTP协议在校园网对外服务中的主体性,本文只研究基于HTTP协议的多链路访问优化问题。
根据HTTP协议规范[10-12],只要充分利用HTTP状态码302、301的重定向功能,告知用户机使用另外的目标地址和端口号访问同一内网资源,即可有效解决外网用户访问校园网Web资源的多链路选择问题。由于HTTP是应用层协议,其重定向目标不仅可以包含域名或IP地址,也可以包含TCP端口号,这就有效解决了公网运营商IP地址复用问题。另外HTTP协议的服务请求报文是发自用户机IP地址,与用户DNS服务器无关,所以智能DNS方案的第二个缺陷也就不复存在了。
只要通过合适的设备配置和算法设计,接收公网用户发送的HTTP请求,并通过一个重定向回复[13-14],使客户机重新发送请求至与用户一致的公网链路入口,并通过边界路由器上运行的静态NAT,将数据包的目的IP地址和端口号进行转换,进入内网访问正确的资源。
3 解决方案的设计与实现
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访问请求,并得到快速回应。
4 效果分析与展望
根据实践经验,典型情况下同一运营商内部传输延时分布在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.