一种负载均衡处理的方法、服务器、装置及存储介质与流程

文档序号:13887203阅读:150来源:国知局

本申请涉及互联网技术领域,尤其涉及一种负载均衡处理的方法、服务器、装置及存储介质。



背景技术:

负载均衡是由多台后端服务器组成一个服务器资源池,对外呈现一个服务器源网际协议(英文全称:internetprotocol,英文简称:ip)地址,能够满足服务器的并发访问需求,为互联网多租户提供负载均衡访问,租户是指使用系统资源的客户,租户之间共用系统资源或程序组件,但用户应用程序、运行环境和数据隔离,一个租户拥有多个客户端。

在用户数据报协议(英文全称:userdatagramprotocol,英文简称:udp)场景下,来自客户端的报文经过负载均衡器的分发后,报文中的源ip地址会被替换为负载均衡器的后端ip地址,后端ip地址是指负载均衡器面向后端服务器的ip地址。最终在该报文到达后端服务器后,该报文会丢失客户端的源ip地址。对于需要基于客户端的源ip地址进行数据分析、安全审计或者主动反向发送的业务,后端服务器都无法处理。



技术实现要素:

本申请提供了一种负载均衡处理的方法、服务器、装置及存储介质,能够解决现有技术中后端服务器无法在udp场景下处理基于客户端的源ip地址的业务的问题。

本申请第一方面提供一种负载均衡处理的方法,所述方法主要包括:

负载均衡服务器根据匹配项匹配到来自终端设备的第一报文,所述第一报文中包括ip首部和校验和字段,所述ip首部包括源ip地址和目的ip地址,所述源ip地址为所述终端设备的第一ip地址,所述目的ip地址为所述负载均衡服务器的前端ip地址。

所述负载均衡服务器更新所述ip首部和所述校验和字段,得到第二报文,所述第二报文中的源ip地址为所述第一ip地址,所述第二报文中的目的ip地址为后端服务器的第二ip地址,所述校验和字段包括用于指示所述负载均衡服务器的后端ip地址的指示信息。

所述负载均衡服务器记录所述第一ip地址、所述前端ip地址、所述后端ip地址和所述第二ip地址之间的第一映射关系。

所述负载均衡服务器向所述后端服务器发送所述第二报文,以使所述后端服务器获取所述第二报文的ip首部中的所述第一ip地址,记录所述第一ip地址、所述后端ip地址和所述第二ip地址之间的第二映射关系。

相较于现有技术,本申请提供的方案中,负载均衡服务器匹配到所述第一报文后,将所述第一报文中的源ip地址更新为所述第一ip地址,得到第二报文,将目的地址更新为第二ip地址,以及将校验和字段更新为用于指示所述负载均衡服务器的后端ip地址的指示信息。记录所述第一ip地址、前端ip地址、后端ip地址和所述第二ip地址之间的第一映射关系。并向所述后端服务器发送所述第二报文,由于第二报文中的源ip地址被更新为终端设备的第一ip地址,校验和包括所述指示信息,所以后端服务器能够从该第二报文中获取到所述第一ip地址,记录所述第二映射关系。这样后端服务器获取到第一ip地址后,就可以根据第二映射关系处理基于该第一ip地址的业务,从而实现终端设备的第一ip地址的可见性。

在一些可能的设计中,所述负载均衡服务器更新所述ip首部,包括:

所述负载均衡服务器将所述源ip地址更新为所述负载均衡服务器的后端ip地址,以及将所述目的ip地址更新为所述第二ip地址。这样可得到负载均衡服务器与后端服务器之间的一个映射关系:所述后端ip地址与所述第二ip地址之间的映射关系。

然后,所述负载均衡服务器将所述源ip地址更新为所述第一ip地址,这样就可以将第一ip地址传递给所述后端服务器。

在一些可能的设计中,考虑到负载均衡服务器会同时处理大批量的终端设备的报文,可能接收到的部分或全部报文才需要进行负载均衡处理,以及向后端服务器呈现这些终端设备的ip地址。所述负载均衡服务器根据匹配项匹配到来自终端设备的第一报文后,所述负载均衡服务器更新所述ip首部和所述校验和字段之前,所述负载均衡服务器还可以对所述第一报文设置第一标记,所述第一标记用于指示所述第一报文为待进行负载均衡处理的报文。

所述负载均衡服务器可将所收到的报文放入任务队列中,在处理任务队列中的报文时,所述负载均衡服务器可以仅更新设置所述第一标记的所述第一报文中的所述ip首部和所述校验和字段。可见,通过设置第一标记,负载均衡服务器能够有针对性的对需要进行负载均衡处理的报文进行处理,提高负载均衡处理的效率以及优化负载均衡处理机制。

在一些可能的设计中,与负载均衡服务器类似,后端服务器也会接收到大量的报文。为有针对性的对特定的报文进行负载均衡处理和提高处理效率,所述负载均衡服务器更新所述ip首部之后,所述负载均衡服务器还可以在所述ip首部中的保留字段设置第二标记,所述第二标记用于所述后端服务器从接收到的报文中识别出所述第二报文为待进行负载均衡处理的报文,进而从该第二报文中的ip首部提取终端设备的第一ip地址,以及从所述校验和字段中提取所述后端ip地址的子网网段。可见,通过设置第二标记,能够向后端服务器提示哪些报文需要进行负载均衡处理,相较于现有机制,具有一定的针对性,并且能够提高负载均衡处理的效率以及优化负载均衡处理机制。

在一些可能的设计中,负载均衡服务器在向后端服务器提供包括第一ip地址和所述指示信息的第二报文后,若后端服务器有基于该第一ip地址的业务需要向该终端设备推送,那么,负载均衡服务器与后端服务器之间还会执行报文返程流程,具体如下:

所述负载均衡服务器接收所述后端服务器发送的第三报文。

所述负载均衡服务器根据所述第一映射关系将所述第三报文中的源ip地址更新为所述负载均衡服务器的前端ip地址,以及将所述第三报文中的目的ip地址更新为所述第一ip地址,得到第四报文。

所述负载均衡服务器将所述第四报文发给所述终端设备。

可见,由于所述负载均衡服务器已记录第一映射关系,当后端服务器基于第二映射关系发送的第三报文后,就可以确定该第三报文是针对该终端设备发送的。所以,负载均衡服务器能够基于所述第一映射关系更新目的ip地址后,向终端设备推送第四报文,进而完成整个基于第一ip地址的业务的推送。

可选的,所述指示信息包括所述后端ip地址的子网网段,所述子网网段用于所述后端服务器还原所述后端ip地址。

在一些可能的设计中,所述负载均衡服务器更新所述校验和字段,包括:

所述负载均衡服务器将所述后端ip地址的子网网段转换为预定义数据类型的数据,将转换为所述预定义数据类型的子网网段存储于所述校验和字段。

例如,负载均衡服务器可将该子网网段转换为16进制的数据,然后将得到的16进制的数据存储于所述校验和字段,进而向后端服务器提供自身的后端ip地址,便于后端服务器后续可以实现向所述终端设备推送业务的报文返程流程。

本申请第二方面提供一种负载均衡处理的方法,所述方法主要包括:

后端服务器接收来自负载均衡服务器的第二报文,所述第二报文包括ip首部和校验和字段,所述ip首部包括源ip地址、目的ip地址和保留字段,所述源ip地址为终端设备的第一ip地址,所述目的ip地址为所述后端服务器的第二ip地址,所述校验和字段包括用于指示所述负载均衡服务器的后端ip地址的指示信息。该第二报文与现有机制不同之处在于ip首部和校验和字段,例如现有机制中的报文的ip首部的源ip地址为负载均衡服务器的后端ip地址,ip首部的保留字段没有标识第二报文为需要进行特别处理的信息,校验和字段所指示的校验和值为正常,而本申请中的第二报文的ip首部的源ip地址为终端设备的第一ip地址,ip首部的保留字段还可存在标识第二报文为需要进行特别处理的信息,校验和字段中包括负载均衡服务器的后端ip地址的子网网段。

所述后端服务器从所述第二报文的ip首部中获取所述第一ip地址,以及根据所述校验和字段获取所述后端ip地址。

所述后端服务器记录所述第一ip地址、所述后端ip地址和所述第二ip地址之间的第二映射关系。

相较于现有技术,本申请提供的方案中,后端服务器接收来自负载均衡服务器的第二报文,由于所述第二报文包括ip首部和校验和字段,所述ip首部包括源ip地址、目的ip地址和保留字段,所述源ip地址为终端设备的第一ip地址,所述目的ip地址为所述后端服务器的第二ip地址,所述校验和字段包括用于指示所述负载均衡服务器的后端ip地址的指示信息。所以,后端服务器能够直接从第二报文的ip首部中获取所述第一ip地址,以及根据所述校验和字段获取所述后端ip地址,并记录所述第二映射关系。这样后端服务器可以根据第二映射关系处理基于该第一ip地址的业务,从而实现终端设备的第一ip地址的可见性。

在一些可能的设计中,所述ip首部包括保留字段,所述后端服务器接收来自负载均衡服务器的第二报文之后,所述后端服务器从所述第二报文的ip首部中获取所述第一ip地址,以及根据所述校验和字段获取所述负载均衡服务器的后端ip地址之前,所述方法还包括:

所述后端服务器根据所述保留字段确定第二报文为待处理业务的报文,所述待处理业务是指所述后端服务器基于所述终端设备的第一ip地址进行的业务。

可选的,若所述保留字段包括第二标记,那么所述后端服务器可根据所述第二标记从接收到的报文中识别出所述第二报文为待处理业务的报文。可见,通过设置第二标记,后端服务器能够快速的、有针对性的从接收到的大量报文中确定出需要进行负载均衡处理的报文,相较于现有机制,能够提高负载均衡处理的效率以及优化负载均衡处理机制。

在一些可能的设计中,所述指示信息包括所述后端ip地址的子网网段,所述根据所述校验和字段获取所述后端ip地址,包括:

所述后端服务器从所述第二报文中的校验和字段获取所述子网网段;

所述后端服务器根据所述子网网段还原所述后端ip地址。这样后端服务器就可以记录所述第二映射关系。

可选的,所述后端服务器从所述第二报文的ip首部中获取所述第一ip地址之后,所述方法还包括:

所述后端服务器根据所述第二映射关系将所述第二报文中的源ip地址更新为所述第二ip地址,以及将所述第二报文中的目的ip地址更新为所述后端ip地址,得到第三报文;

所述后端服务器向所述负载均衡服务器发送所述第三报文。可见,后端服务器能够基于记录的第二映射关系向终端设备推送基于第一ip地址的报文。

在一些可能的设计中,由于负载均衡服务器修改了原来校验和字段中的信息,所以后端服务器可能会认为第二报文为错误的报文,会丢弃该第二报文。所以,所述后端服务器在根据所述校验和字段获取所述负载均衡服务器的后端ip地址之后,还可以将所述第二报文中的校验和字段清零,或者重新计算所述第二报文中的校验和字段所指示的校验和。清0或者重新计算后,后端服务器再将该第二报文传送到其部署的虚拟机,收到第二报文的虚拟机可去获取相应的业务报文,并且,该终端设备的第一ip地址对该虚拟机为完全可见的状态。

可见,后端服务器对第二报文中的校验和字段清0或者重新计算后,能够消除认为第二报文为错误的报文,导致无法继续部署基于第一ip地址的业务应用的问题。

本申请第三方面提供一种负载均衡服务器,具有实现对应于上述第一方面提供的负载均衡处理的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。

一种可能的设计中,所述负载均衡服务器包括:

处理模块,用于根据匹配项匹配到来自终端设备的第一报文,所述第一报文中包括ip首部和校验和字段,所述ip首部包括源ip地址和目的ip地址,所述源ip地址为所述终端设备的第一ip地址,所述目的ip地址为所述负载均衡服务器的前端ip地址;

更新所述收发模块获取的所述第一报文中的所述ip首部和所述校验和字段,得到第二报文,所述第二报文中的源ip地址为所述第一ip地址,所述第二报文中的目的ip地址为后端服务器的第二ip地址,所述校验和字段包括用于指示所述负载均衡服务器的后端ip地址的指示信息;

记录所述第一ip地址、所述前端ip地址、所述后端ip地址和所述第二ip地址之间的第一映射关系;

通过所述收发模块向所述后端服务器发送所述第二报文,以使所述后端服务器获取所述第二报文的ip首部中的所述第一ip地址,以及根据所述校验和字段获取所述后端ip地址,记录所述第一ip地址、所述后端ip地址和所述第二ip地址之间的第二映射关系。

可选的,所述处理模块具体用于:

将所述源ip地址更新为所述负载均衡服务器的后端ip地址,以及将所述目的ip地址更新为所述第二ip地址;

将所述源ip地址更新为所述第一ip地址。

可选的,所述处理模块根据匹配项匹配到来自终端设备的第一报文后,更新所述ip首部和所述校验和字段之前,所述处理模块还用于:

对所述第一报文设置第一标记,所述第一标记用于指示所述第一报文为待进行负载均衡处理的报文;

更新设置所述第一标记的所述第一报文中的所述ip首部和所述校验和字段。

可选的,所述处理模块更新所述ip首部之后,还用于:

在所述ip首部中的保留字段设置第二标记,所述第二标记用于所述后端服务器从接收到的报文中识别出所述第二报文。

可选的,所述处理模块还用于:

通过所述收发模块接收所述后端服务器发送的第三报文;

根据所述第一映射关系将所述第三报文中的源ip地址更新为所述负载均衡服务器的前端ip地址,以及将所述第三报文中的目的ip地址更新为所述第一ip地址,得到第四报文;

通过所述收发模块将所述第四报文发给所述终端设备。

可选的,所述指示信息包括所述后端ip地址的子网网段,所述子网网段用于所述后端服务器还原所述后端ip地址。

可选的,所述处理模块具体用于:

所述负载均衡服务器将所述后端ip地址的子网网段转换为预定义数据类型的数据,将转换为所述预定义数据类型的子网网段存储于所述校验和字段。

本申请第四方面提供一种后端服务器,具有实现对应于上述第二方面提供的负载均衡处理的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。

一种可能的设计中,所述后端服务器包括:

收发模块,用于接收来自负载均衡服务器的第二报文,所述第二报文包括ip首部和校验和字段,所述ip首部包括源ip地址、目的ip地址和保留字段,所述源ip地址为终端设备的第一ip地址,所述目的ip地址为所述后端服务器的第二ip地址,所述校验和字段包括用于指示所述负载均衡服务器的后端ip地址的指示信息;

从所述第二报文的ip首部中获取所述第一ip地址,以及根据所述校验和字段获取所述后端ip地址;

处理模块,用于记录所述第一ip地址、所述后端ip地址和所述第二ip地址之间的第二映射关系。

可选的,所述ip首部包括保留字段,所述处理模块在所述收发模块接收来自负载均衡服务器的第二报文之后,从所述第二报文的ip首部中获取所述第一ip地址,以及根据所述校验和字段获取所述负载均衡服务器的后端ip地址之前,还用于:

根据所述保留字段确定第二报文为待处理业务的报文,所述待处理业务是指所述后端服务器基于所述终端设备的第一ip地址进行的业务。

可选的,所述保留字段包括第二标记,所述处理模块具体用于:

根据所述第二标记从接收到的报文中识别出所述第二报文为待处理业务的报文。

可选的,所述指示信息包括所述后端ip地址的子网网段,所述处理模块具体用于:

通过收发模块从所述第二报文中的校验和字段获取所述子网网段;

根据所述子网网段还原所述后端ip地址;

所述处理模块在所述收发模块从所述第二报文的ip首部中获取所述第一ip地址之后,还用于:

根据所述第二映射关系将所述第二报文中的源ip地址更新为所述第二ip地址,以及将所述第二报文中的目的ip地址更新为所述后端ip地址,得到第三报文;

通过收发模块向所述负载均衡服务器发送所述第三报文。

可选的,所述处理模块在所述收发模块根据所述校验和字段获取所述负载均衡服务器的后端ip地址之后,还用于:

将所述第二报文中的校验和字段清零,或者重新计算所述第二报文中的校验和字段所指示的校验和。

本申请第五方面提供一种通信系统,具有实现上述负载均衡处理的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。

一种可能的设计中,所述通信系统包括:

终端设备、第三方面所述的负载均衡服务器以及第四方面所述的后端服务器。

本申请又一方面提供了一种负载均衡处理的装置,其包括至少一个连接的处理器、存储器和收发器,其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中的程序代码来执行上述各方面所述的方法。

本申请又一方面提供了一种计算机存储介质,其包括指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

本申请又一方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

附图说明

图1为本申请实施例中通信系统的一种部署架构示意图;

图2为本申请实施例中udp报文的结构示意图;

图3为本申请实施例中负载均衡处理的方法的一种流程示意图;

图4为本申请实施例中负载均衡处理的方法的一种流程示意图;

图5为本申请实施例中负载均衡处理的方法的一种流程示意图;

图6为本申请实施例中负载均衡服务器的一种结构示意图;

图7为本申请实施例中后端服务器的一种结构示意图;

图8为本申请实施例中通信系统的一种结构示意图;

图9为本申请实施例中执行负载均衡处理的方法的装置的结构示意图。

具体实施方式

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请方案的目的。

本申请供了一种负载均衡处理的方法、服务器、装置及存储介质,用于如图1所示的通信系统,所述通信系统包括路由器、云网络控制器、至少一个终端设备、至少一个负载均衡服务器、以及至少一个后端服务器。负载均衡服务器上部署负载均衡器,以及至少一个后端服务器上部署虚拟机。本申请中的所述通信系统可以部署多种基于终端设备的ip地址的业务应用。通信系统在逻辑上可以划分为控制面和数据面,图1中实线所示意的走向路径为数据面(即面向用户的数据访问层),图1中虚线所示意的走向路径为控制面(面向业务逻辑)。云网络控制器可以对终端设备、负载均衡服务器和后端服务器进行配置,可以以流表的形式下发控制面的配置信息,使得终端设备、负载均衡服务器和后端服务器各自进行对应的配置。

其中,所述终端设备是指使用一个租户业务中的客户端。

所述负载均衡服务器用于各后端服务器的负载均衡、部署的应用的状态监控、外部地址和内部地址之间的转换等功能的实现。

所述后端服务器用于提供了访问商业逻辑的途径,以供终端设备的应用程序使用。后端服务器部署至少一台虚拟机,虚拟机可获取应用程序的业务报文,也可获取终端设备的ip地址。

负载均衡服务器相对于终端设备而言体现为前端ip地址(即相对于终端设备体现为外网),相对于后端服务器体现为后端ip地址(即相对于后端服务器体现为局域网)。

基于图1所示的通信系统,用户可以基于云网络在终端设备上配置公网负载均衡,具体配置如下:

配置后端服务器的前端端口号为169,配置后端服务器的后端端口号为456,配置后端服务器的ip地址为192.168.10.11。

配置完公网负载均衡后,可将配置信息通过程序接口发给云网络控制器。云网络控制器通过负载均衡服务器代理对负载均衡服务器的内核进行如下配置:配置<目的ip地址:目的端口号>即<200.200.200.200:169:169>,负载均衡服务器将200.200.200.200:169记录为匹配项,匹配项用于匹配接收到的报文。

配置完成后,云网络控制器将配置信息下发至终端设备、负载均衡服务器和后端服务器。

终端设备可通过ip地址之间的映射关系{201.202.203.204→200.200.200.200:169}访问负载均衡服务器的前端ip地址。

终端设备发送的报文达到负载均衡服务器的内核后,内核基于匹配项(200.200.200.200:169)去匹配该报文,若匹配成功,则对该报文设置一个标记,并保存该终端设备的ip地址(201.202.203.204),然后进入负载均衡处理流程。

负载均衡服务器在负载均衡处理流程中,将设置标记的报文中的源ip地址和目的ip地址进行转换,然后将报文的源ip地址修改为终端设备的ip地址,将负载均衡服务器的后端ip地址修改为后端服务器的ip地址,然后将报文发给后端服务器。

本申请实施例中图1所示的通信系统能够处理基于终端设备的ip地址的udp报文。本申请实施例中的udp报文的结构可参考如图2所示的示意图。其中udp报文包括ip首部和校验和字段。

ip首部包括源ip地址、目的ip地址和保留字段,源ip地址是指发送报文的源节点的ip地址,目的ip地址是指报文的目的节点的ip地址,保留字段是指为将来定义新的用途的保留字段,一般置0。

校验和字段用于检验接收到的报文是否有差错,校验和字段包含校验和的取值,本申请实施例中的校验和是指udp的校验和。

其中,需要特别说明的是,本申请涉及的终端设备,可以是指向用户提供语音和/或数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。无线终端可以经无线接入网(英文全称:radioaccessnetwork,英文简称:ran)与一个或多个核心网进行通信,无线终端可以是移动终端,如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语音和/或数据。例如,个人通信业务(英文全称:personalcommunicationsservice,英文简称:pcs)电话、无绳电话、会话发起协议(sip)话机、无线本地环路(wirelesslocalloop,英文简称:wll)站、个人数字助理(英文全称:personaldigitalassistant,英文简称:pda)等设备。无线终端也可以称为系统、订户单元(subscriberunit)、订户站(subscriberstation),移动站(mobilestation)、移动台(mobile)、远程站(remotestation)、接入点(accesspoint)、远程终端(remoteterminal)、接入终端(accessterminal)、用户终端(userterminal)、终端设备、用户代理(useragent)、用户设备(userdevice)、或用户装备(userequipment)。

为解决上述技术问题,本申请主要提供以下技术方案:

负载均衡服务器收到终端设备的报文后,将报文中的外网地址转换为内网地址,并且将转换地址后的报文中源ip地址修改为终端设备的ip地址,将自身的后端ip地址通过保留字段指示给后端服务器,使得后端服务器能够直接从负载均衡服务器转发的报文中获取终端设备的ip地址和负载均衡服务器的后端ip地址,从而使得后端服务器可以基于获取的ip地址执行报文返程的操作。这样后端服务器就可以在通信系统中部署基于终端设备的ip地址的业务应用。

请参照图3,以下对本申请提供一种负载均衡处理的方法进行举例说明,本申请实施例主要包括:

301、终端设备向负载均衡服务器发送第一报文。

302、负载均衡服务器根据匹配项匹配到来自终端设备的第一报文。

其中,所述第一报文中包括ip首部和校验和字段,所述ip首部包括源ip地址和目的ip地址,所述源ip地址为所述终端设备的第一ip地址,所述目的ip地址为所述负载均衡服务器的前端ip地址。

例如,终端设备的第一ip地址为201.202.203.204,负载均衡服务器的前端ip地址为200.200.200.200:169,负载均衡服务器的后端ip地址为100.125.10.10。那么,匹配项可以设置为第二ip地址(200.200.200.200:169)。当负载均衡服务器基于该匹配项(200.200.200.200:169)匹配到目的ip地址为200.200.200.200:169的报文时,可以确定该报文为待负载均衡处理的报文。

在一些实施方式中,考虑到负载均衡服务器会同时处理大批量的终端设备的报文,可能接收到的部分或全部报文才需要进行负载均衡处理,以及向后端服务器呈现这些终端设备的ip地址。所述负载均衡服务器还可以对所述第一报文设置第一标记,所述第一标记用于指示所述第一报文为待进行负载均衡处理的报文。

所述负载均衡服务器可将所收到的报文放入任务队列中,在处理任务队列中的报文时,所述负载均衡服务器可以仅更新设置所述第一标记的所述第一报文中的所述ip首部和所述校验和字段。可见,通过设置第一标记,负载均衡服务器能够有针对性的对需要进行负载均衡处理的报文进行处理,提高负载均衡处理的效率以及优化负载均衡处理机制。

303、所述负载均衡服务器更新所述ip首部和所述校验和字段,得到第二报文。

其中,所述第二报文中的源ip地址为所述第一ip地址,所述第二报文中的目的ip地址为后端服务器的第二ip地址,所述校验和字段包括用于指示所述负载均衡服务器的后端ip地址的指示信息。

一、所述负载均衡服务器更新所述ip首部可包括下述两种方式:

(1)所述负载均衡服务器将所述目的ip地址更新为所述第二ip地址。

例如图4所示,终端设备的第一ip地址为201.202.203.204,负载均衡服务器选定的后端服务器的第二ip地址为192.168.10.11:456。那么所述负载均衡服务器可更新第一报文中的目的ip地址,得到源ip地址和目的ip地址的两个映射关系:201.202.203.204→100.125.10.10;100.125.10.10→192.168.10.11:456。

(2)所述负载均衡服务器将所述源ip地址更新为所述负载均衡服务器的后端ip地址,以及将所述目的ip地址更新为所述第二ip地址。这样可得到负载均衡服务器与后端服务器之间的一个映射关系:所述后端ip地址与所述第二ip地址之间的映射关系。

例如,负载均衡服务器的后端ip地址为100.125.10.10,选定的后端服务器的第二ip地址为192.168.10.11:456,那么所述负载均衡服务器更新源ip地址和目的ip地址后,得到源ip地址和目的ip地址的一个映射关系:100.125.10.10→192.168.10.11:456。

然后,所述负载均衡服务器将所述源ip地址更新为所述第一ip地址,这样得到负载均衡服务器与后端服务器之间的一个映射关系:所述第一ip地址与所述第二ip地址之间的映射关系。可见,通过这种更新,可以将第一ip地址传递给所述后端服务器。

例如终端设备的第一ip地址为201.202.203.204,负载均衡服务器的后端ip地址为100.125.10.10,选定的后端服务器的第二ip地址为192.168.10.11:456,那么所述负载均衡服务器再次更新源ip地址后,得到源ip地址和目的ip地址的一个映射关系:201.202.203.204→192.168.10.11:456。

最终,所述负载均衡服务器可得到第一映射关系:{201.202.203.204→200.200.200.200:169,100.125.10.10→192.168.10.11:456}。

二、所述负载均衡服务器更新所述校验和字段时,可将校验和字段中的信息更新为所述指示信息,该指示信息可包括所述后端ip地址的子网网段,所述子网网段用于所述后端服务器还原所述后端ip地址。在一些实施方式中,所述负载均衡服务器可将所述后端ip地址的子网网段转换为预定义数据类型的数据,将转换为所述预定义数据类型的子网网段存储于所述校验和字段,这样所述后端服务器根据该指示信息去还原所述负载均衡服务器的后端ip地址。

一些实施方式中,所述负载均衡服务器更新所述校验和字段,包括:

所述负载均衡服务器将所述后端ip地址的子网网段转换为预定义数据类型的数据,将转换为所述预定义数据类型的子网网段存储于所述校验和字段。

例如,负载均衡服务器可将该子网网段转换为16进制的数据,然后将得到的16进制的数据存储于所述校验和字段,进而向后端服务器提供自身的后端ip地址,便于后端服务器后续可以实现向所述终端设备推送业务的报文返程流程。具体转换的数据类型的数据本申请不作限定。

如图4所示,后端服务器接收到第二报文后,从第二报文的校验和字段中获取到负载均衡服务器的后端ip地址的子网网段10.10,然后根据10.10还原得到负载均衡服务器的后端ip地址:100.125.10.10。

在一些实施方式,与负载均衡服务器类似,后端服务器也会接收到大量的报文。为有针对性的对特定的报文进行负载均衡处理和提高处理效率,所述负载均衡服务器更新所述ip首部之后,还可以在所述ip首部中的保留字段设置第二标记,所述第二标记用于所述后端服务器从接收到的报文中识别出所述第二报文。可见,通过设置第二标记,能够向后端服务器提示哪些报文需要进行负载均衡处理,相较于现有机制,具有一定的针对性,并且能够提高负载均衡处理的效率以及优化负载均衡处理机制。

304、所述负载均衡服务器记录所述第一ip地址、所述前端ip地址、所述后端ip地址和所述第二ip地址之间的第一映射关系。

例如图4所示,终端设备的第一ip地址为201.202.203.204,负载均衡服务器的前端ip地址为200.200.200.200:169,负载均衡服务器的后端ip地址为100.125.10.10,负载均衡服务器分配给终端设备的后端服务器的第二ip地址为192.168.10.11:456。那么,第一映射关系可以是指{201.202.203.204→200.200.200.200:169,100.125.10.10→192.168.10.11:456}。

305、所述负载均衡服务器向所述后端服务器发送所述第二报文。

其中,所述第二报文包括ip首部和校验和字段,所述ip首部包括源ip地址、目的ip地址和保留字段,所述源ip地址为终端设备的第一ip地址,所述目的ip地址为所述后端服务器的第二ip地址,所述校验和字段包括用于指示所述负载均衡服务器的后端ip地址的指示信息。

306、后端服务器接收来自负载均衡服务器的第二报文。

307、所述后端服务器从所述第二报文的ip首部中获取所述第一ip地址。

可选的,除了向所述后端服务器呈现所述第一ip地址的可见性,为了后续后端服务器可向终端设备主动推送业务。还可以包括下述操作308。

308、后端服务器根据所述校验和字段获取所述后端ip地址,并记录所述第一ip地址、所述后端ip地址和所述第二ip地址之间的第二映射关系。

记录所述第二映射关系,便于后续后端服务器可基于第二映射关系向终端设备主动推送业务,从而处理基于终端设备的ip地址的业务。

在一些实施方式中,所述后端服务器从所述第二报文中的校验和字段获取所述子网网段,然后根据所述子网网段即可还原所述后端ip地址。

在一些实施方式中,若所述负载均衡服务器对所述保留字段进行设置,那么,所述后端服务器可根据所述保留字段确定第二报文为待处理业务的报文,所述待处理业务是指所述后端服务器基于所述终端设备的第一ip地址进行的业务。例如,若所述负载均衡服务器在所述保留字段设置第二标记,所述后端服务器可根据所述第二标记从接收到的报文中识别出所述第二报文为待处理业务的报文。

可见,负载均衡服务器通过设置第二标记,能够向后端服务器提示哪些报文需要进行负载均衡处理。较于现有机制,后端服务器基于该第二标记就能够快速的、有针对性的从接收到的大量报文中确定出需要进行负载均衡处理的报文,相较于现有机制,能够提高负载均衡处理的效率以及优化负载均衡处理机制。

本申请实施例中,负载均衡服务器匹配到所述第一报文后,将所述第一报文中的源ip地址更新为所述第一ip地址,得到第二报文,将目的地址更新为第二ip地址,以及将校验和字段更新为用于指示所述负载均衡服务器的后端ip地址的指示信息。记录所述第一ip地址、前端ip地址、后端ip地址和所述第二ip地址之间的第一映射关系。并向所述后端服务器发送所述第二报文,由于第二报文中的源ip地址被更新为终端设备的第一ip地址,校验和包括所述指示信息,所以后端服务器能够从该第二报文中获取到所述第一ip地址,记录所述第二映射关系。这样后端服务器获取到第一ip地址后,就可以根据第二映射关系处理基于该第一ip地址的业务。并且,本申请实施例在不增加报文长度的前提下,应用已有的udp报文结构就能够实现终端设备的第一ip地址的可见性。

从而实现终端设备的第一ip地址的可见性。

需要说明的是,本申请中的第一报文和第二报文的结构一致、二者所包含的数据一致,区别主要在于保留字段、校验和字段以及目的ip地址不同,本申请实施例采用第一、第二进行区分,仅为便于引用。

可选的,在本申请的一些实施例中中,由于负载均衡服务器修改了原来校验和字段中的信息,所以后端服务器可能会认为第二报文为错误的报文,会丢弃该第二报文。所以,所述后端服务器在根据所述校验和字段获取所述负载均衡服务器的后端ip地址之后,还可以将所述第二报文中的校验和字段清零,或者重新计算所述第二报文中的校验和字段所指示的校验和。清0或者重新计算后,后端服务器再将该第二报文传送到其部署的虚拟机,收到第二报文的虚拟机可去获取相应的业务报文,并且,该终端设备的第一ip地址对该虚拟机为完全可见的状态。

可见,后端服务器对第二报文中的校验和字段清0或者重新计算后,能够消除认为第二报文为错误的报文,导致无法继续部署基于第一ip地址的业务应用的问题。

可选的,在本申请的一些实施例中中,后端服务器在获取上述第一ip地址和上述后端ip地址,以及记录上述第二映射关系后,若该后端服务器需要基于该第一ip地址向终端设备推送业务,还可以基于该第二映射关系向负载均衡服务器发送报文,发送报文的过程可以理解为前述发送第一报文和第二报文的返程,具体流程如图5所示,如下:

501、所述后端服务器根据所述第二映射关系将所述第二报文中的源ip地址更新为所述第二ip地址,以及将所述第二报文中的目的ip地址更新为所述后端ip地址,得到第三报文。

502、所述后端服务器向所述负载均衡服务器发送所述第三报文。

可见,后端服务器能够基于记录的第二映射关系向终端设备推送基于第一ip地址的报文。

503、所述负载均衡服务器接收所述后端服务器发送的第三报文。

504、所述负载均衡服务器根据所述第一映射关系将所述第三报文中的源ip地址更新为所述负载均衡服务器的前端ip地址,以及将所述第三报文中的目的ip地址更新为所述第一ip地址,得到第四报文。

505、所述负载均衡服务器将所述第四报文发给所述终端设备。

506、所述终端设备接收来自所述负载均衡服务器的第四报文。

本申请实施例中,由于所述负载均衡服务器已记录第一映射关系,当后端服务器基于第二映射关系发送的第三报文后,后端服务器就可以确定该第三报文是针对该终端设备发送的。所以,负载均衡服务器能够基于所述第一映射关系更新目的ip地址后,向终端设备推送第四报文,进而完成整个基于第一ip地址的业务的推送。

需要说明的是,本申请中的第三报文和第四报文的结构一致、二者所包含的数据一致,区别主要在于源ip地址和目的ip地址不同,本申请实施例采用第三、第四进行区分,仅为便于引用。

上述图1至图5中任一所对应的实施例中出现的任意特征的定义也同样适用于本申请中的图6至图9所对应的实施例,后续类似之处不再赘述。

以上对本申请中一种负载均衡处理的方法进行说明,以下对执行上述负载均衡的处理方法的负载均衡服务器、后端服务器及通信系统进行描述。

参照图6,所述负载均衡服务器可用于执行上述图1至图5中任一所对应的实施例中由负载均衡服务器执行的操作。本申请实施例中,所述负载均衡服务器可包括:

收发模块,用于根据匹配项匹配来自终端设备的第一报文,所述第一报文中包括ip首部和校验和字段,所述ip首部包括源ip地址和目的ip地址,所述源ip地址为所述终端设备的第一ip地址,所述目的ip地址为所述负载均衡服务器的前端ip地址;

处理模块,用于更新所述收发模块获取的所述第一报文中的所述ip首部和所述校验和字段,得到第二报文,所述第二报文中的源ip地址为所述第一ip地址,所述第二报文中的目的ip地址为后端服务器的第二ip地址,所述校验和字段包括用于指示所述负载均衡服务器的后端ip地址的指示信息;

记录所述第一ip地址、所述前端ip地址、所述后端ip地址和所述第二ip地址之间的第一映射关系;

通过所述收发模块向所述后端服务器发送所述第二报文,以使所述后端服务器获取所述第二报文的ip首部中的所述第一ip地址,以及根据所述校验和字段获取所述后端ip地址,记录所述第一ip地址、所述后端ip地址和所述第二ip地址之间的第二映射关系。

本申请实施例中,在所述收发模块匹配到所述第一报文后,所述处理模块将所述第一报文中的源ip地址更新为所述第一ip地址,得到第二报文,将目的地址更新为第二ip地址,以及将校验和字段更新为用于指示所述负载均衡服务器的后端ip地址的指示信息。记录所述第一ip地址、前端ip地址、后端ip地址和所述第二ip地址之间的第一映射关系。并通过所述收发模块向所述后端服务器发送所述第二报文,由于第二报文中的源ip地址被更新为终端设备的第一ip地址,校验和包括所述指示信息,所以后端服务器能够从该第二报文中获取到所述第一ip地址,记录所述第二映射关系。这样后端服务器获取到第一ip地址后,就可以根据第二映射关系处理基于该第一ip地址的业务,从而实现终端设备的第一ip地址的可见性。

可选的,在本申请的一些实施例中,所述处理模块具体用于:

将所述源ip地址更新为所述负载均衡服务器的后端ip地址,以及将所述目的ip地址更新为所述第二ip地址;

将所述源ip地址更新为所述第一ip地址。

可选的,在本申请的一些实施例中,所述处理模块根据匹配项匹配到来自终端设备的第一报文后,更新所述ip首部和所述校验和字段之前,所述处理模块还用于:

对所述第一报文设置第一标记,所述第一标记用于指示所述第一报文为待进行负载均衡处理的报文;

更新设置所述第一标记的所述第一报文中的所述ip首部和所述校验和字段。

可选的,在本申请的一些实施例中,所述处理模块更新所述ip首部之后,还用于:

在所述ip首部中的保留字段设置第二标记,所述第二标记用于所述后端服务器从接收到的报文中识别出所述第二报文。

可选的,在本申请的一些实施例中,所述处理模块还用于:

通过所述收发模块接收所述后端服务器发送的第三报文;

根据所述第一映射关系将所述第三报文中的源ip地址更新为所述负载均衡服务器的前端ip地址,以及将所述第三报文中的目的ip地址更新为所述第一ip地址,得到第四报文;

通过所述收发模块将所述第四报文发给所述终端设备。

可选的,在本申请的一些实施例中,所述指示信息包括所述后端ip地址的子网网段,所述子网网段用于所述后端服务器还原所述后端ip地址。

可选的,在本申请的一些实施例中,所述处理模块具体用于:

所述负载均衡服务器将所述后端ip地址的子网网段转换为预定义数据类型的数据,将转换为所述预定义数据类型的子网网段存储于所述校验和字段。

参照图7,所述后端服务器可用于执行上述图1至图5中任一所对应的实施例中由后端服务器执行的操作。本申请实施例中,所述后端服务器可包括:

收发模块,用于接收来自负载均衡服务器的第二报文,所述第二报文包括ip首部和校验和字段,所述ip首部包括源ip地址、目的ip地址和保留字段,所述源ip地址为终端设备的第一ip地址,所述目的ip地址为所述后端服务器的第二ip地址,所述校验和字段包括用于指示所述负载均衡服务器的后端ip地址的指示信息;

从所述第二报文的ip首部中获取所述第一ip地址,以及根据所述校验和字段获取所述后端ip地址;

处理模块,用于记录所述第一ip地址、所述后端ip地址和所述第二ip地址之间的第二映射关系。

本申请实施例中,收发模块接收来自负载均衡服务器的第二报文,由于所述第二报文包括ip首部和校验和字段,所述ip首部包括源ip地址、目的ip地址和保留字段,所述源ip地址为终端设备的第一ip地址,所述目的ip地址为所述后端服务器的第二ip地址,所述校验和字段包括用于指示所述负载均衡服务器的后端ip地址的指示信息。所以,处理模块能够直接从第二报文的ip首部中获取所述第一ip地址,以及根据所述校验和字段获取所述后端ip地址,并记录所述第二映射关系。这样后端服务器可以根据第二映射关系处理基于该第一ip地址的业务,从而实现终端设备的第一ip地址的可见性。

可选的,在本申请的一些实施例中,所述ip首部包括保留字段,所述处理模块在所述收发模块接收来自负载均衡服务器的第二报文之后,从所述第二报文的ip首部中获取所述第一ip地址,以及根据所述校验和字段获取所述负载均衡服务器的后端ip地址之前,还用于:

根据所述保留字段确定第二报文为待处理业务的报文,所述待处理业务是指所述后端服务器基于所述终端设备的第一ip地址进行的业务。

可选的,在本申请的一些实施例中,所述保留字段包括第二标记,所述处理模块具体用于:

根据所述第二标记从接收到的报文中识别出所述第二报文为待处理业务的报文。

可选的,在本申请的一些实施例中,所述指示信息包括所述后端ip地址的子网网段,所述处理模块具体用于:

通过收发模块从所述第二报文中的校验和字段获取所述子网网段;

根据所述子网网段还原所述后端ip地址;

所述处理模块在所述收发模块从所述第二报文的ip首部中获取所述第一ip地址之后,还用于:

根据所述第二映射关系将所述第二报文中的源ip地址更新为所述第二ip地址,以及将所述第二报文中的目的ip地址更新为所述后端ip地址,得到第三报文;

通过收发模块向所述负载均衡服务器发送所述第三报文。

可选的,在本申请的一些实施例中,所述处理模块在所述收发模块根据所述校验和字段获取所述负载均衡服务器的后端ip地址之后,还用于:

将所述第二报文中的校验和字段清零,或者重新计算所述第二报文中的校验和字段所指示的校验和。

参照图8,通信系统包括至少一个终端设备、至少一个如图6所示的负载均衡服务器、以及至少一个如图7所示的后端服务器。

图9为本申请实施例提供的负载均衡处理的装置的一结构示意图,其中,可包括至少一个处理器、至少一个网络接口或者其它通信接口、存储器、至少一个通信总线、至少一个收发器用于实现这些装置之间的连接通信。上述处理器用于执行上述存储器中存储的可执行模块,例如计算机程序。上述存储器可能包含高速随机存取存储器(英文全称:randomaccessmemory,英文简称:ram),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个网络接口(可以是有线或者无线)实现该系统网关与至少一个其它网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。

如图9所示,在一些实施方式中,上述存储器中存储了程序指令,上述程序指令可以被上述处理器执行,通过调用存储器存储的程序指令,上述处理器具体执行本申请实施例中的业务管理的方法时需要调用的程序代码。

需要说明的是,在本申请各实施例(包括图6、图7和图8所示的各实施例)中所有的收发模块对应的实体设备可以为收发器,所有的处理模块对应的实体设备可以为处理器。图6、图7和图8所示的各装置均可以具有如图9所示的结构,当其中一种装置具有如图9所示的结构时,图9中的处理器和收发器实现前述对应该装置的装置实施例提供的处理模块和收发模块相同或相似的功能,图9中的存储器存储处理器执行上述负载均衡处理的方法时需要调用的程序代码。

例如,当图9所示的负载均衡处理的装置实现如图5所示的负载均衡服务器的功能时,所述处理器可调用存储器中的指令执行下述操作:

通过所述收发器根据匹配项匹配来自终端设备的第一报文,所述第一报文中包括ip首部和校验和字段,所述ip首部包括源ip地址和目的ip地址,所述源ip地址为所述终端设备的第一ip地址,所述目的ip地址为所述负载均衡服务器的前端ip地址;

更新所述ip首部和所述校验和字段,得到第二报文,所述第二报文中的源ip地址为所述第一ip地址,所述第二报文中的目的ip地址为后端服务器的第二ip地址,所述校验和字段包括用于指示所述负载均衡服务器的后端ip地址的指示信息;

记录所述第一ip地址、所述前端ip地址、所述后端ip地址和所述第二ip地址之间的第一映射关系;

通过所述收发器向所述后端服务器发送所述第二报文,以使所述后端服务器获取所述第二报文的ip首部中的所述第一ip地址,以及根据所述校验和字段获取所述后端ip地址,记录所述第一ip地址、所述后端ip地址和所述第二ip地址之间的第二映射关系。

例如,当图9所示的负载均衡处理的装置实现如图6所示的后端服务器的功能时,所述处理器可调用存储器中的指令执行下述操作:

通过所述收发器接收来自负载均衡服务器的第二报文,所述第二报文包括ip首部和校验和字段,所述ip首部包括源ip地址、目的ip地址和保留字段,所述源ip地址为终端设备的第一ip地址,所述目的ip地址为所述后端服务器的第二ip地址,所述校验和字段包括用于指示所述负载均衡服务器的后端ip地址的指示信息;

从所述第二报文的ip首部中获取所述第一ip地址,以及根据所述校验和字段获取所述后端ip地址;

记录所述第一ip地址、所述后端ip地址和所述第二ip地址之间的第二映射关系。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。

所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

以上对本申请所提供的技术方案进行了详细介绍,本申请中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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