一种报文发送方法、装置、负载均衡LB设备及网关设备与流程

文档序号:13391442阅读:371来源:国知局
一种报文发送方法、装置、负载均衡LB设备及网关设备与流程

本发明涉及通信技术领域,特别是涉及一种报文发送方法、装置、负载均衡lb设备、网关设备及机器可读存储介质。



背景技术:

lb(loadbalance,负载均衡)是一种集群技术,其可以将特定的业务分担给多台服务器或多条链路,从而提高业务处理能力,保证业务的高可靠性。

具体地,如图1所示,整个网络中包括两台终端(分别为clienta和clientb)、网关设备、lb设备和三台服务器(分别为srv1、srv2和srv3)。当网关设备接收到来自clienta或clientb的报文后,其会对该报文进行源ip地址转换,然后将经源ip地址转换后的报文发送给lb设备。其中,网关设备可能给clienta和clientb分配相同的外网ip地址(但端口不同),这样,clienta和clientb发送的报文在经过源ip地址转换后,具有相同的源ip地址。

而lb设备在接收到网关设备发送的来自于clienta或clientb的报文后,是基于报文的源ip地址分配服务器的。也就是说,lb设备会将来自于clienta或clientb的报文发送给srv1、srv2和srv3中的同一者,这样会导致各服务器上负载不均。



技术实现要素:

本发明实施例的目的在于提供一种报文发送方法、装置、lb设备、网关设备及机器可读存储介质,以使流量发送更为均匀,使得各个服务器负载更加均衡。

第一方面,本发明实施例提供了一种报文发送方法,应用于负载均衡lb设备,所述方法包括:

接收网关设备发送的第一报文,所述第一报文为所述网关设备对接收到的终端发送的第二报文进行源ip地址转换后生成的报文,所述第一报文的第一指定位置携带所述终端的内网ip地址;

确定所述第一报文的第一指定位置携带的所述终端的内网ip地址是否命中持续性表中的任一对应关系;其中,所述持续性表用于存储内网ip地址与服务器的ip地址的对应关系;

若为是,将所述第一报文的目的ip地址替换为命中的对应关系中的服务器的ip地址;

若为否,为所述终端分配服务器,将所述第一报文的目的ip地址替换为所分配服务器的ip地址,并将所述终端的内网ip地址与所分配服务器的ip地址的对应关系存储至所述持续性表;

发送目的ip地址经替换后的所述第一报文。

第二方面,本发明实施例提供了一种报文发送方法,应用于网关设备,所述方法包括:

接收终端发送至负载均衡lb设备的第二报文,对所述第二报文进行源ip地址转换生成第一报文,在所述第一报文的第一指定位置添加所述终端的内网ip地址;

向所述lb设备发送所述第一报文,以使所述lb设备确定所述第一报文的第一指定位置携带的所述终端的内网ip地址是否命中持续性表中的任一对应关系,若为是,将所述第一报文的目的ip地址替换为命中的对应关系中的服务器的ip地址,若为否,为所述终端分配服务器,将所述第一报文的目的ip地址替换为所分配服务器的ip地址,并将所述终端的内网ip地址与所分配服务器的ip地址的对应关系存储至所述持续性表,发送目的ip地址经替换后的所述第一报文;

其中,所述持续性表用于存储内网ip地址与服务器的ip地址的对应关系。

第三方面,本发明实施例提供了一种报文发送装置,应用于负载均衡lb设备,所述装置包括:

接收模块,用于接收网关设备发送的第一报文,所述第一报文为所述网关设备对接收到的终端发送的第二报文进行源ip地址转换后生成的报文,所述第一报文的第一指定位置携带所述终端的内网ip地址;

确定模块,用于确定所述第一报文的第一指定位置携带的所述终端的内网ip地址是否命中持续性表中的任一对应关系;其中,所述持续性表用于存储内网ip地址与服务器的ip地址的对应关系;

第一处理模块,用于在所述确定模块的确定结果为是的情况下,将所述第一报文的目的ip地址替换为命中的对应关系中的服务器的ip地址;在所述确定模块的确定结果为否的情况下,为所述终端分配服务器,将所述第一报文的目的ip地址替换为所分配服务器的ip地址,并将所述终端的内网ip地址与所分配服务器的ip地址的对应关系存储至所述持续性表;

第一发送模块,用于发送目的ip地址经替换后的所述第一报文。

第四方面,本发明实施例提供了一种报文发送装置,应用于网关设备,所述装置包括:

处理模块,用于接收终端发送至负载均衡lb设备的第二报文,对所述第二报文进行源ip地址转换生成第一报文,在所述第一报文的第一指定位置添加所述终端的内网ip地址;

第二发送模块,用于向所述lb设备发送所述第一报文,以使所述lb设备确定所述第一报文的第一指定位置携带的所述终端的内网ip地址是否命中持续性表中的任一对应关系,若为是,将所述第一报文的目的ip地址替换为命中的对应关系中的服务器的ip地址,若为否,为所述终端分配服务器,将所述第一报文的目的ip地址替换为所分配服务器的ip地址,并将所述终端的内网ip地址与所分配服务器的ip地址的对应关系存储至所述持续性表,发送目的ip地址经替换后的所述第一报文;

其中,所述持续性表用于存储内网ip地址与服务器的ip地址的对应关系。

第五方面,本发明实施例提供了一种负载均衡lb设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述应用于lb设备的方法步骤。

第六方面,本发明实施例还提供了一种网关设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述应用于网关设备的方法步骤。

第七方面,本发明实施例还提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现上述应用于负载均衡lb设备或网关设备的方法步骤。

本方案中,在接收到网关设备发送的第一报文时,lb设备会去确定第一报文的第一指定位置携带的终端的内网ip地址是否命中持续性表中的任一表项。如果命中,这说明lb设备之前已经为该终端分配过服务器了,lb设备会对第一报文进行目的ip地址的转换,以将第一报文发送至之前为该终端分配的服务器处。如果未命中,这说明lb设备之前并未为该终端分配过服务器,lb设备会为该终端分配服务器,并对第一报文进行目的ip地址的转换,以将第一报文发送至为该终端分配的服务器。另外,在未命中的情况下,lb设备还会存储该终端的内网ip地址与所分配服务器的ip地址之间的对应关系,这样,当lb设备后续接收到来自该终端的报文时,依据持续性表,lb设备可以将后续接收到的该终端发送的报文发送至之前为该终端分配的服务器。

容易看出,本方案中,lb设备会依据接收到的报文中的内网ip地址对来自不同终端的报文进行区分,以将来自不同终端的报文发送至为该终端分配的服务器。这样,lb设备不会将来自网关设备的所有报文作为同一用户流量,从而使得各服务器上的负载更加均衡。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为终端、网关设备、lb设备和服务器的组网结构示意图;

图2为本发明实施例从lb设备的角度所提供的一种报文发送方法的流程图;

图3为tcp报文头的格式示意图;

图4为网关设备和lb设备的工作原理图;

图5为本发明实施例从网关设备的角度所提供的一种报文发送方法的流程图;

图6为本发明实施例从lb设备的角度所提供的一种报文发送装置的结构框图;

图7为本发明实施例从网关设备的角度所提供的一种报文发送装置的结构框图;

图8为本发明实施例所提供的一种lb设备的结构示意图;

图9为本发明实施例所提供的一种网关设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了解决现有技术存在的问题,本发明实施例提供了一种报文发送方法、装置、lb设备、网关设备及机器可读存储介质。

下面首先对本发明实施例从lb设备的角度所提供的一种报文发送方法进行说明。

参见图2,图中示出了本发明实施例所提供的一种报文发送方法的流程图。如图2所示,该方法应用于lb设备,该方法可以包括如下步骤:

s201,接收网关设备发送的第一报文,第一报文为网关设备对接收到的终端发送的第二报文进行源ip地址转换后生成的报文,第一报文的第一指定位置携带该终端的内网ip地址。

需要说明的是,终端可以为手机或者平板电脑,网关设备可以为出口路由器,当然,终端和网关设备的类型并不局限于此,具体可以根据实际情况来确定,在此不再一一赘述。

网关设备在接收到来自终端的第二报文后,可以对第二报文进行源ip地址转换,以生成第一报文。接下来,网关设备可以在第一报文的第一指定位置添加终端的内网ip地址。具体地,第一报文可以为tcp报文,在一个优选实施例中,第一报文的第一指定位置可以为图3中示出的、tcp报文头中用于填充确认号的位置。当然,第一报文的第一指定位置也可以为图3中示出的、tcp报文头中用于填充选项的位置。

之后,网关设备可以利用图1中所示的ip网络,将第一指定位置添加有终端的内网ip地址的第一报文发送至lb设备,以便于lb设备根据接收到的第一报文执行后续的s202。

s202,确定第一报文的第一指定位置携带的终端的内网ip地址是否命中持续性表中的任一对应关系;其中,持续性表中用于存储内网ip地址与服务器的ip地址的对应关系;若为是,执行s203,若为否,执行s204。

s203,将第一报文的目的ip地址替换为命中的对应关系中的服务器的ip地址。

s204,为该终端分配服务器,将第一报文的目的ip地址替换为所分配服务器的ip地址,并将该终端的内网ip地址与所分配服务器的ip地址的对应关系存储至持续性表。

在执行s204时,lb设备可以利用预设的负载均衡策略为该终端分配服务器。具体地,该预设的负载均衡策略可以为哈希算法。

s205,发送目的ip地址经替换后的第一报文。

对于lb设备而言,在接收到网关设备发送的第一报文时,其可以对持续性表进行遍历查找,以确定持续性表中是否存在着包含第一报文的第一指定位置携带的内网ip地址的对应关系。

如果确定结果为存在,那么,持续性表中记录的、包含第一报文的第一指定位置携带的内网ip地址的对应关系即为第一报文的第一指定位置携带的内网ip地址命中的对应关系,该对应关系中服务器的ip地址为lb设备在获得第一报文之前,为具有第一报文的第一指定位置携带的内网ip地址的终端分配的服务器的ip地址。也就是说,lb设备在获得第一报文之前已经为发送第二报文的终端分配过服务器了。因此,lb设备可以直接将第一报文的目的ip地址替换为该对应关系中服务器的ip地址,并发送目的ip地址经替换后的第一报文。容易看出,目的ip地址经替换后的第一报文最终会被发送至lb设备之前为发送第二报文的终端所分配的服务器。

如果确定结果为不存在,即第一报文的第一指定位置携带的内网ip地址并未命中持续性表中的任一对应关系,那么,lb设备无法根据持续性表得到第一报文的第一指定位置携带的内网ip地址对应的服务器的ip地址。这时,lb设备可以利用预设的负载均衡策略,为发送第二报文的终端分配服务器。

在分配好服务器之后,一方面,lb设备可以将第一报文的目的ip地址替换为所分配服务器的ip地址,并发送目的ip地址经替换后的第一报文。这样,目的ip地址经替换后的第一报文最终会被发送至lb设备为发送第二报文的终端所分配的服务器。另一方面,lb设备还可以存储第一报文的第一指定位置携带的内网ip地址与所分配服务器的ip地址之间的对应关系至持续性表。这样,当网关设备再次接收到发送第二报文的终端发送的报文,并向lb设备转发相应的报文时,lb设备接收到的报文的第一指定位置携带的内网ip地址能够命中持续性表中的一对应关系。之后,lb设备只需将接收到的该报文中的目的ip地址替换为所命中的对应关系中的ip地址,并发送目的ip地址经替换后的该报文,该报文就会被lb设备发送至之前为发送第二报文的终端分配的服务器了。

本方案中,在接收到网关设备发送的第一报文时,lb设备会去确定第一报文的第一指定位置携带的终端的内网ip地址是否命中持续性表中的任一表项。如果命中,这说明lb设备之前已经为该终端分配过服务器了,lb设备会对第一报文进行目的ip地址的转换,以将第一报文发送至之前为该终端分配的服务器处。如果未命中,这说明lb设备之前并未为该终端分配过服务器,lb设备会为该终端分配服务器,并对第一报文进行目的ip地址的转换,以将第一报文发送至为该终端分配的服务器处。另外,在未命中的情况下,lb设备还会存储该终端的内网ip地址与所分配服务器的ip地址之间的对应关系,这样,当lb设备后续接收到来自该终端的报文时,依据持续性表,lb设备可以将后续接收到的该终端发送的报文发送至之前为该终端分配的服务器。

容易看出,本方案中,lb设备会依据接收到的报文中的内网ip地址对来自不同终端的报文进行区分,以将来自不同终端的报文发送至为该终端分配的服务器。这样,lb设备不会将来自网关设备的所有报文作为同一用户流量,从而使得各服务器上的负载更加均衡。

在本发明实施例的一种具体实施方式中,第一报文包括:tcp连接建立过程中的报文,及tcp连接建立成功之后客户端发送的业务报文。

在本发明实施例的另一种具体实施方式中,第一报文可以为tcp连接建立过程中的syn报文。

该方法还可以包括:

记录利用该syn报文建立的会话的会话信息与该终端的内网ip地址对应的服务器的ip地址的对应关系;

接收网关设备基于该会话发送的其它报文时,根据记录的对应关系,将其它报文的目的ip地址替换为记录的对应关系中的服务器的ip地址;发送目的ip地址经替换后的其它报文。

下面以一个具体的例子对本实施例的具体实施过程进行说明。

在接收到来自网关设备的syn报文,lb设备确定syn报文的第一指定位置携带的终端的内网ip地址是否持续性表中的任一对应关系。如果确定结果为是,lb设备可以将syn报文的目的ip地址替换为命中的持续性表的对应关系中的ip地址;如果确定结果为否,lb可以为该终端分配服务器,并在持续性表中存储所分配服务器的ip地址与该终端的内网ip地址之间的对应关系。

另外,lb设备还可以记录利用该syn报文建立的会话(记为会话a)的会话信息(记为会话信息h)与为该终端分配的服务器的ip地址的对应关系。具体地,会话信息h中可以包括从syn报文中提取出的五元组信息,即从syn报文中提取的源ip地址、目的ip地址、源端口、目的端口以及协议。

之后,当lb设备接收到网关设备基于会话a发送的除syn报文之外的其他报文时(即从该其他报文中提取的五元组信息与会话信息h中的五元组信息完全相同,此时,该其他报文相对于syn报文而言是后续报文),无需依赖于持续性表,根据之前记录的会话信息与相应服务器的ip地址之间的对应关系,lb设备能够确定出自身之前为该终端分配的服务器的ip地址。这样,在对基于会话a发送的其他报文进行目的ip地址的转换后,lb设备也能够将该其他报文发送至之前为该终端分配的服务器处。

本实施例中,lb设备利用之前记录的会话信息与相应服务器的ip地址之间的对应关系即可将报文发送至之前为该终端分配的服务器,无需网关设备在除syn报文之外的其它报文的第一指定位置添加终端的内网ip地址,这样可以有效地减小网关设备上的运行压力。

在本发明实施例的一种具体实施方式中,确定第一报文的第一指定位置携带的终端的内网ip地址是否命中持续性表中的任一对应关系,可以包括:

判断第一报文的第二指定位置是否具有第一标记;

若为是,则确定第一报文的第一指定位置携带的终端的内网ip地址是否命中持续性表中的任一对应关系。

其中,第一报文可以为tcp报文,第一报文的第二指定位置可以为图3中示出的、tcp报文头中用于填充保留标记的位置。具体地,第一标记可以为1。

对于网关设备而言,在接收到来自终端的第二报文,并对第二报文进行源ip地址转换生成第一报文后,其可以判断第一报文是否为syn报文。如果第一报文为syn报文,网关设备可以向第一报文的第一指定位置添加该终端的内网ip地址,并向第一报文的第二指定位置添加第一标记。可以看出,第一标记可以用来表征第一报文为syn报文。

这样,当终端接收到网关设备发送的第一报文时,其可以先判断第一报文的第二指定位置是否具有第一标记。如果具有,这说明第一报文是syn报文,这时,lb设备可以执行确定第一报文的第一指定位置携带的终端的内网ip地址是否命中持续性表中的任一对应关系的步骤。如果不具有,这说明第一报文不是syn报文,那么,lb设备无需执行确定第一报文的第一指定位置携带的终端的内网ip地址是否命中持续性表中的任一对应关系的步骤,lb设备可以直接对会话信息与相应服务器的ip地址之间的对应关系进行查看,以确定lb设备之前为该终端分配的服务器的ip地址,这样可以有效地节省lb设备上的系统资源。

在本发明实施例的一种具体实施方式中,持续性表中存储的任一对应关系设置有老化时间。

需要说明的是,持续性表中存储的各对应关系设置的老化时间可以相同,也可以不同,这都是可行的。

本实施例中,lb设备可以记录持续性表中的各对应关系最近一次被命中的时刻,其还可以计算当前时刻与所记录的各时刻之间的时间间隔。如果当前时刻与持续性表中的任一对应关系最近一次被命中的时刻之间的时间间隔大于为该对应关系设置的老化时长,lb设备可以将该对应关系从持续性表中删除,以释放持续性表中的存储空间。

在本发明实施例的一种具体实施方式中,发送目的ip地址经替换后的第一报文之前,该方法还可以包括:

在替换第一报文的目的ip地址之后,基于预设校验算法,确定目的ip地址经替换后的第一报文对应的校验数据。

其中,预设校验算法可以为循环冗余校验(cyclicredundancycheck,crc)算法。

将目的ip地址经替换后的第一报文中的校验数据替换为所确定的校验数据;

发送目的ip地址经替换后的第一报文,可以包括:

发送目的ip地址和校验数据经替换后的第一报文。

下面结合图4,以一个具体的例子对本实施例的具体实施过程进行说明。

如图4所示,假设网关设备接收到了来自终端的报文p(可以认为是上文中的第二报文),其中,报文p为syn报文。这时网关设备可以向报文p的tcp报文头中用于填充保留标记的位置添加第一标记,即1;向报文p的tcp报文头中用于填充确认号的位置添加该终端的内网ip地址;对报文p进行源ip地址转换。

需要说明的是,网关设备添加第一标记,添加该终端的内网ip地址,以及进行源ip地址转换这三项处理操作可以同时进行,也可以分别进行(这三项处理操作的先后顺序可以根据实际情况任意设定)。

网关设备可以对经过上述三项处理后的报文p进行调整校验数据操作。具体地,网关设备可以根据从终端处接收到的报文p中的校验数据、报文p进行上述三项处理前后发生变化的部分,以及crc算法,确定经过上述三项处理后的报文p对应的校验数据。之后,网关设备可以利用所确定的校验数据替换经过上述三项处理后的报文p中的校验数据,以得到报文p’(可以认为是上文中的第一报文),并将得到的报文p’发送至lb设备。

在lb设备接收到报文p’之后,其会判断报文p’的tcp报文头中用于填充保留标记的位置是否具有第一标记,即1。如果判断结果为是,lb设备会判断报文p’的tcp报文头中用于填充确认号的位置具有的内网ip地址是否命中持续性表中的任一对应关系。如果命中,lb设备会将报文p’的目的ip地址替换为所命中的对应关系中的ip地址;如果未命中,lb设备会为具有报文p’的tcp报文头中用于填充确认号的位置的内网ip地址的终端分配服务器,存储该内网ip地址与所分配服务器的ip地址之间的对应关系,并将报文p’的目的ip地址替换为所分配服务器的ip地址。

无论是否命中,在将报文p’的目的ip地址替换为相应ip地址之后,lb设备还可以根据目的ip地址经替换前的报文p’中的校验数据、目的ip地址经替换前后报文p’发生变化的部分,以及crc算法,确定目的ip地址经替换后的报文p’对应的校验数据,并将目的ip地址经替换后的报文p’中的校验数据替换为所确定的校验数据。最后,lb设备可以发送目的ip地址和校验数据均经替换后的报文p’。

对于接收到目的ip地址和校验数据均经替换后的报文p’的服务器而言,其可以利用接收到的报文p’中的除了校验数据之外的其余数据,得到相应的校验数据。之后,该服务器可以判断得到的校验数据与接收到的报文p’中的校验数据是否相同。如果相同,这说明接收到的报文p’是正确的,该服务器可以对接收到的报文p’进行后续处理;如果不相同,这说明接收到的报文p’是不准确的,该服务器可以丢弃接收到的报文p’,另外,该服务器还可以向lb设备发送错误提示信息。

容易看出,本实施例可以较好地保证服务器接收到的报文中的校验数据的正确性,以便于服务器准确地判断自身接收到的报文是否存在错误。

综上,本实施例中,流量发送更为均匀,各个服务器负载更加均衡,单个服务器上不会出现压力过大而导致业务不可用的情况,这样可以带来较好的用户体验。

下面对本发明实施例从网关设备的角度所提供的一种报文发送方法进行说明。

参见图5,图中示出了本发明实施例所提供的一种报文发送方法的流程图。如图5所示,该方法应用于网关设备,该方法可以包括:

s501,接收终端发送至lb设备的第二报文,对第二报文进行源ip地址转换生成第一报文,在第一报文的第一指定位置添加终端的内网ip地址;

s502,向lb设备发送第一报文,以使lb设备确定第一报文的第一指定位置携带的终端的内网ip地址是否命中持续性表中的任一对应关系,若为是,将第一报文的目的ip地址替换为命中的对应关系中的服务器的ip地址;若为否,为终端分配服务器,将第一报文的目的ip地址替换为所分配服务器的ip地址,并将终端的内网ip地址与所分配服务器的ip地址的对应关系存储至持续性表,发送目的ip地址经替换后的第一报文;

其中,持续性表用于存储内网ip地址与服务器的ip地址的对应关系。

在本发明实施例的一种具体实施方式中,在第一报文的第一指定位置添加终端的内网ip地址,包括:

当第一报文为syn报文时,在第一报文的第一指定位置添加终端的内网ip地址。

在本发明实施例的一种具体实施方式中,该方法还包括:

在第一报文的第二指定位置添加第一标记,以使lb设备在确定第一报文的第二指定位置携带第一标记时,确定第一报文的第一指定位置携带的终端的内网ip地址是否命中持续性表中的任一对应关系。

本方案中,在接收到网关设备发送的第一报文时,lb设备会去确定第一报文的第一指定位置携带的终端的内网ip地址是否命中持续性表中的任一表项。如果命中,这说明lb设备之前已经为该终端分配过服务器了,lb设备会对第一报文进行目的ip地址的转换,以将第一报文发送至之前为该终端分配的服务器处。如果未命中,这说明lb设备之前并未为该终端分配过服务器,lb设备会为该终端分配服务器,并对第一报文进行目的ip地址的转换,以将第一报文发送至为该终端分配的服务器。另外,在未命中的情况下,lb设备还会存储该终端的内网ip地址与所分配服务器的ip地址之间的对应关系,这样,当lb设备后续接收到来自该终端的报文时,依据持续性表,lb设备可以将后续接收到的该终端发送的报文发送至之前为该终端分配的服务器。

容易看出,本方案中,lb设备会依据接收到的报文中的内网ip地址对来自不同终端的报文进行区分,以将来自不同终端的报文发送至为该终端分配的服务器处。这样,lb设备不会将来自网关设备的所有报文作为同一用户流量,从而使得各服务器上的负载更加均衡。

下面对本发明实施例从lb设备的角度所提供的一种报文发送装置进行说明。

参见图6,图中示出了本发明实施例所提供的一种报文发送装置的结构框图。如图6所示,该装置应用于lb设备,该装置可以包括:

接收模块61,用于接收网关设备发送的第一报文,第一报文为网关设备对接收到的终端发送的第二报文进行源ip地址转换后生成的报文,第一报文的第一指定位置携带终端的内网ip地址;

确定模块62,用于确定第一报文的第一指定位置携带的终端的内网ip地址是否命中持续性表中的任一对应关系;其中,持续性表用于存储内网ip地址与服务器的ip地址的对应关系;

第一处理模块63,用于在确定模块62的确定结果为是的情况下,将第一报文的目的ip地址替换为命中的对应关系中的服务器的ip地址;在确定模块62的确定结果为否的情况下,为终端分配服务器,将第一报文的目的ip地址替换为所分配服务器的ip地址,并将终端的内网ip地址与所分配服务器的ip地址的对应关系存储至持续性表;

第一发送模块64,用于发送目的ip地址经替换后的第一报文。

在本发明实施例的一种具体实施方式中,第一报文为syn报文;

该装置还可以包括:

记录模块,用于记录利用syn报文建立的会话的会话信息与终端的内网ip地址对应的服务器的ip地址的对应关系;

第二处理模块,用于接收网关设备基于会话发送的其它报文时,根据记录的对应关系,将其它报文的目的ip地址替换为记录的对应关系中的服务器的ip地址;发送目的ip地址经替换后的其它报文。

在本发明实施例的一种具体实施方式中,确定模块,包括:

判断子模块,用于判断第一报文的第二指定位置是否具有第一标记;

确定子模块,用于在判断子模块的判断结果为是的情况下,确定第一报文的第一指定位置携带的终端的内网ip地址是否命中持续性表中的任一对应关系。

在本发明实施例的一种具体实施方式中,持续性表中存储的任一对应关系设置有老化时间。

本方案中,在接收到网关设备发送的第一报文时,lb设备会去确定第一报文的第一指定位置携带的终端的内网ip地址是否命中持续性表中的任一表项。如果命中,这说明lb设备之前已经为该终端分配过服务器了,lb设备会对第一报文进行目的ip地址的转换,以将第一报文发送至之前为该终端分配的服务器处。如果未命中,这说明lb设备之前并未为该终端分配过服务器,lb设备会为该终端分配服务器,并对第一报文进行目的ip地址的转换,以将第一报文发送至为该终端分配的服务器处。另外,在未命中的情况下,lb设备还会存储该终端的内网ip地址与所分配服务器的ip地址之间的对应关系,这样,当lb设备后续接收到来自该终端的报文时,依据持续性表,lb设备可以将后续接收到的该终端发送的报文发送至之前为该终端分配的服务器处。

容易看出,本方案中,lb设备会依据接收到的报文中的内网ip地址对来自不同终端的报文进行区分,以将来自不同终端的报文发送至为该终端分配的服务器处。这样,lb设备不会将来自网关设备的所有报文作为同一用户流量,从而使得各服务器上的负载更加均衡。

下面对本发明实施例从网关设备的角度所提供的一种报文发送装置进行说明。

参见图7,图中示出了本发明实施例所提供的一种报文发送装置的结构框图。如图7所示,该装置应用于网关设备,该装置可以包括:

处理模块71,用于接收终端发送至lb设备的第二报文,对第二报文进行源ip地址转换生成第一报文,在第一报文的第一指定位置添加终端的内网ip地址;

第二发送模块72,用于向lb设备发送第一报文,以使lb设备确定第一报文的第一指定位置携带的终端的内网ip地址是否命中持续性表中的任一对应关系,若为是,将第一报文的目的ip地址替换为命中的对应关系中的服务器的ip地址;若为否,为终端分配服务器,将第一报文的目的ip地址替换为所分配服务器的ip地址,并将终端的内网ip地址与所分配服务器的ip地址的对应关系存储至持续性表,发送目的ip地址经替换后的第一报文;

其中,持续性表用于存储内网ip地址与服务器的ip地址的对应关系。

在本发明实施例的一种具体实施方式中,处理模块,具体用于:

当第一报文为syn报文时,在第一报文的第一指定位置添加终端的内网ip地址。

在本发明实施例的一种具体实施方式中,该装置还包括:

添加模块,用于在第一报文的第二指定位置添加第一标记,以使lb设备在确定第一报文的第二指定位置携带第一标记时,确定第一报文的第一指定位置携带的终端的内网ip地址是否命中持续性表中的任一对应关系。

本方案中,在接收到网关设备发送的第一报文时,lb设备会去确定第一报文的第一指定位置携带的终端的内网ip地址是否命中持续性表中的任一表项。如果命中,这说明lb设备之前已经为该终端分配过服务器了,lb设备会对第一报文进行目的ip地址的转换,以将第一报文发送至之前为该终端分配的服务器处。如果未命中,这说明lb设备之前并未为该终端分配过服务器,lb设备会为该终端分配服务器,并对第一报文进行目的ip地址的转换,以将第一报文发送至为该终端分配的服务器处。另外,在未命中的情况下,lb设备还会存储该终端的内网ip地址与所分配服务器的ip地址之间的对应关系,这样,当lb设备后续接收到来自该终端的报文时,依据持续性表,lb设备可以将后续接收到的该终端发送的报文发送至之前为该终端分配的服务器处。

容易看出,本方案中,lb设备会依据接收到的报文中的内网ip地址对来自不同终端的报文进行区分,以将来自不同终端的报文发送至为该终端分配的服务器处。这样,lb设备不会将来自网关设备的所有报文作为同一用户流量,从而使得各服务器上的负载更加均衡。

下面对本发明实施例所提供的一种lb设备进行说明。

参见图8,图中示出了本发明实施例所提供的一种lb设备的结构示意图。如图8所示,该lb设备可以包括:处理器81、存储有机器可执行指令的机器可读存储介质82。处理器81与机器可读存储介质82可经由系统总线83通信。并且,通过读取并执行机器可读存储介质82中与报文发送控制逻辑对应的机器可执行指令,处理器81可执行上文描述的应用于lb设备的方法步骤。

下面对本发明实施例所提供的一种网关设备进行说明。

参见图9,图中示出了本发明实施例所提供的一种网关设备。如图9所示,该网关设备可以包括:处理器91、存储有机器可执行指令的机器可读存储介质92。处理器91与机器可读存储介质92可经由系统总线93通信。并且,通过读取并执行机器可读存储介质92中与报文发送控制逻辑对应的机器可执行指令,处理器91可执行上文描述的应用于网关设备的方法步骤。

下面对本发明实施例所提供的一种机器可读存储介质进行说明。

本发明实施例还提供了一种机器可读存储介质。其中,该机器可读存储介质存储有机器可执行指令,在被处理器调用和执行时,机器可执行指令促使处理器:实现上述应用于lb设备或网关设备的方法步骤。

需要说明的是,本文中提到的机器可读存储介质可以是任何电子、磁性、光学或其他物理存储装置,可以包括或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomacessmemory随机存取存储器)、易失存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、lb设备、网关设备、机器可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1