一种负载均衡的方法、装置和系统转让专利

申请号 : CN202010494889.9

文献号 : CN111866064B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 罗高威周坤鹏

申请人 : 华为技术有限公司

摘要 :

一种负载均衡系统、负载均衡方法以及服务节点,用于实现云计算网络中DR模式下,后端服务器和负载均衡器跨网段部署。所述系统包括负载均衡器以及至少一个服务节点,所述服务器节点上运行有虚拟交换机以及至少一个后端服务器,所述后端服务器逻辑接口的IP地址为所述负载均衡器的IP地址,负载均衡器接收客户端的访问请求,将访问请求的目的地址修改为目的后端服务器虚拟网卡的IP地址,当服务节点的虚拟交换机接收到访问请求时,将访问请求的目的地址修改为负载均衡器的IP地址,从而使得当目的后端服务器返回访问响应时,该访问响应的源地址为负载均衡器的地址。

权利要求 :

1.一种虚拟化环境下的负载均衡系统,其特征在于,所述系统包括负载均衡器以及至少一个服务节点,所述服务节点上运行有虚拟交换机以及至少一个后端服务器,所述负载均衡器,用于接收客户端的访问请求,所述访问请求的目的地址为负载均衡器的IP地址,为所述客户端选择目的后端服务器,将所述访问请求的目的地址修改为所述目的后端服务器虚拟网卡的IP地址,将所述访问请求发送给所述目的后端服务器所在的目的服务节点;

所述目的服务节点上的虚拟交换机,用于接收所述访问请求,将所述访问请求的目的地址修改为所述负载均衡器的IP地址,将所述访问请求发送给所述目的后端服务器;

所述目的后端服务器,用于接收并处理所述访问请求,向所述客户端返回访问响应,所述访问响应的源地址为所述负载均衡器的IP地址。

2.如权利要求1所述的系统,其特征在于,还包括网络控制器,所述网络控制器,用于向所述虚拟交换机下发流表,所述流表用于指示当所述虚拟交换机接收到发送给所述目的后端服务器的访问请求时,将所述访问请求的目的地址修改为负载均衡器的IP地址;

所述虚拟交换机,具体用于根据所述流表,修改所述访问请求的目的地址。

3.如权利要求1或2所述的系统,其特征在于,所述负载均衡系统还包括负载均衡节点,所述负载均衡节点上运行所述负载均衡器以及第一虚拟路由器,所述第一虚拟路由器上配置有所述负载均衡器的网关地址以及所述目的后端服务器的网关地址,所述负载均衡器,具体用于将所述访问请求发送到所述第一虚拟路由器的第一端口,所述第一端口的地址为所述负载均衡器的网关地址;

所述第一虚拟路由器,用于接收所述访问请求,将所述访问请求从第二端口发出,所述第二端口的地址为所述目的后端服务器的网关地址。

4.如权利要求3所述的系统,其特征在于,所述目的服务节点上运行有第二虚拟路由器,所述第二虚拟路由器上配置有所述客户端的网关地址以及所述目的后端服务器的网关地址,

所述目的后端服务器,具体用于将所述访问响应发送到所述第二虚拟路由器的第三端口,所述第三端口的地址为所述目的后端服务器的网关地址;

所述第二虚拟路由器,用于接收所述访问响应,将所述访问响应从第四端口发出,所述第四端口的地址为所述客户端的网关地址。

5.如权利要求1或2所述的系统,其特征在于,所述目的服务节点上运行有第三虚拟路由器,所述目的后端服务器还具备与所述目的后端服务器虚拟网卡的IP地址关联的局域网IP地址,所述局域网IP地址用于实现不同租户间的网络隔离,所述负载均衡器,具体用于将所述访问请求的目的地址修改为与所述目的后端服务器虚拟网卡的IP地址关联的局域网IP地址,将所述访问请求发送给所述目的后端服务器所在的所述目的服务节点;

所述目的服务节点上的所述第三虚拟路由器,还用于接收所述访问请求,将所述访问请求的目的地址修改为所述目的后端服务器的虚拟网卡的IP地址,将所述访问请求发送到所述虚拟交换机。

6.如权利要求5所述的系统,其特征在于,所述负载均衡器的IP地址还关联有公网IP地址,

所述虚拟交换机,还用于接收所述访问响应,将所述访问响应的源地址修改为所述负载均衡器的IP地址关联的公网IP地址,将所述访问响应返回给所述客户端。

7.一种负载均衡的方法,其特征在于,所述方法应用于负载均衡系统,所述负载均衡系统包括负载均衡器以及至少一个服务节点,所述服务节点上运行有虚拟交换机以及至少一个后端服务器,所述方法包括:

所述负载均衡器接收客户端的访问请求,所述访问请求的目的地址为负载均衡器的IP地址,为所述客户端选择目的后端服务器,将所述访问请求的目的地址修改为所述目的后端服务器虚拟网卡的IP地址,将所述访问请求发送给所述目的后端服务器所在的所述目的服务节点;

所述目的服务节点上的所述虚拟交换机接收所述访问请求,将所述访问请求的目的地址修改为所述负载均衡器的IP地址,将所述访问请求发送给所述目的后端服务器;

所述目的后端服务器,用于接收并处理所述访问请求,向所述客户端返回访问响应,所述访问响应的源地址为所述负载均衡器的IP地址。

8.如权利要求7所述的方法,其特征在于,所述将所述访问请求的目的地址修改为所述负载均衡器的IP地址包括:

所述虚拟交换机接收网络控制器下发的流表,所述流表用于指示当所述虚拟交换机接收到发送给所述目的后端服务器的访问请求时,根据所述流表将所述访问请求的目的地址修改为负载均衡器的IP地址。

9.如权利要求7或8所述的方法,其特征在于,所述负载均衡系统还包括负载均衡节点,所述负载均衡节点上运行所述负载均衡器以及第一虚拟路由器,所述第一虚拟路由器上配置有所述负载均衡器的网关地址以及所述目的后端服务器的网关地址,所述负载均衡器将所述访问请求发送给所述目的后端服务器所在的所述目的服务节点包括:

所述负载均衡器将所述访问请求发送到所述第一虚拟路由器的第一端口,所述第一端口的地址为所述负载均衡器的网关地址;

所述第一虚拟路由器接收所述访问请求,将所述访问请求从第二端口发出,所述第二端口的地址为所述目的后端服务器的网关地址。

10.如权利要求9所述的方法,其特征在于,所述目的服务节点上运行有第二虚拟路由器,所述第二虚拟路由器上配置有所述客户端的网关地址以及所述目的后端服务器的网关地址,

所述目的后端服务器向所述客户端返回访问响应包括:所述目的后端服务器将所述访问响应发送到所述第二虚拟路由器的第三端口,所述第三端口的地址为所述目的后端服务器的网关地址;

所述第二虚拟路由器接收所述访问响应,将所述访问响应从第四端口发出,所述第四端口的地址为所述客户端的网关地址。

11.如权利要求7或8所述的方法,其特征在于,所述目的服务节点上运行有第三虚拟路由器,所述目的后端服务器还具备与所述目的后端服务器虚拟网卡的IP地址关联的局域网IP地址,所述局域网IP地址用于实现不同租户间的网络隔离,所述负载均衡器将所述访问请求的目的地址修改为所述目的后端服务器虚拟网卡的IP地址,将所述访问请求发送给所述目的后端服务器所在的所述目的服务节点包括:所述负载均衡器将所述访问请求的目的地址修改为与所述目的后端服务器虚拟网卡的IP地址关联的局域网IP地址,将所述访问请求发送给所述目的后端服务器所在的所述目的服务节点;

所述目的服务节点上的所述虚拟交换机接收所述访问请求之前,所述方法还包括:所述目的服务节点上的所述第三虚拟路由器接收所述访问请求,将所述访问请求的目的地址修改为所述目的后端服务器的虚拟网卡的IP地址,将所述访问请求发送到所述虚拟交换机。

12.如权利要求11所述的方法,其特征在于,所述负载均衡器的IP地址还关联有公网IP地址,

所述目的后端服务器向所述客户端返回访问响应之后,所述方法还包括:所述虚拟交换机接收所述访问响应,将所述访问响应的源地址修改为所述负载均衡器的IP地址关联的公网IP地址,将所述访问响应返回给所述客户端。

13.一种服务节点,其特征在于,所述服务节点运行有虚拟交换机以及至少一个后端服务器,所述至少一个后端服务器由负载均衡器分配给客户端提供服务,所述服务节点上的所述虚拟交换机,用于接收所述负载均衡器发送的所述客户端的访问请求,所述访问请求的目的地址为所述后端服务器虚拟网卡的IP地址;

所述虚拟交换机,还用于将所述访问请求的目的地址修改为所述负载均衡器的IP地址,将所述访问请求发送给所述后端服务器;

所述后端服务器,用于接收并处理所述访问请求,向所述客户端返回访问响应,所述访问响应的源地址为所述负载均衡器的IP地址。

14.如权利要求13所述的服务节点,其特征在于,所述虚拟交换机,具体用于接收网络控制器下发的流表,所述流表用于指示当所述虚拟交换机接收到发送给所述后端服务器的访问请求时,根据所述流表将所述访问请求的目的地址修改为负载均衡器的IP地址。

15.如权利要求13或14所述的服务节点,其特征在于,所述服务节点上运行有第二虚拟路由器,所述第二虚拟路由器上配置有所述客户端的网关地址以及所述后端服务器的网关地址,

所述后端服务器,具体用于将所述访问响应发送到所述第二虚拟路由器的第三端口,所述第三端口的地址为所述后端服务器的网关地址;

所述第二虚拟路由器,用于接收所述访问响应,将所述访问响应从第四端口发出,所述第四端口的地址为所述客户端的网关地址。

16.如权利要求13或14所述的服务节点,其特征在于,所述服务节点上运行有第三虚拟路由器,所述后端服务器还具备与所述后端服务器虚拟网卡的IP地址关联的局域网IP地址,所述局域网IP地址用于实现不同租户间的网络隔离,所述服务节点上的所述第三虚拟路由器,还用于接收所述访问请求,将所述访问请求的目的地址修改为所述后端服务器的虚拟网卡的IP地址,将所述访问请求发送到所述虚拟交换机。

17.如权利要求16所述的服务节点,其特征在于,所述负载均衡器的IP地址还关联有公网IP地址,

所述虚拟交换机,还用于接收所述访问响应,将所述访问响应的源地址修改为所述负载均衡器的IP地址关联的公网IP地址,将所述访问响应返回给所述客户端。

18.一种负载均衡的方法,其特征在于,所述方法由服务节点执行,所述服务节点运行有虚拟交换机以及至少一个后端服务器,所述至少一个后端服务器由负载均衡器分配给客户端提供服务,所述方法包括:

所述服务节点上的所述虚拟交换机接收所述负载均衡器发送的所述客户端的访问请求,所述访问请求的目的地址为所述后端服务器虚拟网卡的IP地址;

所述虚拟交换机将所述访问请求的目的地址修改为所述负载均衡器的IP地址,将所述访问请求发送给所述后端服务器;

所述后端服务器接收并处理所述访问请求,向所述客户端返回访问响应,所述访问响应的源地址为所述负载均衡器的IP地址。

19.如权利要求18所述的方法,其特征在于,所述虚拟交换机将所述访问请求的目的地址修改为所述负载均衡器的IP地址包括:所述虚拟交换机,具体用于接收网络控制器下发的流表,所述流表用于指示当所述虚拟交换机接收到发送给所述后端服务器的访问请求时,根据所述流表将所述访问请求的目的地址修改为负载均衡器的IP地址。

20.一种虚拟化环境下的负载均衡系统,其特征在于,所述系统包括负载均衡器以及至少一个服务节点,所述服务节点上运行有虚拟交换机、虚拟路由器以及至少一个后端服务器,所述负载均衡器与所述后端服务器位于同一租户网络,所述负载均衡器,用于接收客户端的访问请求,为所述客户端选择目的后端服务器,将所述访问请求的目的地址修改为后端服务器的局域网IP地址,将所述访问请求发送到所述目的后端服务器所在的目的服务节点;

所述目的服务节点的虚拟路由器,用于接收所述访问请求,根据第一流表,将所述访问请求的目的地址由目的后端服务器的局域网IP地址修改为目的后端服务器的虚拟网卡的IP地址,将所述访问请求发送给所述目的服务节点的虚拟交换机;

所述虚拟交换机,用于根据第二流表,将所述访问请求的目的地址修改为所述负载均衡器的虚拟IP地址,将所述访问请求发送给所述目的后端服务器;

所述目的后端服务器,用于接收并处理所述访问请求,返回访问响应,所述访问响应的源地址修改为所述负载均衡器的虚拟IP地址;

所述虚拟路由器,还用于根据第三流表,将所述访问响应的源地址修改为所述负载均衡器的公网IP地址。

说明书 :

一种负载均衡的方法、装置和系统

技术领域

[0001] 本申请涉及IT技术领域,特别涉及一种负载均衡的方法、装置和系统。

背景技术

[0002] 负载均衡系统包含负载均衡器以及多台后端服务器,所述多台后端服务器(又称为member)组成服务器资源池,负载均衡器接收客户端的访问请求,根据负载均衡算法为客
户端选择提供服务的后端服务器。负载均衡器的IP地址为服务器资源池对外呈现的IP地
址,客户端通过该负载均衡器的IP地址即可访问服务器资源池中的后端服务器,而无需知
道后端服务器的地址。负载均衡器提供负载均衡服务的模式包含直接路由(Direct 
Routing,DR)模式和网络地址转换(Network Address Translation,NAT)模式。
[0003] 采用DR模式时,后端服务器向客户端返回的访问响应无需经过负载均衡器,因此传输性能较高。但由于DR模式需要负载均衡器的IP地址和后端服务器的IP地址位于同一网
段,后端服务器和负载均衡器不能跨网段部署,因此对负载均衡系统的组网造成了较大的
限制。

发明内容

[0004] 本申请实施例提供一种负载均衡的方法、装置和系统,用以解决云计算网络中DR模式下,后端服务器和负载均衡器不能跨网段部署的问题。
[0005] 本申请实施例提供的具体技术方案如下:
[0006] 第一方面,提供一种负载均衡系统,用于实现云计算网络中DR模式下,后端服务器和负载均衡器跨网段部署。所述系统包括负载均衡器以及至少一个服务节点,所述服务节
点上运行有虚拟交换机以及至少一个后端服务器,所述后端服务器逻辑接口的IP地址为所
述负载均衡器的IP地址,负载均衡器接收客户端的访问请求,将访问请求的目的地址修改
为目的后端服务器虚拟网卡的IP地址,当服务节点的虚拟交换机接收到访问请求时,将访
问请求的目的地址修改为负载均衡器的IP地址,从而使得当目的后端服务器返回访问响应
时,该访问响应的源地址为负载均衡器的地址。
[0007] 通过上述方式,负载均衡器和后端服务器的IP地址可以配置为不同的网段,同时可以实现返程的业务访问响应不经过负载均衡器,保证了网络性能,解决了云计算网络中
DR模式下,后端服务器和负载均衡器不能跨网段部署的问题。
[0008] 在一种可能的设计中,所述系统还包括网络控制器,
[0009] 所述网络控制器,用于向所述虚拟交换机下发流表,所述流表用于指示当所述虚拟交换机接收到发送给所述目的后端服务器的访问请求时,将所述访问请求的目的地址修
改为负载均衡器的IP地址;
[0010] 所述虚拟交换机,具体用于根据所述流表,修改所述访问请求的目的地址。
[0011] 在一种可能的设计中,所述负载均衡系统采用内网访问模式,所述负载均衡系统还包括负载均衡节点,所述负载均衡节点上运行所述负载均衡器以及第一虚拟路由器,所
述第一虚拟路由器上配置有所述负载均衡器的网关地址以及所述目的后端服务器的网关
地址,
[0012] 所述负载均衡器,具体用于将所述访问请求发送到所述第一虚拟路由器的第一端口,所述第一端口的地址为所述负载均衡器的网关地址;
[0013] 所述第一虚拟路由器,用于接收所述访问请求,将所述访问请求从第二端口发出,所述第二端口的地址为所述目的后端服务器的网关地址。
[0014] 进一步的,所述目的服务节点上运行有第二虚拟路由器,所述第二虚拟路由器上配置有所述客户端的网关地址以及所述目的后端服务器的网关地址,
[0015] 所述目的后端服务器,具体用于将所述访问响应发送到所述第二虚拟路由器的第三端口,所述第三端口的地址为所述目的后端服务器的网关地址;
[0016] 所述第二虚拟路由器,用于接收所述访问响应,将所述访问响应从第四端口发出,所述第四端口的地址为所述客户端的网关地址。
[0017] 在上述内网访问模式中,客户端通过内网地址(虚拟IP地址)访问负载均衡器。负载均衡器以及后端服务器部署在同一租户网络中,负载均衡器以及后端服务器的IP地址为
同一租户网络的不同网段,二者均可以通过所在节点的虚拟路由器进行通信。
[0018] 在公网访问模式中,负载均衡器为独立的物理服务器,具备公网IP地址,客户端通过负载均衡器的公网IP地址访问后端服务器,后端服务器可以为运行在服务节点上的虚拟
机或者容器。负载均衡器的公网IP地址关联有虚拟IP地址,该虚拟IP地址与后端服务器的
虚拟网卡的IP地址,以及后端服务器的逻辑接口的IP地址在同一租户网络的不同网段。更
进步一步的,为了区分不同租户,负载均衡器以及后端服务器还具备局域网IP地址。
[0019] 在公网访问模式中,所述目的服务节点上运行有第三虚拟路由器,所述目的后端服务器还具备与所述目的后端服务器虚拟网卡的IP地址关联的局域网IP地址,所述局域网
IP地址用于实现不同租户间的网络隔离,
[0020] 所述负载均衡器,具体用于将所述访问请求的目的地址修改为所述目的后端服务器的局域网IP地址,将所述访问请求发送给所述目的后端服务器所在的所述目的服务节
点;
[0021] 所述目的服务节点上的所述第三虚拟路由器,还用于接收所述访问请求,将所述访问请求的目的地址修改为所述目的后端服务器的虚拟网卡的IP地址,将所述访问请求发
送到所述虚拟交换机。
[0022] 进一步的,所述负载均衡器的IP地址还关联有公网IP地址,
[0023] 所述虚拟交换机,还用于接收所述访问响应,将所述访问响应的源地址修改为所述负载均衡器的IP地址关联的公网IP地址,将所述访问响应返回给所述客户端。
[0024] 通过上述方式,实现了内网访问模式和公网访问模式两种场景下的负载均衡方法,在上述方法中,负载均衡器和后端服务器的IP地址可以配置为不同的网段,同时可以实
现返程的业务访问响应不经过负载均衡器,保证了网络性能,解决了云计算网络中DR模式
下,后端服务器和负载均衡器不能跨网段部署的问题。
[0025] 第二方面,提供一种负载均衡的方法,所述方法应用于前述第一方面的负载均衡系统,所述负载均衡系统包括负载均衡器以及至少一个服务节点,所述服务节点上运行有
虚拟交换机以及至少一个后端服务器,所述后端服务器逻辑接口的IP地址为所述负载均衡
器的IP地址,所述方法包括:
[0026] 所述负载均衡器接收客户端的访问请求,为所述客户端选择目的后端服务器,将所述访问请求的目的地址修改为所述目的后端服务器虚拟网卡的IP地址,将所述访问请求
发送给所述目的后端服务器所在的所述目的服务节点;
[0027] 所述目的服务节点上的所述虚拟交换机接收所述访问请求,将所述访问请求的目的地址修改为所述负载均衡器的IP地址,将所述访问请求发送给所述目的后端服务器;
[0028] 所述目的后端服务器,用于接收并处理所述访问请求,向所述客户端返回访问响应,所述访问响应的源地址为所述负载均衡器的IP地址。
[0029] 在第二方面的方法中,所述负载均衡系统中的各个部件执行前述第一方面中的步骤。
[0030] 第三方面,提供了一种服务节点,所述服务节点运行有虚拟交换机以及至少一个后端服务器,所述至少一个后端服务器由负载均衡器分配给客户端提供服务,所述后端服
务器逻辑接口的IP地址为所述负载均衡器的IP地址,
[0031] 所述服务节点上的所述虚拟交换机,用于接收所述负载均衡器发送的所述客户端的访问请求,所述访问请求的目的地址为所述后端服务器虚拟网卡的IP地址;
[0032] 所述虚拟交换机,还用于将所述访问请求的目的地址修改为所述负载均衡器的IP地址,将所述访问请求发送给所述后端服务器;
[0033] 所述后端服务器,用于接收并处理所述访问请求,向所述客户端返回访问响应,所述访问响应的源地址为所述负载均衡器的IP地址。
[0034] 在第三方面可能的设计中,服务节点上的虚拟交换机、虚拟路由器以及后端服务器执行前述第一方面中对应部件的步骤。
[0035] 第四方面,提供了另一种负载均衡的方法,服务节点上的虚拟交换机、虚拟路由器以及后端服务器执行前述第一方面中对应部件的步骤。
[0036] 第五方面,提供了另一种虚拟化环境下的负载均衡系统,应用于公网访问模式,所述系统包括负载均衡器以及至少一个服务节点,所述服务节点上运行有虚拟交换机、虚拟
路由器以及至少一个后端服务器,所述负载均衡器与所述后端服务器位于同一租户网络,
所述后端服务器逻辑接口的IP地址为所述负载均衡器的虚拟IP地址,
[0037] 所述负载均衡器,用于接收客户端的访问请求,为所述客户端选择目的后端服务器,将所述访问请求的目的地址修改为后端服务器的局域网IP地址,将所述访问请求发送
到所述目的后端服务器所在的目的服务节点;
[0038] 所述目的服务节点的虚拟路由器,用于接收所述访问请求,根据第一流表,将所述访问请求的目的地址由目的后端服务器的局域网IP地址修改为目的后端服务器的虚拟网
卡的IP地址,将所述访问请求发送给所述目的服务节点的虚拟交换机;
[0039] 所述虚拟交换机,用于根据第二流表,将所述访问请求的目的地址修改为目的后端服务器逻辑接口的IP地址,将所述访问请求发送给所述目的后端服务器;
[0040] 所述目的后端服务器,用于接收并处理所述访问请求,返回访问响应,所述访问响应的源地址修改为所述负载均衡器的虚拟IP地址;
[0041] 所述虚拟路由器,还用于根据第三流表,将所述访问响应的源地址修改为所述负载均衡器的公网IP地址。
[0042] 第六方面,提供了一种负载均衡系统中的服务节点,该服务节点为物理服务器,具有实现上述第一方面和任一种可能的设计中服务节点上各部件行为的功能。所述功能可以
通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与
上述功能相对应的模块。
[0043] 在一个可能的设计中,服务节点包括收发器和处理器,其中,处理器用于调用一组程序代码,以执行如第四方面中所述的方法。
[0044] 第七方面,提供了一种计算机存储介质,用于储存为上述方面所述的服务节点所用的计算机软件指令,其包含用于执行上述方面所设计的程序。

附图说明

[0045] 图1为本发明实施例中的虚拟化环境下的负载均衡系统的结构示意图;
[0046] 图2为本发明实施例中的服务节点的结构示意图;
[0047] 图3为本发明实施例提供的一种负载均衡的方法流程示意图;
[0048] 图4为本发明实施例中的虚拟化环境下的另一种负载均衡系统的结构示意图;
[0049] 图5为本发明实施例提供的另一种负载均衡方法流程示意图;
[0050] 图6为本发明实施例提供的一种服务节点硬件结构示意图。

具体实施方式

[0051] 下面将结合附图对本申请作进一步描述。
[0052] 如图1所示,为本发明实施例提供的一种负载均衡系统的结构示意图,该监控系统包括客户端11、负载均衡节点2以及服务节点3,所述负载均衡节点2上运行有第一虚拟路由
器21和负载均衡器22,所述服务节点3上运行第二虚拟路由器31、至少一个后端服务器32
(图1中以一个后端服务器为例)以及虚拟交换机33。在所述负载均衡系统中,客户端11、负
载均衡节点2以及服务节点3均可以为多个,其中,多个服务节点3组成服务器资源池为客户
端11提供服务,可选的,负载均衡节点2可以采用分布式部署,本发明实施例对此并不进行
限定。所述客户端11、负载均衡节点2以及服务节点3之间通过云网络相互通信。示例性的,
如图2所示,所述客户端11可以为运行在访问节点上,具体的,所述客户端可以为虚拟机或
者容器。可选的,所述负载均衡器22以及所述后端服务器32均可以为运行在物理节点上的
虚拟机或容器。
[0053] 租户可以在访问节点上部署客户端11,为客户端11配置IP地址,示例性的,客户端11的IP地址为192.168.1.10/24。租户在负载均衡节点2上部署负载均衡器22,并将负载均
衡器22配置为NAT模式,为负载均衡器22分配IP地址,示例性的,负载均衡器22的IP地址为
192.168.2.10/24。租户在服务节点3上配置后端服务器32,为后端服务器32分配IP地址,所
述后端服务器32的IP地址包括后端服务器32虚拟网卡的IP地址以及后端服务器32逻辑接
口的IP地址,所述后端服务器32逻辑接口的IP地址为所述负载均衡器22的IP地址,示例性
的,后端服务器32虚拟网卡的IP地址为192.168.3.10/24,逻辑接口的IP地址为
192.168.2.10。云管理平台为每个节点上的虚拟路由器(12/21/31)的多个端口分配配置客
户端11的网关地址、负载均衡器22的网关地址以及后端服务器32的网关地址。图1所示的系
统结构对应于内网访问模式。
[0054] 基于图1所示的系统结构,如图3所示,为本发明实施例提供的一种负载均衡的方法流程示意图,所述方法包括:
[0055] 步骤301:客户端向负载均衡器发送访问请求,所述访问请求的源地址为所述客户端的IP地址,目的地址为所述负载均衡器的IP地址。
[0056] 在一种可能的实施场景中,负载均衡器的IP地址对客户端呈现,作为客户端请求服务器资源池中的后端服务器的入口地址。具体的,在云计算场景下,该负载均衡器的IP地
址又称为虚拟IP地址,客户端发送的访问请求的目的地址为负载均衡器的虚拟IP地址。
[0057] 所述访问请求的源IP地址为192.168.1.10,目的IP地址为192.168.2.10,所述访问请求被发送到所述访问节点的虚拟路由器的端口1(客户端的网关地址对应的端口)。由
于客户端所在的访问节点的虚拟路由器上配置有负载均衡器的网关地址对应的端口(例
如,端口2),因此,访问节点的虚拟路由器的端口1接收到访问请求后,根据访问请求的目的
地址(192.168.2.10),将该访问请求从端口2发出,发送到负载均衡器的IP地址
192.168.2.10。
[0058] 步骤302:负载均衡器接收到所述访问请求后,基于负载均衡算法,为所述客户端选择提供服务的后端服务器。
[0059] 所述负载均衡器为NAT模式,负载均衡器记录有后端服务器列表,根据负载均衡算法从后端服务器列表中选择提供服务的后端服务器,在一种可能的实施场景中,LB服务器
的LVS软件配置中保存了后端服务器的信息,负载均衡器可以从而可以获取选择的后端服
务器的地址。
[0060] 步骤303:负载均衡器对访问请求的目的地址进行NAT转换,将访问请求的目的地址(192.168.2.10)修改为后端服务器虚拟网卡的IP地址(192.168.3.10)。
[0061] 负载均衡器转发所述访问请求,此时所述访问请求的源地址为192.168.1.10,目的IP地址为192.168.3.10。负载均衡器将所述访问请求发送到所述第一虚拟路由器的第一
端口,所述第一端口的地址为所述负载均衡器的网关地址,所述第一虚拟路由器接收所述
访问请求,将所述访问请求从第二端口发出,所述第二端口的地址为所述目的后端服务器
的网关地址。
[0062] 步骤304:后端服务器所在的服务节点的虚拟交换机接收所述访问请求,将所述访问请求的目的地址修改为所述负载均衡器的IP地址,将所述访问请求发送给所述目的后端
服务器。
[0063] 具体的,所述虚拟交换机接收网络控制器下的流表,所述流表用于指示当所述虚拟交换机接收到发送给所述目的后端服务器的访问请求时,将所述访问请求的目的地址修
改。所述虚拟交换机根据所述流表,将所述访问请求的目的地址修改负载均衡器的IP地址
(192.168.2.10),由于后端服务器逻辑接口的IP地址为所述负载均衡器的IP地址,所以,在
虚拟交换机将所述访问请求的目的地址修改为所述负载均衡器的IP地址后,所述访问请求
可以被发送到所述后端服务器。
[0064] 步骤305:所述后端服务器接收并处理所述访问请求。
[0065] 步骤306向所述客户端返回访问响应,所述访问响应的源地址为所述负载均衡器的IP地址。
[0066] 所述后端服务器接收到的访问请求的源IP地址为客户端的IP地址(192.168.1.10),目的IP地址为负载均衡器的IP地址(192.168.2.10),后端服务器对访问
请求进行处理,并返回访问响应,所述访问响应的源IP地址为负载均衡器的IP地址
(192.168.2.10),目的IP地址为客户端的IP地址(192.168.1.10)。后端服务器所在的服务
节点上的第二虚拟路由器上配置有所述客户端的网关地址以及所述目的后端服务器的网
关地址,所述目的后端服务器将所述访问响应发送到所述第二虚拟路由器的第三端口,所
述第三端口的地址为所述目的后端服务器的网关地址;所述第二虚拟路由器接收所述访问
响应,将所述访问响应从第四端口发出,所述第四端口的地址为所述客户端的网关地址。
[0067] 访问响应到达客户端所在的访问节点后,由访问节点上的虚拟交换机根据访问响应的目的地址将所述访问响应发送给所述客户端。
[0068] 需要说明的是,由于访问请求的目的地址为负载均衡器的IP地址,因此,后端服务器可以直接将负载均衡器的IP地址作为访问响应的源地址。
[0069] 如图4所示,为本发明实施例提供的另一种负载均衡系统的结构示意图,本实施例为公网访问模式,即负载均衡器对外呈现的地址为公网地址(例如,9.9.9.9),客户端访问
该公网地址,由负载均衡器为客户端选择后端服务器提供服务,后端服务器组成的硬件资
源池的内部网络对客户端不可见。
[0070] 客户端的IP地址为公网IP地址(例如,8.8.8.8)。
[0071] 租户部署负载均衡器,并将负载均衡器配置为NAT模式。负载均衡器以物理服务器的形式部署,为客户端提供负载均衡服务,所述负载均衡器的虚拟IP地址(例如,
192.168.2.10)还关联有公网IP地址(9.9.9.9),客户端使用负载均衡器的公网IP地址访问
所述负载均衡器。所虚拟均衡器与所述服务节点上运行的后端服务器处于同一内网中,因
此,所述负载均衡器物理接口地址上还配置有局域网IP地址(例如,100.100.100.100)。
[0072] 租户在服务节点上配置后端服务器,为后端服务器分配IP地址,所述后端服务器的IP地址包括后端服务器虚拟网卡的IP地址(例如,192.168.3.10)以及后端服务器逻辑接
口的IP地址(例如,192.168.2.10),所述后端服务器逻辑接口的IP地址为所述负载均衡器
的IP地址。进一步的,所述后端服务器的虚拟网卡的IP地址还关联有后端服务器的局域网
IP地址(例如,100.120.2.10)。
[0073] 负载均衡器的虚拟IP关联服务节点上运行的后端服务器。
[0074] 属于同一租户的负载均衡器和后端服务器被配置到同一租户网络中。不同租户网络中的负载均衡器和后端服务器可以通过局域网IP地址进行区分,因此,不同租户的后端
服务器可以使用相同的虚拟网卡的IP地址,不同租户的负载均衡器可以使用相同的虚拟IP
地址。例如,硬件资源池中的服务节点上运行的租户A的一个后端服务器的虚拟网卡的IP地
址为192.168.3.10,硬件资源池中的服务节点上运行的租户B的一个后端服务器的虚拟网
卡的IP地址也可以为192.168.3.10。
[0075] 结合图4所示的负载均衡系统的结构,如图5所示,为本发明实施例提供的另一种负载均衡方法流程,包括:
[0076] 步骤501:客户端发送访问请求,通过公网IP地址(8.8.8.8)访问负载均衡器虚拟IP地址关联的公网IP地址(9.9.9.9)。
[0077] 具体的,客户端可以通过中间设备如交换机,配置下一跳到100.100.100.100的路由,到达负载均衡器。
[0078] 步骤502:负载均衡器接收该访问请求,根据负载均衡算法选择为客户端提供服务的后端服务器,将访问请求的目的地址修改为后端服务器的局域网IP地址,将访问请求发
送给目的后端服务器所在的服务节点。
[0079] 具体的,由于负载均衡器上部署的LVS配置的是NAT模式,LB服务器对报文进行转换,转换后的目的IP地址为选择的后端服务器的局域网IP地址(100.120.2.10),访问请求
的源IP地址保持不变,仍然是8.8.8.8,将访问请求发送给后端服务器所在的服务节点。
[0080] 具体的,负载均衡器可以与后端服务器所在的服务节点建立隧道,通过隧道传递所述访问请求,隧道建立的方式可以采用现有技术中的方案,本发明实施例对此并不进行
限定。
[0081] 步骤503:选定的目的后端服务器所在服务节点接收该访问请求,该访问请求被转发到服务节点的虚拟路由器,该虚拟路由器上配置有本节点上所有后端服务器的网关地
址。该虚拟路由器根据第一流表,将该访问请求的目的地址由目的后端服务器的局域网IP
地址修改为目的后端服务器的虚拟网卡的IP地址,将访问请求发送给服务节点的虚拟交换
机。
[0082] 在一种具体的场景中,租户可以对负载均衡网络进行管理,通过网络控制器下发第一流表到虚拟路由器,所述第一流表用于表示当虚拟路由器接收到目的地址为后端服务
器局域网IP地址的访问请求时,将访问请求的目的地址修改为该后端服务器虚拟网卡的IP
地址。
[0083] 步骤504:该虚拟交换机接收访问请求,根据第二流表,将访问请求的目的地址修改为目的后端服务器逻辑接口的IP地址(即为负载均衡器的虚拟IP地址),将该访问请求发
送给目的后端服务器。
[0084] 在一种具体的场景中,租户在对负载均衡网络进行管理时,通过网络控制器在虚拟交换机配置第二流表,用于表示当虚拟交换机接收到目的地址为后端服务器虚拟网卡的
IP地址(192.168.3.10)的访问请求时,将访问请求的目的地址修改为该后端服务器的逻辑
接口的IP地址(192.168.2.10)。
[0085] 步骤505:目的后端服务器接收虚拟交换机发送的访问请求,对该访问请求进行处理,并返回业务访问响应,该业务访问响应的源地址为目的后端服务器逻辑接口的IP地址
(即为负载均衡器的虚拟IP地址),目的地址为客户端的公网IP地址。
[0086] 步骤506:由于后端服务器默认路由的下一跳为网关地址(192.168.3.1),报文首先发送到服务节点的虚拟路由器,虚拟路由器根据第三流表将业务访问响应的源地址修改
为负载均衡器的公网IP地址,所述虚拟路由器将该业务访问响应发送给客户端。
[0087] 在一种具体的场景中,租户在对负载均衡网络进行管理时,通过网络控制器下发第三流表到虚拟路由器,所述第三流表用于表示当虚拟路由器接收到源地址为负载均衡器
虚拟IP地址的报文(具体可以为业务访问响应)时,将该报文的源地址修改为负载均衡器的
公网IP地址。
[0088] 需要说明的是,在步骤503和步骤504中,访问请求的目的地址经过两次修改:第一次为,虚拟路由器将访问请求的目的地址由目的后端服务器的局域网IP地址修改为目的后
端服务器的虚拟网卡的IP地址;第二次为,虚拟交换机将访问请求的目的地址由目的后端
服务器的虚拟网卡的IP地址修改为负载均衡器的虚拟IP地址。在一种可能的实施方式中,
步骤503和步骤504可以由下述步骤直接替换:目的后端服务器所在的服务节点的虚拟交换
机在接收到访问请求时,根据网络控制器下发的流表,将访问请求的目的地址修改为负载
均衡器的虚拟IP地址(即将访问请求的目的地址由目的后端服务器的局域网IP地址修改为
负载均衡器的虚拟IP地址),然后将访问请求发送给目的后端服务器。替换的步骤,只需要
执行一次目的地址修改。
[0089] 需要说明的是,由于业务访问响应的源地址和目的地址均为公网IP地址,因此,该业务访问响应可以不经过负载均衡器准确路由到客户端,且由于该业务访问响应的源地址
为负载均衡器的公网IP地址,因此,负载均衡系统的内网地址对客户端不可见,客户端根据
该业务访问响应的源地址认为该业务访问响应由负载均衡器发出。
[0090] 上述过程中,返程的业务访问响应不经过负载均衡器,实现了负载均衡的DR模式。
[0091] 本发明实施例提供了内网访问模式和公网访问模式两种场景下的负载均衡方法,在上述方法中,负载均衡器和后端服务器的IP地址可以配置为不同的网段,同时可以实现
返程的业务访问响应不经过负载均衡器,保证了网络性能,解决了云计算网络中DR模式下,
后端服务器和负载均衡器不能跨网段部署的问题。
[0092] 在本发明各实施例中,后端服务器可以为运行在服务节点上的虚拟机或者容器。后端服务器的地址具体为虚拟机或容器的地址。
[0093] 基于同一发明构思,参阅图6所示,本申请实施例还提供了服务节点硬件结构示意图,服务节点600,包括收发器601、处理器602、存储器603,收发器601、存储器603均与处理
器602连接,需要说明的是图6所示的各部分之间的连接方式仅为一种可能的示例,也可以
是,收发器601与存储器603均与处理器602连接,且收发器601与存储器603之间没有连接,
或者,也可以是其他可能的连接方式。
[0094] 其中,存储器603中存储一组程序,处理器602用于调用存储器603中存储的程序,以执行前述图1至图5所示的负载均衡系统和负载均衡方法中服务节点上的各模块的功能。
[0095] 在图6中,处理器602可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。
[0096] 处理器602还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application‑specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:
programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件
(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:
field‑programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic array 
logic,缩写:GAL)或其任意组合。
[0097] 存储器603可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random‑access memory,缩写:RAM);存储器603也可以包括非易失性存储器(英
文:non‑volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard disk 
drive,缩写:HDD)或固态硬盘(英文:solid‑state drive,缩写:SSD);存储器603还可以包
括上述种类的存储器的组合。
[0098] 负载均衡器所在的物理服务器也可以采用如图6所示的硬件结构。本发明实施例不再赘述。
[0099] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形
式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储
介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0100] 这些计算机程序代码可以存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中。
[0101] 显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求
及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。