基于负载均衡的高级访问控制系统及方法

文档序号:7982659阅读:441来源:国知局
基于负载均衡的高级访问控制系统及方法
【专利摘要】本发明涉及基于负载均衡的高级访问控制系统及方法,该系统是由负载均衡设备硬件、操作系统和系统应用模块及其内含的高级访问控制模块等部分组成。本发明方法是根据预先定义高级访问控制规则;当收到服务连接的请求后,将服务数据包送至高级访问控制模块;高级访问控制模块应用预先定义的高级访问规则,生成该服务数据包的高级访问控制数据,并据此判断是否允许该服务连接的访问。本发明可灵活地应用于多种网络服务的访问控制,并可在保护交易完整性的基础上对HTTP的连接数和连接速度加以限制。
【专利说明】基于负载均衡的高级访问控制系统及方法
【技术领域】
[0001]本发明涉及网络应用领域,特别涉及一种基于负载均衡的高级访问控制系统及方法。
【背景技术】
[0002]目前有两类方式来实现对客户端的访问控制。一类是QoS(Quality ofService服务质量),它是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术,QoS一般工作在网络层,是在以整个服务器为上下文的基础上,对带宽、流量做访问限制。该方式实现的短处显而易见,首先,由于其工作在网络层,只能对带宽加以限制,而不能限制传输层的连接。其次,它只能对客户端到整个主机的访问加以限制,而在实际负载均衡环境中,一台主机通常提供了多个虚拟服务,比如有两个HTTP的虚拟服务,一个FTP的虚拟服务,一个TCP虚拟服务。这时候,用户更多的是想对具体的虚拟服务加以限制。比如限制HTTP虚拟服务上的客户端,每个客户端最多同时拥有5个TCP连接,这对QoS来说都难于做到。
[0003]另一类是TCP连接访问控制,该控制工作在传输层,可以实现对某个客户端IP的可拥有最大并发连接数以及新建连接速度给予控制。基于TCP的访问控制,很多防火墙会提供这样的功能,比如让一个客户端的并发连接数不能多于限定值,或者一个客户端的新建连接速度不能多于限定值。但这类方式对于提供HTTP服务的主机来说,很难保证交易的完整性,为什么呢,因为一个HTTP的交易(Transaction)很可能由多个请求和多个响应来构成,而这些请求和响应是很可能基于多个连接的基础上的。如果在一个交易内的前某些个请求可以被服务,而其他的请求不能被服务,那么就很难保证该交易的完整性。从而引起不好的用户体验。
[0004]图1示例了一般基于QoS或者TCP进行访问控制的系统结构图,在这里能看到上述两类访问控制,都是工作在操作系统内部,这种系统结构只能以整个系统为目标做连接数限制,同时不了解系统提供的各种系统服务的逻辑,不能保证HTTP交易的完整性。

【发明内容】

[0005]针对上述已有技术的不足,本发明的目的是提供一种基于负载均衡的高级访问控制系统,该系统在控制TCP连接数以及新建连接速度的同时,保证HTTP交易的完整性。
[0006]本发明的另一目的是在本发明系统的基础上提供一种基于负载均衡的高级访问控制方法,该方法在控制TCP连接数以及新建连接速度的同时,保证HTTP交易的完整性。
[0007]为实现上述目的,本发明提供一种基于负载均衡的高级访问控制系统,它包括负载均衡设备硬件、操作系统和系统应用模块,其中系统应用模块包含有独立于操作系统的高级访问控制模块,所述的高级访问模块中有预先定义的高级访问控制规则,所述的高级访问控制模块用于接收来自操作系统的服务数据包,并应用预先定义的高级访问规则,生成该服务数据包的高级访问控制数据,所述的高级访问控制模块据此判断是否允许该服务数据包的访问。
[0008]所述的高级访问控制模块可以工作在虚拟服务、全局服务及NAT网络(网络地址转换)上。
[0009]在本发明系统基础上,本发明还提供了一种基于负载均衡的高级访问控制方法,包括以下步骤:
[0010]步骤一,搭建系统网络,并根据系统需求在高级访问模块中预先定义高级访问控制规则;
[0011]步骤二,当操作系统模块收到来自客户端的服务连接的请求后,将服务数据包送至高级访问控制模块;
[0012]步骤三,高级访问控制模块应用上述预先定义的高级访问规则,生成该服务数据包的高级访问控制数据,并据此判断是否允许该服务连接的访问。
[0013]进一步地,上述定义高级访问规则包括以下步骤:
[0014]步骤四,预先定义对用户范围的限制规则;
[0015]步骤五,预先定义在并发连接数和新建连接速度之间二选一的连接类型限制规则;
[0016]步骤六,预先定义逐I P限制和子网限制规则;
[0017]进一步地,对于HTTP服务的高级访问控制,还包括以下步骤:
[0018]步骤七,当并发连接数和新建连接速度超载时,通过解析HTTP交易的完整性标识判断哪些连接是“基于已有交易的后续新建连接”,是则直接通过,否则被告知拒绝访问。
[0019]本发明系统及方法可灵活地应用于多种网络服务的高级访问控制,例如,虚拟服务、全局服务(即所有虚拟服务共享访问控制规则限制)以及NAT网络。本发明高级访问控制系统和方法使得被应用网络服务可以有能力让网络连接数量和速度可控,从而保障网络安全。对于已有技术的访问控制,其主要是限制并发连接数以及新建连接速度,而本发明中提到的高级访问控制,除了能完成上述基本功能外,更注重强调对HTTP服务的访问控制,因为基于HTTP服务的特殊性,直接用特定的TCP规则限制其并发连接数和新建连接速度是过于鲁莽的。本发明是在保护交易完整性的基础上对HTTP的连接数和连接速度加以限制。
【专利附图】

【附图说明】
[0020]图1是已有技术基于负载均衡网络访问控制的系统结构图;
[0021]图2是本发明基于负载均衡的高级访问控制系统结构图;
[0022]图3是本发明高级访问控制模块工作流程第一实施例示意图;
[0023]图4是本发明高级访问控制模块工作流程第二实施例示意图;
[0024]图5是本发明系统及方法在某项目中应用的网络结构示意图。
【具体实施方式】
[0025]在以下的阐述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。
[0026]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
[0027]如图2所示,本发明提供一种基于负载均衡的高级访问控制系统,它包括负载均衡设备硬件101、操作系统102和系统应用模块103,其中系统应用模块103包含有独立于操作系统的高级访问控制模块201,所述的高级访问模块201中有预先定义的高级访问控制规则,所述的高级访问控制模块用于接收来自操作系统的服务数据包,并应用预先定义的高级访问规则,生成该服务数据包的高级访问控制数据301、302和303等,所述的高级访问控制模块根据高级访问控制数据301、302和303等判断是否允许该服务数据包与后台服务器401、402、403等连接访问。本发明系统的工作原理是,当操作系统收到来自客户端的服务数据包后,并不马上交由对应的服务器来为客户端提供服务,而是先交由高级访问控制模块来判断是否可以为当前客户端提供服务,若是,则交给对应的服务处理,否,则拒绝为该客户端提供服务。通常判断的准则有下面几个:
[0028]a.该客户端IP在目标服务上拥有的连接数是否超过上限;
[0029]b.该客户端IP在目标服务上的新建连接的速度是否超过上限;
[0030]c.该客户端I P所在子网在目标服务上拥有的连接数是否超过上限;
[0031]d.该客户端IP所在子网在目标服务上的新建连接的速度是否超过上限
[0032]e.该客户端IP在整个服务器上拥有的连接数是否超过上限;
[0033]f.该客户端IP在整个服务器上新建连接的速度是否超过上限;
[0034]g.该客户端IP所在子网在整个服务器上拥有的连接数是否超过上限;
[0035]h.该客户端IP所在子网在整个服务器上的新建连接速度是否超过上限。
[0036]图2中高级访问控制模块201是独立于操作系统的,高级访问模块201中有预先定义的高级访问控制规则,例如,一个用于负载均衡的虚拟服务,需要设定高级访问控制,且在系统搭建时,在高级访问模块中已预先定义了相应的高级访问规则,那么当一个连接到来的时候,高级访问控制模块首先从操作系统获知访问哪个虚拟服务,然后所述高级访问模块将应用预先定义的高级访问规则生成该虚拟服务的高级访问控制数据,比如标识新建连接的速度限制是多少,并发的连接数限制是多少,当前状态如何等等,最后根据高级访问控制数据记录的当前的状态来判断是否允许该连接的访问。
[0037]在本发明系统基础上,本发明提供一种基于负载均衡的高级访问控制方法,包括以下步骤:
[0038]步骤一,搭建系统网络,并根据系统需求在高级访问模块中预先定义高级访问控制规则。进一步地,所述的预先定义高级访问控制规则,规则里面通常包含三个限制要素:
a.限制范围,即哪些网段的客户端需要限制,也可通过设置白名单或黑名单进行限制;
b.限制类型,在限制并发连接数和新建连接速度之间二选一;c.限制方式,第一种方式是逐I P限制,也就是每个在限制范围提到的网段内的所有I P都要遵循限制类型的限制,第二种方式是子网限制,也就是在限制范围提到的子网内的所有客户端的总的并发连接数和总的新建连接速度不能超过限制类型的限制。这样,通过规则的不同组合实现不同的目标访问链接。
[0039]步骤二,当操作系统模块收到来自客户端的服务连接的请求后,将服务数据包送至高级访问控制模块;
[0040]步骤三,高级访问控制模块收到操作系统发过来的服务数据包,首先将上述预先定义的高级访问规则应用到所接收的不同服务数据包中去,使得每一个服务数据包根据访问规则生成该服务数据包的一组高级访问控制数据,然后根据每一个服务的高级访问控制数据判断是否允许该服务连接的访问。
[0041]上面所述是基本的高级访问控制的步骤,例如,TCP服务、FTP服务等均可在基于负载均衡的高级访问控制系统中通过虚拟服务采用如上的步骤实现高级访问控制,达到限制并发连接数以及新建连接速度的预定值。上述高级访问控制不仅可以应用在虚拟服务中,也可应用在全局服务,即所有虚拟服务共享访问控制规则限制以及NAT网络等应用目标中。例如,使用Array系列负载均衡设备,如图3所示,高级访问控制模块收到操作系统发过来的服务数据包501并生成该服务数据包的一组高级访问控制数据后,可根据上述步骤一中预先定义的高级访问规则以及应用目标进行综合判断,比如将预先拟定客户白名单502、目标服务是否拒绝503、全局服务是否拒绝504等步骤顺序判断,每个服务应满足条件之一,这样便实现多种应用目标的高级访问控制。
[0042]除上述外,在实际应用中,我们经常会遇到对于HTTP这类特殊服务请求的处理。前面已经提到过,HTTP的一个完整的交易(Transaction)可能需要多个请求以及多个响应完成,而这些个请求与响应基本上是跨多个连接来完成的。在繁忙的网络环境中,如果高级访问规则允许HTTP的一个服务交易的前几个连接通过,而拒绝了该服务交易的后续连接请求,则会破坏服务的完整性,从而大大的降低了用户体检。这对于现代的电子商务,电子政务以及其他任何应用都是不能容忍的。所以对基于HTTP类型的服务要提供更进一步地高级访问控制步骤。
[0043]如图4所示,展示了当并发连接数和新建连接速度超载时,一个HTTP连接请求到来时的判断过程。当并发连接数和新建连接速度不超载的时候可以直接通过,但如果超载,先暂时允许通过,如图4中步骤508,然后通过HTTP解析模块判断该服务连接是否有交易的完整性标识509再决定是否拒绝,因为通过HTTP解析模块后我们能获得HTTP请求中的HEADER (请求头)以及COOKIE (网站为了辨别用户身份而储存在用户本地终端上的数据)。根据用户的配置,高级访问控制可以灵活的决定哪些连接属于“纯新建连接”,哪些连接属于“基于已有交易的后续新建连接”,后者则直接通过505,此后结束流程507,前者则被告知拒绝访问506,此后结束流程507。
[0044]所以高级访问控制对于HTTP应用来说,有一个延后的过程,不能在建立连接的时候发现是否已经过载,这时候必须标识为通过或者假通过(当前已经过载,但由于是HTTP,所以假通过),推迟到具体做HTTP请求解析的时候,就可以知道这个连接请求是否为已有交易的一个部分,如果不是,且前面标识的是假通过,那么这时需要告知客户端,暂时因为过载而不能提供服务。
[0045]在实际的应用中,大多是通过HTTP请求头中的cookie字段的值来标识一个交易。例如,用户可以通过Array系统的客户端来对特定的HTTP虚拟服务进行配置,比如可以指定,在cookie中,如果有sessionid这个域,那么这个连接可以认为是已有交易的一部分,直接通过。而如果一个连接属于新的交易是不会有sessionid这个字段的,则会被拒绝服务。
[0046]如上概括起来就是对于HTTP服务的高级访问控制,是在完成上述基本步骤的基础上,当并发连接数和新建连接速度超载时,通过解析HTTP服务交易的完整性标识判断哪些连接是“基于已有交易的后续新建连接”,是则直接通过,否则被告知拒绝访问。
[0047]现以某单位基于负载均衡的高级访问控制系统项目为例,说明本发明的实施过程。如图5所示为该项目的网络结构图,该项目已有条件是=Internet 601,虚拟服务602的IP地址是220.57.54.88,有三个HTTP服务器604、605、606,服务器的IP分别是10.3.1.20,10.3.1.21和10.3.1.22,基于负载均衡的高级访问控制系统603,其I P是
10.301.10,使用Array APV 8600设备实现。该项目的需求如下:
[0048]a.实现到这个三个HTTP服务器的请求负载均衡;
[0049]b.所有客户端的拥有的并发连接数不能超过10;
[0050]c.所有客户端新建连接的速度不能超过5;
[0051]d.已经访问过的客户端不能因为过载原因被拒绝服务。
[0052]首先可以定义HTTP的虚拟服务,下面涉及到的命令是在Array APV 8600设备操作系统里运行的。
[0053]定义一个虚拟服务,该虚拟服务类型为HTTP类型,IP地址是220.57.54.88,端口是80。
[0054]sib virtual http httpvs 220.57.54.88 80
[0055]定义三个真实服务,类型都为http,IP分别为:
[0056]10.3.1.20,
[0057]10.3.1.21,
[0058]10.3.1.22,
[0059]端口均为80 (由于是标准端口,可以略去不写)
[0060]sib real http httprl 10.3.1.20
[0061]sib real http httpr2 10.3.1.21
[0062]sib real http httpr3 10.3.1.22
[0063]定义一个真实服务组,组是真实服务的集合,一般来讲到一个组的服务请求会均勻的分配到该组内的所有真实服务上去。方法是ic (insert cookie)这样一个交易里后续所有请求都会带有Array APV 8600设备产生的cookie。且cookie里记录了本次为该请求服务的真实服务的标识。下次带相同cookie值的请求会被分配到想到的真实服务上去。
[0064]sib group method httpgl ic
[0065]把真实服务加入到刚刚建立的组内。这时该组内有三个真实服务。
[0066]sib group member httpgl httprl
[0067]sib group member httpgl httpr2
[0068]sib group member httpgl httpr3
[0069]使用策略关联虚拟服务和服务组,Array的负载均衡设备提供了很多负载均衡的策略,虚拟服务根据不同的策略把请求分配给不同的服务组。这里为了和前面提到的ic方法配置,策略需要使用icookie。当指定的cookie名字出现后,则交给前面定义的服务组处理。同时定义一个default (默认)策略,这样第一次来访问的都会通过default策略交给服务组,之后的访问会通过icookie策略。
[0070]sib policy icookie ic-policy httpvs httpgl I
[0071]sib policy default httpvs httpgl[0072]基础虚拟服务已经搭建好了,下面开始设置高级访问控制。首先定义两个高级访问规则,rulel是规则的名字,限制范围是全网(0.0.0.0/0.0.0.0),类型为逐IP限制,最大并发连接数10个。rule2也是全网限制,每个IP最大连接速度是每秒5个。
[0073]acl rule rulel 0.0.0.00.0.0.0 per—ip concurrent 10
[0074]acl rule rule2 0.0.0.00.0.0.0 per—ip cps 5
[0075]但这只是定义了高级访问规则,并没有生效,如果想生效,则执行下面的CU (command-line interface,命令行界面),把这两个高级访问规则应用到虚拟服务httpvs 上去。
[0076]acl apply rule virtual rulelhttpvs
[0077]acl apply rule virtual rule2httpvs
[0078]至此,就完成了用户的所有需求。对HTTP能特殊处理是由于i cook i e的策略和ic这种方法的配合使用。由于cookie是APV设备插入的,所以下次请求到来的时候,能分辨出该客户端已经访问过,所以能据此做出接受或者拒绝服务的决定。
[0079]虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
【权利要求】
1.一种基于负载均衡的高级访问控制系统,它包括负载均衡设备硬件、操作系统和系统应用模块,其特征是系统应用模块包含有独立于操作系统的高级访问控制模块,所述的高级访问模块中有预先定义的高级访问控制规则,所述的高级访问控制模块用于接收来自操作系统的服务数据包,并应用预先定义的高级访问规则,生成该服务数据包的高级访问控制数据,所述的高级访问控制模块据此判断是否允许该服务数据包的访问。
2.一种基于负载均衡的高级访问控制方法,包括以下步骤: 步骤一,搭建系统网络,并根据系统需求在高级访问模块中预先定义高级访问控制规则; 步骤二,当操作系统模块收到来自客户端的服务连接的请求后,将服务数据包送至高级访问控制模块; 步骤三,高级访问控制模块应用上述预先定义的高级访问规则,生成该服务数据包的高级访问控制数据,并据此判断是否允许该服务连接的访问。
3.根据权利要求2所述的一种基于负载均衡的高级访问控制方法,其特征在于,上述步骤一中预先定义高级访问规则包括以下步骤: 步骤四,预先定义对用户范围的限制规则,包括设置白名单的步骤。
4.根据权利要求2所述的一种基于负载均衡的高级访问控制方法,其特征在于,上述预先定义高级访问规则还包括: 步骤五,预先定义在并发连接数和新建连接速度之间二选一的限制规则。
5.根据权利要求2所述的一种基于负载均衡的高级访问控制方法,其特征在于,上述预先定义高级访问规则还包括: 步骤六,预先定义逐IP限制与子网限制的规则。
6.根据权利要求2所述的一种基于负载均衡的高级访问控制方法,其特征在于,对于HTTP服务的高级访问控制,还包括以下步骤: 步骤七,当并发连接数和新建连接速度超载时,高级访问控制模块通过解析HTTP交易的完整性标识判断哪些连接是“基于已有交易的后续新建连接”,是则直接通过,否则被告知拒绝访问。
【文档编号】H04L29/08GK103685329SQ201210317104
【公开日】2014年3月26日 申请日期:2012年8月30日 优先权日:2012年8月30日
【发明者】周清志, 贝少锋, 张俊政 申请人:华耀(中国)科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1