《一种集群系统对报文进行负载分担的方法和系统.pdf》由会员分享,可在线阅读,更多相关《一种集群系统对报文进行负载分担的方法和系统.pdf(11页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104158756A43申请公布日20141119CN104158756A21申请号201410394426X22申请日20140812H04L12/803201301H04L12/46200601H04L12/71520130171申请人浙江宇视科技有限公司地址310051浙江省杭州市滨江区西兴街道江陵路88号10幢南座111层72发明人周迪王军任俊峰杜超华74专利代理机构北京博思佳知识产权代理有限公司11415代理人林祥54发明名称一种集群系统对报文进行负载分担的方法和系统57摘要本发明提供一种对报文负载分担的方法,包括位于第一网络的每一个集群服务器分别向位于第二网络的L。
2、NS设备请求建立L2TP连接,且均请求LNS将第一IP地址分配给自身;LNS与每一个集群服务器建立L2TP连接,且给每一个集群服务器分配所述第一IP地址;且LNS设置自身主动向目的地址为第一IP地址的设备通信的默认L2TP隧道为与集群服务器中的主服务器建立的L2TP隧道;LNS接收到目的地址为第一IP的报文后,将该报文从默认的L2TP隧道发送;主服务器对接收到该L2TP隧道报文解封装获得目的IP为第一IP的报文,根据预设的负载分担策略,将该报文发送给第一集群服务器处理。本发明方案实现了对终端设备发送报文的负载分担。51INTCL权利要求书1页说明书6页附图3页19中华人民共和国国家知识产权局1。
3、2发明专利申请权利要求书1页说明书6页附图3页10申请公布号CN104158756ACN104158756A1/1页21一种对报文进行负载分担的方法,该方法应用于集群系统和L2TPLNS设备上,该集群系统位于第一网络,包括若干集群服务器,该L2TPLNS设备位于第二网络,其特征在于,该方法包括位于第一网络的每一个集群服务器分别向位于第二网络的L2TPLNS设备请求建立L2TP连接,并且均请求L2TPLNS设备将第一IP地址分配给自身;L2TPLNS设备与每一个集群服务器建立L2TP连接,并且给每一个集群服务器分配所述第一IP地址;并且L2TPLNS设备设置自身主动向目的地址为第一IP地址的设备。
4、通信的默认L2TP隧道为与集群服务器中的主服务器建立的L2TP隧道;L2TPLNS设备接收到目的地址为第一IP地址的报文后,将该报文进行L2TP隧道封装后从所述默认的L2TP隧道进行发送;所述主服务器接收到该L2TP隧道报文后进行解封装获得内层报文的目的IP为第一IP地址,根据预设的负载分担策略,将该报文发送给第一集群服务器进行处理。2如权利要求1所述的方法,其特征在于,该第一集群服务器将该报文处理完成后发送回应报文,该回应报文经过L2TP隧道封装后从该第一集群服务器与L2TPLNS设备建立的L2TP隧道进行发送。3如权利要求1所述的方法,其特征在于,每一个集群服务器在向L2TPLNS设备请求。
5、建立L2TP连接时,告知L2TPLNS设备自身在集群系统中的主从身份,以便L2TPLNS设备确定与主服务器建立的L2TP隧道。4如权利要求1所述的方法,其特征在于,集群系统中的每一个集群服务器还具有面向第一网络中的终端设备提供负载分担服务的第二虚拟IP地址。5一种对报文进行负载分担的系统,该系统包括集群系统和L2TPLNS设备,该集群系统位于第一网络,包括若干集群服务器,该L2TPLNS设备位于第二网络,其特征在于,位于第一网络的每一个集群服务器分别向位于第二网络的L2TPLNS设备请求建立L2TP连接,并且均请求L2TPLNS设备将第一IP地址分配给自身;L2TPLNS设备与每一个集群服务器。
6、建立L2TP连接,并且给每一个集群服务器分配所述第一IP地址;并且L2TPLNS设备设置自身主动向目的地址为第一IP地址的设备通信的默认L2TP隧道为与集群服务器中的主服务器建立的L2TP隧道;L2TPLNS设备接收到目的地址为第一IP地址的报文后,将该报文进行L2TP隧道封装后从所述默认的L2TP隧道进行发送;所述主服务器接收到该L2TP隧道报文后进行解封装获得内层报文的目的IP为第一IP地址,根据预设的负载分担策略,将该报文发送给第一集群服务器进行处理。6如权利要求5所述的系统,其特征在于,该第一集群服务器将该报文处理完成后发送回应报文,该回应报文经过L2TP隧道封装后从该第一集群服务器与。
7、L2TPLNS设备建立的L2TP隧道进行发送。7如权利要求5所述的系统,其特征在于,每一个集群服务器在向L2TPLNS设备请求建立L2TP连接时,告知L2TPLNS设备自身在集群系统中的主从身份,以便L2TPLNS设备确定与主服务器建立的L2TP隧道。8如权利要求5所述的系统,其特征在于,每一个集群服务器还具有面向第一网络中的终端设备发送的报文进行负载分担的第二虚拟IP地址。权利要求书CN104158756A1/6页3一种集群系统对报文进行负载分担的方法和系统技术领域0001本发明涉及集群技术领域,尤其涉及一种集群系统对报文进行负载分担的方法和系统。背景技术0002随着视频监控业务的广泛应用,。
8、视频管理服务器VM所需管理的前端摄像机数量呈几何级在增长,从最初的几十台前端设备到现在的几万台甚至是几十万台前端设备。单台视频管理服务器已经无法满足管理得性能要求,在这种应用背景下,集群系统应运而生。0003集群系统采用的负载分担技术,一般都是以直接路由DIRECTROUTING,以下简称DR的方式进行负载分担。请参图1,该集群系统包括三个服务器服务器1SERVER1、服务器2SERVER2、服务器3SERVER3。集群系统的服务器除了本身的IP地址,都需要额外的再配置VIP虚拟IP,即集群系统对外提供服务的IP地址。比如说图1中,服务器1、服务器2和服务器3的VIP均为1111。这三个服务器。
9、另外,在图1的组网图中,在连线交叉的地方省略了二层交换机,这里共需要两个二层交换机。0004下面再结合图2介绍下以直连路由方式进行负载分担的集群系统的工作流程。0005步骤1主机HOST以VIP为目的地址发送服务请求报文。0006在图1所示的组网里表现为CLIENT1或CLIENT2以VIP1111为目的IP地址发送服务请求。0007步骤2路由设备GENERALDEVICE收到请求后转发给负载均衡服务器。0008GENERALDEVICE在图1中表现为路由器ROUTER。ROUTER收到请求报文后,根据目的IP地址进行转发。由于集群中的服务器的VIP均为1111,所以需要选举一个主服务器来接收。
10、外部设备发送的报文。该主服务器通常也就是负载均衡服务器。主服务器需要对外部设备发送的针对VIP1111的ARP请求,以自身的MAC地址进行应答。这样目的IP为1111的报文将会被发送到该主服务器,即负载均衡服务器。0009步骤3负载均衡服务器收到请求后,借助调度算法计算出应该将请求分发给哪台SERVER。0010比如说,根据集群系统中服务器的负荷量进行调度;根据请求的业务类型来进行调度。0011步骤4负载均衡服务器分发报文。0012负载均衡服务器在确定发给集群中哪台服务器后,在封装报文时,目的IP依旧为VIP,目的MAC需修改为该台要分发的服务器的MAC地址,这样就能保证请求报文能顺利转发给相。
11、应的服务器进行处理。0013步骤5该服务器接收到请求报文,处理该请求报文并返回响应报文给GENERALDEVICE。0014该响应报文的目的IP为主机HOST的IP,直接发往路由设备GENERALDEVICE。在图1所示的组网里表现为某台SERVER收到负载均衡服务器转发过来的请求后将应答报文说明书CN104158756A2/6页4发给ROUTER。0015步骤6路由设备GENERALDEVICE收到响应报文后,直接将报文转发给HOST。在图1所示的组网里表现为ROUTER将SERVER发过来的应答报文按照目的IP直接转发给CLIENT1或CLIENT2。0016但是在一些特定的应用场景下,集。
12、群系统与CLIENT设备处于不同的公私网络,需要借助于L2TP的技术,来保证业务互通。目前应用VPN技术都需要采用路由器等网络设备,由这些网络设备来进行L2TP的连通与处理,这对方案成本的增加以及组网适应性等都有很大的挑战。所以集群系统如何与L2TP技术进行融合来实现CLIENT与SERVER的交互,即集群系统如何对于不同CLIENT发送的报文进行负载分担是本发明需要解决的问题。发明内容0017有鉴于此,本发明提供一种对报文进行负载分担的方法和系统。0018该方法应用于集群系统和L2TPLNS设备上,该集群系统位于第一网络,包括若干集群服务器,该L2TPLNS设备位于第二网络,该方法包括位于第。
13、一网络的每一个集群服务器分别向位于第二网络的L2TPLNS设备请求建立L2TP连接,并且均请求L2TPLNS设备将第一IP地址分配给自身;L2TPLNS设备与每一个集群服务器建立L2TP连接,并且给每一个集群服务器分配所述第一IP地址;并且L2TPLNS设备设置自身主动向目的地址为第一IP地址的设备通信的默认L2TP隧道为与集群服务器中的主服务器建立的L2TP隧道;L2TPLNS设备接收到目的地址为第一IP地址的报文后,将该报文进行L2TP隧道封装后从所述默认的L2TP隧道进行发送;所述主服务器接收到该L2TP隧道报文后进行解封装获得内层报文的目的IP为第一IP地址,根据预设的负载分担策略,将。
14、该报文发送给第一集群服务器进行处理。0019优选地,该第一集群服务器将该报文处理完成后发送回应报文,该回应报文经过L2TP隧道封装后从该第一集群服务器与L2TPLNS设备建立的L2TP隧道进行发送。0020优选地,每一个集群服务器在向L2TPLNS设备请求建立L2TP连接时,告知L2TPLNS设备自身在集群系统中的主从身份,以便L2TPLNS设备确定与主服务器建立的L2TP隧道。0021优选地,集群系统中的每一个集群服务器还具有面向第一网络中的终端设备提供负载分担服务的第二虚拟IP地址。0022本发明提供的一种对报文进行负载分担的系统包括集群系统和L2TPLNS设备,该集群系统位于第一网络,包。
15、括若干集群服务器,该L2TPLNS设备位于第二网络,位于第一网络的每一个集群服务器分别向位于第二网络的L2TPLNS设备请求建立L2TP连接,并且均请求L2TPLNS设备将第一IP地址分配给自身;L2TPLNS设备与每一个集群服务器建立L2TP连接,并且给每一个集群服务器分配所述第一IP地址;并且L2TPLNS设备设置自身主动向目的地址为第一IP地址的设备通信的默认L2TP隧道为与集群服务器中的主服务器建立的L2TP隧道;L2TPLNS设备接收到目的地址为第一IP地址的报文后,将该报文进行L2TP隧道封装后从所述默认的L2TP隧道进行发送;所述主服务器接收到该L2TP隧道报文后进行解封装获得内。
16、层报文的目的IP为第一IP地址,根据预设的负载分担策略,将该报文发送给第一集群服务器进行处理。说明书CN104158756A3/6页50023优选地,该第一集群服务器将该报文处理完成后发送回应报文,该回应报文经过L2TP隧道封装后从该第一集群服务器与L2TPLNS设备建立的L2TP隧道进行发送。0024优选地,每一个集群服务器在向L2TPLNS设备请求建立L2TP连接时,告知L2TPLNS设备自身在集群系统中的主从身份,以便L2TPLNS设备确定与主服务器建立的L2TP隧道。0025优选地,每一个集群服务器还具有面向第一网络中的终端设备发送的报文进行负载分担的第二虚拟IP地址。0026相较于现。
17、有技术,本发明提供的方案融合了集群系统与L2TP的隧道机制,实现了集群系统中的服务器与隧道对端设备所连接的终端设备的交互,达到了对终端设备发送的报文的负载分担。附图说明0027图1是现有的一种集群系统网络图。0028图2是现有的集群系统工作原理图。0029图3是本发明的一种集群系统网络图。0030图4是本发明实施例流程图。0031图5是应用本发明方案的集群系统网络图。具体实施方式0032L2TP隧道机制的应用,主要是因为集群系统和需要与该集群系统进行通信的终端设备位于不同的网络。比如说集群系统位于NAT1设备构建的私网1中,终端设备位于NAT2设备构建的私网2中,此时就可以通过L2TP隧道建立。
18、起集群系统与终端设备之间的隧道链路。请参图3,集群系统包括节点1、节点2和节点3,这三个节点服务器位于私网1中;若干终端设备位于私网2中,这些终端设备可以是网络摄像机等设备,通常数量众多,需要由集群系统中的服务器负载分担地给它们提供服务。私网2中存在一设备作为L2TP网络服务器LNS,比如说在私网2中的路由器上实现LNS的功能,或者在作为监控网络一部分的私网2中的媒体交换服务器MS上实现LNS的功能。节点1、节点2和节点3作为LAS分别向该LNS设备发起L2TP连接,建立L2TP隧道。终端设备通过L2TP隧道已经能实现和节点1、节点2以及节点3的通信,但是集群本身所具有的负载分担的特性此时却无。
19、法利用。0033针对上述问题,发明人设计了如下的方案来实现集群服务器与LNS设备建立L2TP隧道链路下,集群服务器负载分担地为LNS设备侧的终端设备提供服务。0034请参图4所示的本发明实施例流程图。0035S41、位于第一网络的每一个集群服务器分别向位于第二网络的L2TPLNS设备请求建立L2TP连接,并且均请求L2TPLNS设备将第一IP地址分配给自身。0036本步骤中需要指出的是,集群系统中的每一个服务器向L2TPLNS设备请求和终端设备通信的IP地址为相同的IP地址,该IP地址也就是集群系统在L2TP的VPN网络中对外提供服务的虚拟IP地址。为了表述方便,这里将该虚拟IP地址称为第一I。
20、P地址。0037由于L2TP建立的是PPP链路,即使集群中每个节点服务器获取相同的IP地址也不会产生地址冲突,因为PPP链路中不存在ARP这样的协议报文。说明书CN104158756A4/6页60038S42、L2TPLNS设备与每一个集群服务器建立L2TP连接,并且给每一个集群服务器分配所述第一IP地址;并且L2TPLNS设备设置自身主动向目的地址为第一IP地址的设备通信的默认L2TP链路为与集群服务器中的主服务器建立的L2TP链路。0039对于L2TP的LNS设备而言,多个客户端来请求建立连接,并且都希望获得相同的IP地址,L2TP自身的机制是允许建立连接的,所以L2TPLNS设备会与每一。
21、个集群服务器建立L2TP连接,并且给每一个集群服务器分配它们所希望获取的IP地址。0040虽然从集群服务器到LNS设备方向,多个集群服务器可以同时向LNS设备发送报文,但从LNS设备到集群服务器方向,LSN设备只能与集群服务器中的一个节点服务器进行通信。所以,在本步骤中,在LNS设备上,需要固定的设置LNS设备与集群系统进行通信的集群服务器。通常地,集群系统中的主服务器将被选做与LNS设备进行通信的服务器,即当LNS需要主动与集群系统进行通信时,报文都只走LNS与集群服务器中主节点建立的隧道。在确定哪条L2TP链接是与主节点建立的连接时,可以按照下述方法判断集群系统的每一个服务器在请求L2TP。
22、连接,告知LNS设备自身在集群系统中的主从身份;据此,LNS设备在和主服务器建立L2TP连接后,就设置该条L2TP连接为默认的LNS设备与集群系统通信的隧道链路。若集群系统中的各服务器都是对等的,即没有性能、功能等方面的任何差异,任何一台服务器都可以作为主服务器时,LNS设备可以按照一定的策略,比如说将第一个与其建立L2TP链接的服务器作为主服务器,对应的该L2TP链路就被设置为默认的LNS设备与集群系统通信的隧道链路。后续,当有终端设备封装目的IP为集群系统在L2TP的VPN网络中对外提供的虚拟IP地址的报文时,LNS设备将通过上述默认的隧道链路来发送该终端设备的报文。0041S43、和集群。
23、服务器不位于同一网络的终端设备请求集群系统的服务器提供服务,目的地址为第一IP地址的请求报文发送到L2TPLNS设备。0042如前文所述,本步骤中的终端设备在请求集群系统的服务器提供服务时,所要封装的服务请求报文的目的IP地址为集群系统在L2TP的VPN网络中对外提供的虚拟IP地址,该目的IP地址的报文必然先被转发到LNS设备。0043S44、L2TPLNS设备接收到目的地址为第一IP地址的报文后,将该报文进行L2TP隧道封装后从所述默认的L2TP链路进行发送。0044本步骤中,隧道封装后的内层报文的目的IP地址为第一IP地址,即上述虚拟IP地址,源IP地址为终端设备的IP地址。0045S45。
24、、主服务器接收到该L2TP隧道报文后进行解封装获得内层报文的目的IP为第一IP地址后,根据预设的负载分担策略,将该报文发送给第一集群服务器进行处理。0046本步骤中的负载分担策略可以是逐包调度策略、加权调度策略等等,对此本发明没有限制。在根据负载分担策略确定由集群系统中的哪个服务器进行报文处理后,主服务器将解封装后的内层报文转发给该选定的服务器。为表述方便,这里将该选定的服务器称为第一集群服务器。0047S46、该第一集群服务器将该报文处理完成后发送回应报文,该回应报文经过L2TP隧道封装后从该第一集群服务器与L2TPLNS设备建立的L2TP链路进行发送。0048第一集群服务器接收到上述终端设。
25、备的报文后进行处理,然后回复终端设备,该回应报文直接走该第一集群服务器与LNS设备建立的隧道链路。第一集群服务器封装的隧说明书CN104158756A5/6页7道报文的内层目的IP地址为终端设备的IP地址,内层报文的源IP地址为上述虚拟IP地址。这里,回应报文不再经过集群系统的主节点服务器,这样处理可以最大限度的提高工作效率。0049S47、L2TPLNS设备接收到第一集群服务器发送的回应报文后,将该报文解封装后转发给上述终端设备。0050经过隧道发送的回应报文到达LNS设备后,LNS将对其进行解封装,然后根据终端设备的IP地址将该报文发送给终端设备。0051至此,对经过L2TP连接的集群系统。
26、与终端设备的交互流程介绍完毕。下面在通过一个具体的例子来进一步阐述本发明实施例。0052请参图5,一台终端设备IPC通过L2TP隧道连接到LNS上,建立一个PPP链路隧道,链路两端的IP地址假设分别是10001和10002。这里,终端设备和LNS设备并不像图3一样位于同一个网络,所以在终端设备和LNS设备间也建立了L2TP连接。集群系统中的各个节点服务器也都分别与LNS设备建立了连接,集群系统中的各个节点服务器建立连接获取的IP地址都是10004,即集群系统的虚拟IP地址VIP。依据本发明方案,需要在LNS设备上设置当LNS要转发目的地址为10004的数据报文时,都默认只走一条L2TP连接,该。
27、连接是LNS与集群服务器中主节点建立的L2TP连接。0053假设该IPC通过L2TP隧道连接,访问集群系统所提供的服务。IPC发出的数据报文源IP地址是10001,目的IP地址是10004。由于在IPC上去往10004的路由是走L2TP隧道连接,数据报文被转发到L2TP的LNS上,LNS设备根据路由发现去往10004的路由有3条L2TP隧道连接。根据在LNS设备上的设置,选择3条隧道连接中与主节点服务器的连接。如此一来,来自IPC的数据报文被转发到了集群系统中的主节点服务器上。集群系统中的主节点服务器把收到的隧道报文拆除掉L2TP头后,获得了目的IP地址是10004,源IP地址是10001的内。
28、层报文。由于目的地址是10004的报文需要进行负载均衡,于是集群系统中的主节点服务器根据一定的调度策略确定处理该报文的集群服务器。这里假设主节点服务器选中了节点1,由节点1服务器为此次IPC发起的请求进行服务。集群系统中的主节点服务器向选中的节点1服务器发送该IPC的报文,封装的以太网报文的目的MAC地址为节点1的MAC地址。该报文根据基本的二层转发被节点1收到。节点1的处理如下节点1收到报文后,解开报文发现此报文的目的IP是10004,而节点1服务器有一个接口的IP地址就是10004,于是节点1会把这个报文上送到应用层程去处理,处理完发回应报文。此时回应报文的目的IP是之前来的报文的源IP地。
29、址,即10001,回应报文的源IP地址是10004。节点1根据回应报文的目的IP地址查询本地路由,该回应报文从节点1与LNS设备建立的L2TP隧道连接出去,于是回应报文按照正常的转发流程被送往LNS设备。LNS设备也继续根据报文的目的IP地址10001进行查路由转发送往IPC。值得注意的时,报文来时是经过了群系统中的主节点服务器调度的,而回应报文则直接由节点1发出不再经过集群系统中的主节点服务器,这样可以最大限度的提高工作效率。图5中的实线表示隧道,虚线表示报文路径。0054如果有若干个终端设备请求集群系统提供服务,该若干个终端设备发送的请求报文通过LNS设备与集群服务器建立的L2TP连接被发。
30、送到了集群系统的主节点服务器;该主节点服务器通过预设的策略将各请求报文分别发送给不同的集群服务器进行处理,从而实说明书CN104158756A6/6页8现了负载分担。0055进一步参图5,该集群系统的每个服务器还具有另一个虚拟IP地址VIP1111,该VIP是提供给与集群系统位于同一网络比如说私网1的终端设备服务的。这些终端设备无需进行L2TP拨号操作,直接按照现有的方式访问VIP1111即可。所以本发明方案和现有的集群方案实现了完美的兼容。0056综上,本发明提供的方案融合了集群系统与L2TP的隧道机制,实现了集群系统中的服务器与隧道对端设备所连接的终端设备的交互,达到了对终端设备发送的报文的负载分担。0057以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。说明书CN104158756A1/3页9图1图2说明书附图CN104158756A2/3页10图3图4说明书附图CN104158756A103/3页11图5说明书附图CN104158756A11。