一种负载均衡下的数据交互系统、方法及装置制造方法

文档序号:7984281阅读:208来源:国知局
一种负载均衡下的数据交互系统、方法及装置制造方法
【专利摘要】本申请公开了一种负载均衡下的数据交互系统、方法及装置,用以解决现有技术中SLB的负担较大的问题。该系统包括SLB、RS和转换设备,对于从客户端发往RS的数据包,则由SLB进行处理并发送给RS,对于从RS发往客户端的数据包,则由转换设备进行处理并发送给客户端。由于在本申请实施例提供的上述系统中,从RS中流出的流量并非是通过SLB发送给客户端,而是由转换设备进行处理并发送给客户端的,因此有效的减轻了SLB的负担。
【专利说明】一种负载均衡下的数据交互系统、方法及装置
【技术领域】
[0001]本申请涉及通信【技术领域】,尤其涉及一种负载均衡下的数据交互系统、方法及装置。
【背景技术】
[0002]目前,随着业务量的提高,访问量和数据流量的快速增长,单一的服务器由于其处理能力的瓶颈已经无法满足需求,因此,采用多个服务器所构成的服务器集群,并利用负载均衡技术将大量的数据流量分担到集群中的多个服务器上的方法应运而生。
[0003]图1为现有技术中负载均衡下的数据交互系统结构示意图,如图1所示,在现有技术中,客户端发送的用于访问服务器的第一数据包先经过负载均衡服务器(Server LoadBlancer, SLB),由SLB选择为该客户端服务的后台服务器(Real Server, RS),并将客户端发送的第一数据包发送给选择出的RS,RS接收到该第一数据包后,同样通过SLB向客户端返回第二数据包,完成一次客户端与RS的数据交互。
[0004]由上述过程可以看出,进入RS的流量首先要经过SLB,由SLB采用一定的负载均衡策略选择为客户端服务的RS,被选择的RS再通过SLB与客户端进行数据交互。需要说明的是,虽然被选择的RS是通过SLB与客户端进行数据交互的,也即从被选择的RS中流出的流量也是通过SLB到达客户端的,但是SLB对于从RS中流出的流量却无需进行负载均衡处理。
[0005]然而,对于RS而言,进入RS的流量往往远小于从RS中流出的流量,这些从RS中流出的大量流量也要经过SLB才能到达客户端,就会增大SLB的的负担。

【发明内容】

[0006]本申请实施例提供一种负载均衡下的数据交互系统、方法及装置,用以解决现有技术中SLB的负担较大的问题。
[0007]本申请实施例提供的一种负载均衡下的数据交互系统,包括:
[0008]负载均衡服务器SLB,用于接收客户端发送的第一数据包,根据预设的负载均衡策略选择后台服务器RS,将所述第一数据包中携带的目的地址调整为选择出的RS的真实网络互联协议IP地址,得到第二数据包,并将所述第二数据包发送给选择出的RS,其中,所述客户端发送的所述第一数据包中携带的目的地址为所述SLB的虚拟IP地址;
[0009]RS,用于在接收到第二数据包后,生成第三数据包并发送给所述客户端,所述第三数据包中携带的源地址为所述RS自身的真实IP地址;
[0010]转换设备,用于拦截所述RS发送的所述第三数据包,并将所述第三数据包中携带的源地址调整为预先记录的所述SLB的虚拟IP地址,得到第四数据包,将所述第四数据包发送给所述客户端。
[0011]本申请实施例提供的一种负载均衡下的数据交互方法,包括:
[0012]转换设备拦截后台服务器RS根据接收到的第二数据包向客户端发送的第三数据包,所述第三数据包中携带的源地址为所述RS自身的真实网络互联协议IP地址;其中,所述第二数据包为:负载均衡服务器SLB接收到所述客户端发送的目的地址为所述SLB的虚拟IP地址的第一数据包后,根据预设的负载均衡策略选择所述RS,并将所述第一数据包中携带的目的地址调整为所述RS的真实IP地址,得到的第二数据包;
[0013]所述转换设备将拦截到的所述第三数据包中的源地址调整为预先记录的所述SLB的虚拟IP地址,得到第四数据包;并
[0014]将所述第四数据包发送给所述客户端。
[0015]本申请实施例提供的一种负载均衡下的数据交互装置,包括:
[0016]第一拦截模块,用于拦截后台服务器RS根据接收到的第二数据包向客户端发送的第三数据包,所述第三数据包中携带的源地址为所述RS自身的真实网络互联协议IP地址;其中,所述第二数据包为:负载均衡服务器SLB接收到所述客户端发送的目的地址为所述SLB的虚拟IP地址的第一数据包后,根据预设的负载均衡策略选择所述RS,并将所述第一数据包中携带的目的地址调整为所述RS的真实IP地址,得到的第二数据包;
[0017]调整模块,用于将拦截到的所述第三数据包中的源地址调整为预先记录的所述SLB的虚拟IP地址,得到第四数据包;
[0018]第一发送模块,用于将所述第四数据包发送给所述客户端。
[0019]本申请实施例提供一种负载均衡下的数据交互系统、方法及装置,该系统包括SLB、RS和转换设备,对于从客户端发往RS的数据包,则由SLB进行处理并发送给RS,对于从RS发往客户端的数据包,则由转换设备进行处理并发送给客户端。由于在本申请实施例提供的上述系统中,从RS中流出的流量并非是通过SLB发送给客户端,而是由转换设备进行处理并发送给客户端的,因此有效的减轻了 SLB的负担。
【专利附图】

【附图说明】
[0020]图1为现有技术中负载均衡下的数据交互系统结构示意图;
[0021]图2为本申请实施例提供的负载均衡下的数据交互系统结构示意图;
[0022]图3为本申请实施例提供的基于图2所示的系统的数据交互过程;
[0023]图4为本申请实施例提供的负载均衡下的数据交互系统详细结构示意图;
[0024]图5为本申请实施例提供的基于图4所示的系统的数据交互详细过程;
[0025]图6为本申请实施例提供的负载均衡下的数据交互装置结构示意图。
【具体实施方式】
[0026]在如图1所示的现有系统中,从客户端发往RS的一个数据包经过SLB的处理后进入RS, RS根据客户端发送的该数据包,向客户端返回另一个数据包时,返回的该另一个数据包也同样要经过SLB才能够返回到客户端,而由于在实际用中,进入RS的流量往往是远小于从RS中流出的流量的,因此现有技术中的系统会增大SLB的负担,尤其是在RS集群的规模较大时,会进一步加剧SLB的负担。而且,由于从RS发往客户端的数据包要经过SLB,因此也需要将RS默认的从RS到RS网关的路由修改为从RS到SLB的路由,进而需要将RS和SLB部署在同一个虚拟局域网(VLAN)中,这也降低了 RS和SLB部署的灵活性。
[0027]本申请实施例提供一种负载均衡下的数据交互系统、方法及装置,该系统包括SLB、RS和转换设备,对于从客户端发往RS的数据包,则由SLB进行处理并发送给RS,对于从RS发往客户端的数据包,则由转换设备进行处理并发送给客户端。由于在本申请实施例提供的上述系统中,从RS中流出的流量并非是通过SLB发送给客户端,而是由转换设备进行处理并发送给客户端的,因此有效的减轻了 SLB的负担。
[0028]下面结合说明书附图,对本申请实施例进行详细描述。
[0029]图2为本申请实施例提供的负载均衡下的数据交互系统结构示意图,具体包括:SLB、若干个RS以及转换设备。
[0030]通过如图2所示的系统,客户端与RS进行数据交互的过程具体如图3所示。图3为本申请实施例提供的基于图2所示的系统的数据交互过程,具体包括以下步骤:
[0031]S301:SLB接收客户端发送的第一数据包。
[0032]其中,客户端发送的第一数据包中携带的目的地址为该SLB的虚拟网络互连协议(Internet Protocol, IP)地址,第一数据包中携带的源地址为该客户端的真实IP地址。
[0033]一般的,对于一个网站,在采用由若干个RS构成的RS集群分担访问该网站的流量时,会对SLB以及每个RS都设置同一个虚拟IP地址,以方便用户的访问。因此,当用户要访问该网站时,先通过其使用的客户端发送目的地址为该虚拟IP地址的第一数据包,从而,SLB就会接收到该第一数据包。
[0034]S302 =SLB根据预设的负载均衡策略选择RS,将第一数据包中携带的目的地址调整为选择出的RS的真实IP地址,得到第二数据包。
[0035]在本申请实施例中,SLB接收到客户端发送的第一数据包后,则根据预设的负载均衡策略,在RS集群中选择出一个用于与该客户端进行数据交互的RS。
[0036]SLB选择出RS后,则基于自身预先记录的RS集群中每个RS的真实IP地址,确定选择出的该RS的真实IP地址,再将第一数据包中携带的目的地址(SLB的虚拟IP地址)调整为选择出的该RS的真实IP地址。此时,SLB已将第一数据包中的目的地址调整为选择出的该RS的真实IP地址,将调整了目的地址后的第一数据包作为第二数据包。
[0037]即,第二数据包中携带的目的地址为选择出的RS的真实IP地址,第二数据包中携带的源地址仍然是第一数据包中携带的源地址,也就是客户端的真实IP地址。
[0038]S303 =SLB将第二数据包发送给选择出的RS。
[0039]S304:RS接收到第二数据包后,生成第三数据包并发送给客户端。
[0040]在本申请实施例中,RS接收到SLB发送的第二数据包后,确定该第二数据包中携带的目的地址是该RS自身的真实IP地址,因此对该第二数据包进行处理,生成第三数据包并返回客户端。
[0041]其中,生成的该第三数据包中携带的源地址为该RS自身的真实IP地址,该第三数据包中携带的目的地址为第二数据包中携带的源地址,也就是客户端的真实IP地址。
[0042]S305:转换设备拦截RS向客户端发送的第三数据包。
[0043]S306:转换设备将第三数据包中携带的源地址调整为预先记录的SLB的虚拟IP地址,得到第四数据包。
[0044]由于客户端发送的第一数据包中携带的目的地址是SLB的虚拟IP地址,源地址是该客户端自身的真实IP地址,因此客户端只处理目的地址是该客户端自身的真实IP地址、且源地址是SLB的虚拟IP地址的数据包,对于源地址不是SLB的虚拟IP地址的数据包,客户端则不会进行处理。从而,如果RS直接将源地址是该RS的真实IP地址的第三数据包发送给客户端,客户端就不会对第三数据包进行处理,导致数据交互的异常。
[0045]因此,在本申请实施例中,转换设备要对RS发送给客户端的第三数据包进行拦截,并基于预先记录的SLB的虚拟IP地址,将第三数据包中携带的源地址调整为该SLB的虚拟IP地址,进而得到第四数据包。
[0046]S卩,第四数据包中携带的源地址是SLB的虚拟IP地址,第四数据包中携带的目的地址仍然是第三数据包中携带的目的地址,也就是客户端的真实IP地址。
[0047]S307:转换设备将第四数据包发送给客户端。
[0048]客户端接收到该第四数据包后,由于该第四数据包中携带的源地址(SLB的虚拟IP地址)与客户端发送的第一数据包中携带的目的地址(SLB的虚拟IP地址)相同,并且,该第四数据包中携带的目的地址(客户端的真实IP地址)与客户端发送的第一数据包中携带的源地址(客户端的真实IP地址)相同,因此对该第四数据包进行处理,从而完成客户端与RS的数据交互。
[0049]通过上述方法,由客户端发往RS的数据包(第一数据包)是由SLB进行处理的,而由RS返回给客户端的数据包(第三数据包)是由转换设备进行处理的,也就是说,从RS中流出的流量绕过了 SLB而通过转换设备到达客户端,因此可以有效的减轻SLB的负担。
[0050]在本申请实施例中,当对SLB以及RS集群中的每个RS只设置一个虚拟IP地址时,则可以直接将该虚拟IP地址预置在转换设备中,在图3所示的步骤S306中,转换设备可以直接基于预置的虚拟IP地址调整第三数据包的源地址。
[0051]然而,考虑到在实际应用中,往往存在两个甚至两个以上的网站共用一个RS集群的情况,这种情况下,为SLB以及每个RS设置的虚拟IP地址也会存在两个或两个以上。例如,为SLB以及每个RS设置的虚拟IP地址包括VIPl和VIP2,此时,如果直接将VIPl和VIP2预置在转换设备中,则在图3所示的步骤S306中,转换设备在基于预先记录的虚拟IP地址调整第三数据包中携带的源地址时,就不能确定究竟采用VIPl和VIP2中的哪一个来调整,如果采用的虚拟IP地址不正确,则会影响客户端与RS进行数据交互的准确性。
[0052]因此,为了保证客户端与RS进行数据交互的准确性,在本申请实施例中,SLB在接收到客户端发送的第一数据包后,对第一数据包进行调整,得到第二数据包的方法具体为:SLB提取第一数据包中作为目的地址携带的该SLB的虚拟IP地址,提取第一数据包中作为目的端口号携带的该SLB的公共端口号,并将提取的该虚拟IP地址和公共端口号插入到第一数据包的TCP选项中,再将第一数据包中携带的目的地址调整为选择出的RS的真实IP地址,将第一数据包中携带的目的端口号调整为选择出的RS的端口号,得到第二数据包。
[0053]其中,客户端发送的第一数据包中除了携带源地址和目的地址之外,还携带源端口号、目的端口号以及协议信息,第一数据包携带的源端口号为该客户端的端口号,目的端口号为SLB的公共端口号。
[0054]SLB通过上述方法得到的第二数据包中携带的目的地址为选择出的RS的真实IP地址,目的端口号为选择出的RS的端口号,源地址仍然是客户端的真实IP地址,源端口号仍然是该客户端的端口号,协议信息也仍然不变,并且,第二数据包的TCP选项中插入有SLB的虚拟IP地址和公共端口号。SLB得到该第二数据包后,将该第二数据包发送给RS。
[0055]进一步的,转换设备预先记录SLB的虚拟IP地址的方法具体为:转换设备拦截SLB向RS发送的第二数据包,根据第二数据包确定该客户端与该RS进行数据交互的数据流标识信息,并记录第二数据包的TCP选项中插入的虚拟IP地址和公共端口号,建立确定的该数据流标识信息与记录的该虚拟IP地址和公共端口号的对应关系。
[0056]其中,确定的数据流标识信息包括:第二数据包中携带的源地址、目的地址、源端口号、目的端口号、协议信息中的至少一种。
[0057]较佳的,可以采用第二数据包中携带的源地址、目的地址、源端口号、目的端口号以及协议信息,作为该客户端与该RS进行数据交互的数据流标识信息。也即,确定包含第二数据包中携带的源地址、目的地址、源端口号、目的端口号以及协议信息的五元组,采用该五元组作为数据流标识信息。后续则可以记录第二数据包的TCP选项中插入的虚拟IP地址和公共端口号,并建立该五元组与该虚拟IP地址和公共端口号的对应关系。
[0058]转换设备建立了确定的数据流标识信息与虚拟IP地址和公共端口号的对应关系后,则可以将拦截的该第二数据包转发给RS,由RS根据该第二数据包继续进行后续处理。
[0059]相应的,转换设备采用上述方法记录SLB的虚拟IP地址时,将拦截到的RS发往客户端的第三数据包中的源地址调整为预先记录的该SLB的虚拟IP地址,得到第四数据包的方法具体为:转换设备根据拦截的该RS发送的第三数据包确定数据流标识信息,查找与根据该第三数据包确定出的数据流标识信息对应的虚拟IP地址和公共端口号,并将第三数据包中携带的源地址调整为查找到的虚拟IP地址,将第三数据包中携带的源端口号调整为查找到的公共端口号,得到第四数据包。
[0060]图4为本申请实施例提供的负载均衡下的数据交互系统详细结构示意图,具体包括:SLB、SLB网关、若干个RS、转换设备、RS网关。
[0061]图5为本申请实施例提供的基于图4所示的系统的数据交互详细过程,具体包括以下步骤:
[0062]S501 =SLB通过SLB网关接收客户端发送的第一数据包。
[0063]例如,假设该SLB的虚拟IP地址为VIP1,SLB的公共端口号为Np,客户端的真实IP地址为IPc,客户端的端口号为Ne,则SLB接收到的第一数据包中携带的源地址为IPc,目的地址为VIP1,源端口号为Ne,目的端口号为Np,协议信息为客户端所采用的协议信息。
[0064]S502 =SLB根据预设的负载均衡策略选择RS,提取第一数据包中作为目的地址携带的该SLB的虚拟IP地址,以及作为目的端口号携带的该SLB的公共端口号,将提取的虚拟IP地址和公共端口号插入到第一数据包的TCP选项中,将第一数据包中携带的目的地址调整为选择出的RS的真实IP地址,将第一数据包中携带的目的端口号调整为选择出的RS的端口号,得到第二数据包。
[0065]继续沿用上例,SLB接收到第一数据包后,根据预设的负载均衡策略选择RS,提取第一数据包的目的地址和目的端口号,也即提取VIPl和Np,将提取的VIPl和Np插入到第一数据包的TCP选项中。假设SLB选择的RS的真实IP地址为IPr,该RS的端口号为Nr,则SLB再将第一数据包的目的地址调整为IPr,将第一数据包的目的端口号调整为Nr,从而得到第二数据包。
[0066]得到的第二数据包中携带的源地址为IPc,目的地址为IPr,源端口号为Ne,目的端口号为Nr,协议信息不变,并且TCP选项中插入了 VIPl和Np。
[0067]S503 =SLB将第二数据包发送给选择出的RS。[0068]S504:转换设备拦截SLB向RS发送的第二数据包。
[0069]S505:转换设备根据第二数据包确定该客户端与该RS进行数据交互的数据流标识信息,记录第二数据包的TCP选项中插入的虚拟IP地址和公共端口号,建立确定的数据流标识信息与记录的该虚拟IP地址和公共端口号的对应关系。
[0070]继续沿用上例,转换设备将携带的源地址为IPc、目的地址为IPr、源端口号为Ne、目的端口号为Nr、且TCP选项中插入了 VIPl和Np的第二数据包拦截后,将包括该第二数据包中携带的源地址(IPc)、目的地址(IPr)、源端口号(Ne)、目的端口号(Nr)以及协议信息的五元组确定为该客户端与该RS进行数据交互的数据流标识信息,也即,采用该五元组唯一标识该客户端与该RS之间的数据流。然后,转换设备再记录第二数据包的TCP选项中插入的虚拟IP地址和公共端口号,也即记录VIPl和Np,并建立上述五元组与记录的VIPl和Np之间的对应关系。
[0071]S506:转换设备将第二数据包转发给RS。
[0072]S507:RS根据接收到的第二数据包,生成第三数据包,并发送给RS网关。
[0073]继续沿用上例,RS接收到第二数据包后,确定第二数据包中携带的目的地址是IPr,也就是该RS自身的真实IP地址,并且目的端口号是Nr,也就是该RS的端口号,因此根据该第二数据包生成第三数据包。
[0074]生成的该第三数据包的源地址为该RS自身的真实IP地址,也即IPr,目的地址为第二数据包的源地址,也即客户端的真实IP地址(IPC),源端口号为该RS自身的端口号,也即Nr,目的端口号为第二数据包的源端口号,也即Ne,协议信息仍然不变。
[0075]生成上述第三数据包后,则RS可以按照默认的从RS到RS网关的路由,将该第三数据包发送给RS网关,使RS网关根据该第三数据包中携带的目的地址(IPc)以及目的端口号(Ne ),将该第三数据包发送给客户端。
[0076]S508:转换设备拦截RS发送给RS网关的第三数据包。
[0077]S509:转换设备根据拦截的第三数据包确定数据流标识信息,查找与根据该第三数据包确定出的数据流标识信息对应的虚拟IP地址和公共端口号。
[0078]继续沿用上例,由于在上述步骤S505中,转换设备记录的与VIPl和Np对应的数据流标识信息为包括IPc、IPr、NC、Nr、协议信息在内的五元组,而根据第三数据包确定的数据流标识信息仍然是上述五元组,因此,转换设备据此可以确定该第三数据包是属于以上述五元组所标识的数据流(该客户端与该RS进行数据交互的数据流)中的一个数据包,从而,查找该数据流标识信息对应的虚拟IP地址和公共端口号,也即查找上述五元组对应的虚拟IP地址和公共端口号,查找到的虚拟IP地址和公共端口号即为VIPl和Np。
[0079]S510:转换设备将第三数据包中携带的源地址调整为查找到的虚拟IP地址,将第三数据包中携带的源端口号调整为查找到的公共端口号,得到第四数据包。
[0080]继续沿用上例,由于查找到的虚拟IP地址和公共端口号为VIPl和Np,因此,转换设备将第三数据包中携带的源地址由IPr调整为VIPl,将源端口号由Nr调整为Np,从而得到第四数据包。
[0081]也即,得到的第四数据包中携带的源地址为VIP1,目的地址为IPc,源端口号为Np,目的端口号为Ne,协议信息仍然不变。
[0082]S511:转换设备将第四数据包通过RS网关发送给客户端。[0083]继续沿用上例,转换设备先将第四数据包发送给RS网关,由RS网关根据该第四数据包中携带的目的地址和目的端口号,将该第四数据包发送给客户端。由于客户端初始发出的第一数据包中携带的源地址为IPc,目的地址为VIPl,源端口号为Ne,目的端口号为Np,协议信息为客户端所采用的协议信息,并且客户端接收到的第四数据包中携带的源地址为VIP1,目的地址为IPc,源端口号为Np,目的端口号为Ne,协议信息仍然不变,因此,客户端对该第四数据包进行处理,从而完成客户端与RS的交互。
[0084]由图5所示的过程可见,在本申请实施例中,转换设备通过数据流标识信息来唯一标识客户端与RS之间进行数据交互的数据流,并建立该数据流标识信息与虚拟IP地址和公共端口号的对应关系,当拦截到从RS发往客户端的数据包时,就可以根据拦截到的数据包确定数据流标识信息,并据此查找相应的虚拟IP地址和公共端口号对拦截到的该数据包进行调整,保证了客户端与RS进行数据交互的准确性。
[0085]另外,在现有技术中,由于从RS发往客户端的数据包要经过SLB,因此需要将RS默认的从RS到RS网关的路由修改为从RS到SLB的路由,进而需要将RS和SLB部署在同一个虚拟局域网(VLAN)中,这也降低了 RS和SLB部署的灵活性。
[0086]而由上述图4所示的系统和图5所示的过程可见,本申请实施例中转换设备部署在RS和RS网关之间,对从RS通过RS网关发往客户端的数据包进行拦截,因此,无需修改RS默认的从RS到RS网关的路由,转换设备对于RS来说是透明的。从而,在图4所示的系统中,只需将RS和转换设备部署在同一个VLAN中即可,RS和SLB不需要部署在同一个VLAN中。也即,RS和转换设备可以位于第一 VLAN中,SLB可以位于第二 VLAN中,有效的提高了RS和SLB部署的灵活性。
[0087]另外,在实际应用中,在客户端与RS进行数据交互的过程中,首先需要进行的就是通过三次握手的方式建立虚连接,而客户端通过三次握手的方式与RS建立虚连接时,首先发送的就是同步序列编号(Synchronize Sequence Numbers, SYN)数据包。
[0088]因此,基于上述情况,在本申请实施例提供的上述数据交互过程中,如果SLB确定接收到的客户端发送的第一数据包为SYN数据包,则提取出该SYN数据包中作为目的地址携带的虚拟IP地址以及作为目的端口号携带的公共端口号,并将提取的虚拟IP地址和公共端口号插入到该SYN数据包的TCP选项中,再对该SYN数据包的目的地址和目的端口号进行调整,并发送给RS。相应的,转换设备拦截到该SYN数据包后,则根据该SYN数据包确定数据流标识信息,并建立该数据流标识信息与该SYN数据包的TCP选项中插入的虚拟IP地址和公共端口号的对应关系,并将该SYN包发送给RS,进行后续流程。
[0089]相反的,如果SLB确定接收到的客户端发送的第一数据包不是SYN数据包,则说明该第一数据包所在的数据流中的SYN包之前已经被SLB和转换设备处理过,进而说明该第一数据包所在的数据流的数据流标识信息之前已经被转换设备确定过,并建立了该数据流标识信息与相应的虚拟IP地址和公共端口号的对应关系,因此,SLB无需将第一数据包中的虚拟IP地址以及公共端口号插入到该第一数据包的TCP选项中,只需调整该第一数据包中的目的地址和目的端口号,并发送给RS即可。相应的,转换设备拦截到该第一数据包后,由于该第一数据包的TCP选项中并未插入虚拟IP地址和公共端口号,因此也无需确定数据流标识信息并建立其与虚拟IP地址和公共端口号的对应关系,直接将第一数据包转发给相应的RS,并进行后续流程即可。[0090]在本申请实施例中,RS集群中的RS具体可以是虚拟机(Virtual Machine,VM)形式的RS,并可以运行在与转换设备位于同一 VLAN中的网络设备的虚拟机监控器Hypervisor 上。
[0091]图6为本申请实施例提供的负载均衡下的数据交互装置结构示意图,具体包括:
[0092]第一拦截模块601,用于拦截后台服务器RS根据接收到的第二数据包向客户端发送的第三数据包,所述第三数据包中携带的源地址为所述RS自身的真实网络互联协议IP地址;其中,所述第二数据包为:负载均衡服务器SLB接收到所述客户端发送的目的地址为所述SLB的虚拟IP地址的第一数据包后,根据预设的负载均衡策略选择所述RS,并将所述第一数据包中携带的目的地址调整为所述RS的真实IP地址,得到的第二数据包;
[0093]调整模块602,用于将拦截到的所述第三数据包中的源地址调整为预先记录的所述SLB的虚拟IP地址,得到第四数据包;
[0094]第一发送模块603,用于将所述第四数据包发送给所述客户端。
[0095]所述装置还包括:
[0096]第二拦截模块604,具体用于拦截所述SLB向所述RS发送的第二数据包,所述第二数据包为:所述SLB提取所述第一数据包中作为目的地址携带的所述SLB的虚拟IP地址,提取所述第一数据包中作为目的端口号携带的所述SLB的公共端口号,将提取的所述虚拟IP地址和公共端口号插入到所述第一数据包的TCP选项中,并将所述第一数据包中携带的目的地址调整为选择出的所述RS的真实IP地址,将所述第一数据包中携带的目的端口号调整为选择出的RS的端口号,得到的第二数据包;
[0097]记录模块605,用于根据所述第二数据包确定所述客户端与所述RS进行数据交互的数据流标识信息,并记录所述第二数据包的TCP选项中插入的虚拟IP地址和公共端口号,建立确定的所述数据流标识信息与记录的虚拟IP地址和公共端口号的对应关系,其中,确定的所述数据流标识信息包括:所述第二数据包中携带的源地址、目的地址、源端口号、目的端口号、协议信息中的至少一种;
[0098]第二发送模块606,用于将所述第二数据包发送给所述RS。
[0099]所述调整模块602具体用于,根据拦截的所述RS发送的第三数据包确定数据流标识信息,查找与根据所述第三数据包确定出的数据流标识信息对应的虚拟IP地址和公共端口号,并将所述第三数据包中携带的源地址调整为查找到的虚拟IP地址,将所述第三数据包中携带的源端口号调整为查找到的公共端口号,得到第四数据包。
[0100]具体的上述负载均衡下的数据交互装置可以位于转换设备中。
[0101]本申请实施例提供一种负载均衡下的数据交互系统、方法及装置,该系统包括SLB、RS和转换设备,对于从客户端发往RS的数据包,则由SLB进行处理并发送给RS,对于从RS发往客户端的数据包,则由转换设备进行处理并发送给客户端。由于在本申请实施例提供的上述系统中,从RS中流出的流量并非是通过SLB发送给客户端,而是由转换设备进行处理并发送给客户端的,因此有效的减轻了 SLB的负担。
[0102]显然,本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0103]显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
【权利要求】
1.一种负载均衡下的数据交互系统,其特征在于,包括: 负载均衡服务器SLB,用于接收客户端发送的第一数据包,根据预设的负载均衡策略选择后台服务器RS,将所述第一数据包中携带的目的地址调整为选择出的RS的真实网络互联协议IP地址,得到第二数据包,并将所述第二数据包发送给选择出的RS,其中,所述客户端发送的所述第一数据包中携带的目的地址为所述SLB的虚拟IP地址; RS,用于在接收到第二数据包后,生成第三数据包并发送给所述客户端,所述第三数据包中携带的源地址为所述RS自身的真实IP地址; 转换设备,用于拦截所述RS发送的所述第三数据包,并将所述第三数据包中携带的源地址调整为预先记录的所述SLB的虚拟IP地址,得到第四数据包,将所述第四数据包发送给所述客户端。
2.如权利要求1所述的系统,其特征在于,所述SLB具体用于,提取所述第一数据包中作为目的地址携带的所述SLB的虚拟IP地址,并提取所述第一数据包中作为目的端口号携带的所述SLB的公共端口号,将提取的所述虚拟IP地址和公共端口号插入到所述第一数据包的TCP选项中,并将所述第一数据包中携带的目的地址调整为选择出的RS的真实IP地址,将所述第一数据包中携带的目的端口号调整为选择出的RS的端口号,得到第二数据包; 所述转换设备具体用于,拦截所述SLB向选择出的RS发送的第二数据包,根据所述第二数据包确定所述客户端与所述RS进行数据交互的数据流标识信息,并记录所述第二数据包的TCP选项中插入的虚拟IP地址和公共端口号,建立确定的所述数据流标识信息与记录的虚拟IP地址和公共端口号的对应关系,将所述第二数据包发送给所述RS ;其中,确定的所述数据流标识信息包括:所述第二数据包中携带的源地址、目的地址、源端口号、目的端口号、协议信息中的至少一种; 所述RS具体用于,接收所述转换设备发送的所述第二数据包。
3.如权利要求2所述的系统,其特征在于,所述转换设备具体用于,根据拦截的所述RS发送的第三数据包确定数据流标识信息,查找与根据所述第三数据包确定出的数据流标识信息对应的虚拟IP地址和公共端口号,并将所述第三数据包中携带的源地址调整为查找到的虚拟IP地址,将所述第三数据包中携带的源端口号调整为查找到的公共端口号,得到第四数据包。
4.如权利要求1-3任一所述的系统,其特征在于,所述转换设备与所述RS位于第一虚拟局域网VLAN中,所述SLB位于第二 VLAN中。
5.一种负载均衡下的数据交互方法,其特征在于,包括: 转换设备拦截后台服务器RS根据接收到的第二数据包向客户端发送的第三数据包,所述第三数据包中携带的源地址为所述RS自身的真实网络互联协议IP地址;其中,所述第二数据包为:负载均衡服务器SLB接收到所述客户端发送的目的地址为所述SLB的虚拟IP地址的第一数据包后,根据预设的负载均衡策略选择所述RS,并将所述第一数据包中携带的目的地址调整为所述RS的真实IP地址,得到的第二数据包; 所述转换设备将拦截到的所述第三数据包中的源地址调整为预先记录的所述SLB的虚拟IP地址,得到第四数据包;并 将所述第四数据包发送给所述客户端。
6.如权利要求5所述的方法,其特征在于,所述SLB将所述第一数据包中携带的目的地址调整为所述RS的真实IP地址,得到第二数据包,具体包括: 所述SLB提取所述第一数据包中作为目的地址携带的所述SLB的虚拟IP地址,提取所述第一数据包中作为目的端口号携带的所述SLB的公共端口号;并 将提取的所述虚拟IP地址和公共端口号插入到所述第一数据包的TCP选项中;以及将所述第一数据包中携带的目的地址调整为选择出的所述RS的真实IP地址,将所述第一数据包中携带的目的端口号调整为选择出的RS的端口号,得到第二数据包; 所述转换设备预先记录所述SLB的虚拟IP地址,具体包括: 所述转换设备拦截所述SLB向所述RS发送的第二数据包;并根据所述第二数据包确定所述客户端与所述RS进行数据交互的数据流标识信息,其中,确定的所述数据流标识信息包括:所述第二数据包中携带的源地址、目的地址、源端口号、目的端口号、协议信息中的至少一种;以及 记录所述第二数据包的TCP选项中插入的虚拟IP地址和公共端口号,建立确定的所述数据流标识信息与记录的虚拟IP地址和公共端口号的对应关系; 所述方法还包括: 所述转换设备将所述第二数据包发送给所述RS。
7.如权利要求6所述的方法,其特征在于,所述转换设备将拦截到的所述第三数据包中的源地址调整为预先记录的所述SLB的虚拟IP地址,得到第四数据包,具体包括: 所述转换设备根据拦截的所述RS发送的第三数据包确定数据流标识信息,查找与根据所述第三数据包确定出的数据流标识信息对应的虚拟IP地址和公共端口号;并 将所述第三数据包中携带的源地址调整为查找到的虚拟IP地址,将所述第三数据包中携带的源端口号调整为查找到的公共端口号,得到第四数据包。
8.一种负载均衡下的数据交互装置,其特征在于,包括: 第一拦截模块,用于拦截后台服务器RS根据接收到的第二数据包向客户端发送的第三数据包,所述第三数据包中携带的源地址为所述RS自身的真实网络互联协议IP地址;其中,所述第二数据包为:负载均衡服务器SLB接收到所述客户端发送的目的地址为所述SLB的虚拟IP地址的第一数据包后,根据预设的负载均衡策略选择所述RS,并将所述第一数据包中携带的目的地址调整为所述RS的真实IP地址,得到的第二数据包; 调整模块,用于将拦截到的所述第三数据包中的源地址调整为预先记录的所述SLB的虚拟IP地址,得到第四数据包; 第一发送模块,用于将所述第四数据包发送给所述客户端。
9.如权利要求8所述的装置,其特征在于,所述装置还包括: 第二拦截模块,具体用于拦截所述SLB向所述RS发送的第二数据包,所述第二数据包为:所述SLB提取所述第一数据包中作为目的地址携带的所述SLB的虚拟IP地址,提取所述第一数据包中作为目的端口号携带的所述SLB的公共端口号,将提取的所述虚拟IP地址和公共端口号插入到所述第一数据包的TCP选项中,并将所述第一数据包中携带的目的地址调整为选择出的所述RS的真实IP地址,将所述第一数据包中携带的目的端口号调整为选择出的RS的端口号,得到的第二数据包; 记录模块,用于根据所述第二数据包确定所述客户端与所述RS进行数据交互的数据流标识信息,并记录所述第二数据包的TCP选项中插入的虚拟IP地址和公共端口号,建立确定的所述数据流标识信息与记录的虚拟IP地址和公共端口号的对应关系,其中,确定的所述数据流标识信息包括:所述第二数据包中携带的源地址、目的地址、源端口号、目的端口号、协议信息中的至少一种; 第二发送模块,用于将所述第二数据包发送给所述RS。
10.如权利要求9所述的装置,其特征在于,所述调整模块具体用于,根据拦截的所述RS发送的第三数据包确定数据流标识信息,查找与根据所述第三数据包确定出的数据流标识信息对应的虚拟IP地址和公共端口号,并将所述第三数据包中携带的源地址调整为查找到的虚拟IP地址,将所述第三数据包中携带的源端口号调整为查找到的公共端口号,得到第四数据包。
【文档编号】H04L12/803GK103780502SQ201210394875
【公开日】2014年5月7日 申请日期:2012年10月17日 优先权日:2012年10月17日
【发明者】唐猛, 陈波, 王颖斌, 万佳, 王倩 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1