一种对访问请求进行限制的系统和方法

文档序号:8265813阅读:279来源:国知局
一种对访问请求进行限制的系统和方法
【技术领域】
[0001]本发明涉及一种对来自网络的访问请求进行限制的系统及其相应的方法。
【背景技术】
[0002]传统的负载平衡器(Load Balancer),如采用Iinux下HaProxy的配置,用于读取来自网络的每一个HTTP请求中所包含的cookies或URL解释,并且基于这些信息重写报头并将HTTP请求发往后端服务器群,使得后端服务器群中各服务器达到流量、资源占用的平衡状态。但是,传统的负载平衡器不会自动对网络的流量进行滤过检查,不能对攻击流量进行限流或丢弃。
[0003]在现有技术中,已知有基于流量清洗技术通过侦测TCP分组来实现针对ICMP/TCP/UDP流攻击进行防护的,通过重发TCP/UDP分组来实现。这种已知方案仅对TCP/UDP层的分组有效,它对于预防需解密的开放式系统互联参考模型(OSI)第7层应用层的HTTP流攻击无能为力。
[0004]一种想法是根据对访问URL做统计,根据单位时间访问量如QPS来限制访问请求。针对一个大型网站访问URL的统计通常消耗很多内存。一般来说,对于数据项IP地址、用户标识(USERID)、统一资源定位符(URL)等的任何一个组合,需要记录与该组合相关联的每一个访问的时间戳(timestamp)。当需要计算QPS时,将各个时间点过滤或排序,既费时又耗内存。
[0005]在现有技术中,当需要计算QPS时,将各个时间点过滤或排序,既费时又耗内存。

【发明内容】

[0006]本发明的目的是提供至少部分解决上述问题的系统和方法。本发明特别适合于解决网络的DOS攻击(拒绝服务攻击)和DDOS攻击(分布式的拒绝服务攻击)领域。该技术尤其适合于针对HTTP流攻击(http flooding)的防范。本发明通过对用户流量的统计和分析,找到符合模式匹配的攻击流量并加以限流或丢弃,从而保护其后端服务器。
[0007]根据本发明的一个方面,提供一种对来自网络的访问请求进行限制的系统,该系统包括负载均衡器、聚集器和汇总器。所述负载均衡器接收来自所述网络的访问请求,把所接收的每个访问请求解析成一个UDP报文,并且把UDP报文传送给聚集器;所述聚集器根据预定义统计数据项组合和预定义统计时长对接收到的UDP报文进行统计,并且根据汇总器的请求向其发送统计结果;所述汇总器按照预定的请求时间间隔向所述聚集器请求统计结果,接收来自所述聚集器的统计结果,根据所接收的统计结果和预定义规则生成访问请求的黑名单,并且根据所述负载均衡器的请求把黑名单发送给所述负载均衡器,其中所述黑名单定义了对相应访问请求的处理动作。其中,所述负载均衡器根据当前黑名单确定对所接收的每个访问请求的处理动作。
[0008]根据本发明的另一方面,提供一种对来自网络的访问请求进行限制的系统中执行的方法,该系统包括负载均衡器、聚集器和汇总器,所述方法包括:所述负载均衡器接收来自所述网络的访问请求,把所接收的该访问请求解析成一个UDP报文,并且把该UDP报文传送给聚集器;所述负载均衡器根据当前黑名单确定对所接收的该访问请求的处理动作,其中所述黑名单定义了对访问请求的处理动作。其中,所述聚集器接收所述负载均衡器发送的UDP报文,根据预定义统计数据项组合和预定义统计时长对接收到的UDP报文进行统计以产生统计结果,并且根据汇总器的请求向其发送统计结果;所述汇总器按照预定的请求时间间隔向所述聚集器请求统计结果,接收来自所述聚集器的统计结果,根据所接收的统计结果和预定义规则生成访问请求的黑名单,并且根据所述负载均衡器的请求把黑名单发送给所述负载均衡器。
[0009]根据本发明,所述统计结果给出了在所述预定义统计时长内累计的包含有所述预定义统计数据项组合的UDP报文数量
[0010]根据本发明,所述网络是因特网,所述访问请求是来自因特网的HTTP请求。
[0011]根据本发明,其中所述聚集器包括多台彼此独立运行的聚集机,所述负载均衡器把每个UDP报文传输至一台聚集机,各台聚集机分别进行所述统计。所述汇总器从所述多台聚集机接收统计结果,产生汇总的统计结果。并且所述黑名单根据所述汇总的统计结果和所述预定义规则生成。
[0012]根据本发明的系统还包括预定义的白名单,所述白名单定义了规定被放行的访问请求。并且所述负载均衡器对接收的访问请求按如下确定对该访问请求的处理动作:当该访问请求匹配所述白名单或者不匹配当前黑名单时,则对该访问请求放行;当该访问请求不匹配所述白名单且匹配当前黑名单时,对该访问请求按照黑名单中相应记录规定的处理动作来进行操作。
[0013]根据本发明的系统,其中所述黑名单中规定的所述处理动作包括下述之一:拦截、重定向和延时。
【附图说明】
[0014]下面将参考附图详细地描述本发明的实施例,其中:
[0015]图1是根据本发明的用于对访问请求进行限制的系统的结构图;
[0016]图2是根据本发明的负载均衡器处理接收的访问请求的时序图;
[0017]图3是根据本发明的汇总器的实例性组成的框图。
【具体实施方式】
[0018]本发明提供利用统计信息对来自网络的访问请求进行限制的系统和方法。
[0019]一个访问请求,例如HTTP请求,包括如下数据项:该查询用户要访问的目的域名(host);用户请求的通用资源标示符(uri);用户名(uid);客户端IP地址(cip)等。
[0020]根据本发明,本发明提供一种对来自网络的访问请求进行限制的系统,该系统包括负载均衡器、聚集器和汇总器。
[0021 ] 所述负载均衡器接收来自所述网络的访问请求,把所接收的每个访问请求解析成一个UDP报文,并且把UDP报文传送给聚集器。
[0022]所述聚集器根据预定义统计数据项组合和预定义统计时长对接收到的UDP报文进行统计,并且根据汇总器的请求向其发送统计结果。所述统计结果给出了在当前的预定义统计时长内累计的包含有所述预定义统计数据项组合的UDP报文数量。
[0023]所述汇总器按照预定的请求时间间隔向所述聚集器请求统计结果,接收来自所述聚集器的统计结果,根据所接收的统计结果和预定义规则生成访问请求的黑名单,并且根据所述负载均衡器的请求把黑名单发送给所述负载均衡器,其中所述黑名单定义了对相应访问请求的处理动作。
[0024]所述负载均衡器根据当前黑名单确定对所接收的每个访问请求的处理动作。
[0025]下面结合具体实施例详细描述根据本发明实施例的系统。但应该理解,具体实施例仅用于理解本发明的精神和具体实现,但本发明并不受限于特定的实施例。
[0026]图1示出根据本发明实施例的系统100,该系统100包括3个模块:
[0027]负载均衡器101,
[0028]聚集器102,和
[0029]汇总器103。
[0030]负载均衡器101接收来自网络的访问请求,如来自因特网的HTTP请求,并将接收的访问请求解析成UDP报文,再将UDP报文传输给聚集器102。
[0031]UDP报文因其资源消耗小、处理速度快等优势可以大大减小负载均衡器的额外开销。UDP协议不属于连接型协议,所以会存在一定的报文丢失现象。但这种丢失在可控误差范围之内,对系统的健硕性影响可忽略。
[0032]聚集器102可包括多台聚集机。多台聚集机水平独立扩展,即每台聚集机是独立部署和运行的,它们相互之间没有影响和依赖。如果聚集器处理能力不能满足需要,可以增加机器,再部署新的聚集机。这样可以较好地满足大交通流量的需要。
[0033]负载均衡器101把每个UDP报文传输至一台选定的聚集机。各台聚集机分别进行所述统计。
[0034]根据本发明的一个实施例,负载均衡器101用逐个轮询的方式向多台聚集机发UDP报文。例如,第一个UDP包发给第一台聚集机,第二个UDP包发给第二台聚集机,依次把生成的UDP包按顺序发给各聚集机。当给最后一台聚集机发送过过UDP包之后,再重新向第一台聚集机发送。
[0035]每台聚集机按照预定义统计规则或条件,如预定义的统计数据项组合、预定义的统计时间间隔等,对接收到的UDP报文进行统计分析。
[0036]聚集机接收UDP报文并且解析UDP报文。UDP报文中包含了用户的HTTP访问请求的信息:用户访问的目的域名(host)、用户请求的通用资源标示符(uri)、用户名(uid)、客户端IP地址(cip)等。
[0037]然后,聚集机针对同一个目的域名(相同的host)、同一来源(相同的uid,相同的cip)的访问请求数量作统计,进而可计算出此来源的访问请求量。
[0038]如果在限定的时间段,如最近60秒或最近5分钟,考察上述统计访问请求量,那么可得出此来源的单位时间请求量,如通过访问请求量除以该时间段的时长来获得QPS值。QPS是
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1