虚拟化环境负载均衡流量处理方法、系统及计算机介质

文档序号:72682 发布日期:2021-10-01 浏览:15次 >En<

阅读说明:本技术 虚拟化环境负载均衡流量处理方法、系统及计算机介质 (Load balancing flow processing method, system and computer medium for virtualized environment ) 是由 陈光辉 过育红 于 2021-07-01 设计创作,主要内容包括:本发明提供了虚拟化环境负载均衡流量处理方法、系统及计算机介质,包括:对经过负载均衡器且发往real server虚拟机的流量设置第一标记;挂载负载均衡器的第一主机将设置有第一标记的流量进行报文封装,所述报文的隧道封装标记设置第二标记;将设置有第二标记的报文通过隧道技术发送至real server虚拟机;挂载所述real server虚拟机的第二主机读取具有第二标记的报文,并在会话记录表中记录该报文路径信息;挂载所述real server虚拟机的第二主机查找会话记录表,如果存在正向流量,则表明该流量为需要返回负载均衡器的回程流量,使用会话表记录中的源端MAC地址作为回程报文的目的MAC地址,实现了虚拟化环境负载均衡源端网络地址保持不变,且real server虚拟机不需要再配置默认路由。(The invention provides a load balancing flow processing method, a system and a computer medium for a virtualized environment, comprising the following steps: setting a first mark for the flow which passes through the load balancer and is sent to the real server virtual machine; a first host mounting a load balancer packages the traffic provided with a first mark, and a tunnel packaging mark of the message is provided with a second mark; sending the message with the second mark to a real server virtual machine through a tunneling technology; reading a message with a second mark by a second host mounted with the real server virtual machine, and recording the path information of the message in a session record table; and searching a session record table by the second host mounting the real server virtual machine, if the forward flow exists, indicating that the flow is the return flow needing to be returned to the load balancer, and using the source-end MAC address in the session table record as the destination MAC address of the return message, so that the source-end network address of the load balancing of the virtualized environment is kept unchanged, and the real server virtual machine does not need to be configured with a default route.)

虚拟化环境负载均衡流量处理方法、系统及计算机介质

技术领域

本发明涉及计算机

技术领域

,尤其涉及一种虚拟化环境负载均衡流量处理方法、系统及计算机介质。

背景技术

在负载均衡场景中,服务器需要对客户端进行识别,用于网络安全和大数据的分析。目前七层流量主要通过HTTP head的x-forward-for来获取,而四层的TCP和UDP流量的客户端源IP获取方式主要有以下三种。

现有技术方案一:负载均衡的DR模式,客户端流量在负载均衡器上仅改变目的MAC地址,将流量发送到real server,客户端的IP不变,real server能直接取到客户端源IP,该技术方案存在的技术问题在于,负载均衡器的IP和real server需要在用同一个二层网络,组网限制较大。

现有技术方案二:负载均衡的NAT模式,客户端流量在负载均衡器上进行目的地址转换(下文简称DNAT,全称为Destination Network Address Translation),目的IP修改成real server的IP地址,在real server上配置路由,网关指向负载均衡器,客户端的IP不变,real server能直接取到客户端源IP,该技术方案存在的技术问题在于,该技术通常通过real server配置的路由进行流量回程,并需要在real server配置环回口及环回口上配置虚IP的地址。

现有技术方案三:负载均衡的FULL NAT模式,客户端流量在负载均衡器上做源地址转换(下文简称SNAT,全称为Source Network Address Translation)和DNAT,目的IP修改成real server的IP地址,源IP修改为负载均衡器的IP地址,负载均衡器上通过TOA(TcpOption Address)模块,将客户端的源IP携带到TCP报文option字段中,在real server上安装TOA补丁,在TCP建立连接时将源IP存放到socket信息中,通过系统调用获取客户端源IP,该技术方案存在的技术问题在于,需要在real server上安装补丁,并需要修改应用程序获取客户端源IP的方式,对于客户业务上云成本较高。

有鉴于此,有必要对现有技术中的虚拟化环境负载均衡流量处理方法予以改进,以解决上述问题。

发明内容

本发明的目的在于揭示一种虚拟化环境负载均衡流量处理方法、系统及计算机介质,通过对流量设置第一标记,并对该流量报文的隧道封装标记设置第二标记,将设置有第二标记的报文以隧道技术发往real server虚拟机,挂载real server虚拟机的主机以会话记录表方式读取并记录报文的路径信息,并以该报文的路径信息制定回程的路径信息并封装回程报文,一方面,在NAT模式情况下,实现了虚拟化环境负载均衡源端网络地址保持不变,另一方面,real server虚拟机不需要再配置默认路由,在real server虚拟机不进行任何改变情况下,实现源端网络地址保持不变并回程。

为实现上述第一个发明目的,本发明提供了虚拟化环境负载均衡流量处理方法,包括以下步骤:

对经过负载均衡器且发往real server虚拟机的流量设置第一标记;

挂载负载均衡器的第一主机将设置有第一标记的流量进行报文封装,所述报文的隧道封装标记设置第二标记;

将设置有第二标记的报文通过隧道技术发送至real server虚拟机;

挂载所述real server虚拟机的第二主机识别出具有第二标记的报文并读取,并在会话记录表中记录该报文路径信息;

挂载所述real server虚拟机的第二主机查找会话记录表,如果存在正向流量,则表明该流量为需要返回负载均衡器的回程流量,以会话表记录中的报文路径信息为依据设置回程报文路径信息。

作为本发明的进一步改进,发往real server虚拟机的流量的第一标记由负载均衡器通过IP Table的mangle表中的PREROUTING链进行设置,所述第一标记为一字符串。

作为本发明的进一步改进,还包括,负载均衡器的第一主机通过mark程序判断流量是否设置有第一标记。

作为本发明的进一步改进,所述第二标记为报文的隧道封装标记保留位的改进。

作为本发明的进一步改进,所述隧道封装标记为8bit,表征为“RRRRIRRR”,R位为保留位,其中“I”位为1时,则表示隧道封装报文有效,为“0”则表示无效,在设置所述第二标记时,将所述隧道封装标记的前4个bit保留位位置设置为1,即“IIIIIRRR”作为第二标记。

作为本发明的进一步改进,还包括,挂载所述real server虚拟机的第二主机读取报文路径信息,并判断是否为经过隧道的报文,若是,则进一步判断是报文是否设置有第二标记,若是,则启动会话记录表,若否,则按常规路由进行转发。

作为本发明的进一步改进,所述报文路径信息为隧道端点网络地址、隧道端点网络标识、目的网络地址、源端网络地址、网络协议类型、目的端口、源端端口、源端MAC地址;

所述回程报文路径信息为源端MAC地址作为回程报文的目的MAC地址,隧道端点网络地址作为回程封装报文外层头部的目的网络地址,隧道端点网络标识作为回程封装报文外层头部的目的隧道端点网络标识。

作为本发明的进一步改进,所述隧道技术为VXLAN、GRE、MPLS中的一种,所述会话记录表采用hash存储,查找会话记录表时,查找内容为src_ip,src_port,dst_ip,dst_port,protocol。

基于相同发明思想,并为实现第二个发明目的,本申请还揭示了一种虚拟化环境负载均衡流量处理系统,包括:

源端,用于发送的网络流量请求;

第一网卡,用于将源端的网络流量发送至负载均衡器;

负载均衡器,用于接受所述第一网卡发送的流量,并对流量设置第一标记;

第一主机,用于将设置有第一标记的流量进行报文隧道封装,所述报文的隧道封装标记设置第二标记;

第二网卡,用于接受所述负载均衡器封装后的报文并将该报文通过网络隧道传送至第三网卡;

第三网卡,用于接受第二网卡传送的报文,并将该报文传送至real server虚拟机;

real server虚拟机,用于接受和发送报文;

第二主机,用于识别并读取具有第二标记的报文,并在会话记录表中记录该报文的隧道端点网络地址、隧道端点网络标识、目的网络地址、源端网络地址、网络协议类型、目的端口、源端端口、源端MAC地址;

第二主机,还用于查找会话记录表,如果存在正向流量,则表明该流量为负载均衡器的回程流量,使用会话表记录中的源端MAC地址作为回程报文的目的MAC地址,隧道端点网络地址作为回程封装报文外层头部的目的网络地址,隧道端点网络标识作为回程封装报文外层头部的目的隧道端点网络标识;

所述回程报文由所述real server虚拟机发出,依次经过第三网卡、网络隧道、第二网卡、负载均衡器、第一网卡,回程至源端。

基于相同发明思想,并为实现第三个发明目的,本申请还揭示了一种计算机介质,所述计算机可读介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行如第二发明创造所述的基于云迁移场景自动修正网络配置的系统。

与现有技术相比,本发明的有益效果是:

通过对经过负载均衡器且发往real server虚拟机的流量设置第一标记,并对该流量报文的隧道封装标记设置第二标记,将设置有第二标记的报文以隧道技术发往realserver虚拟机,挂载real server虚拟机的主机以会话记录表方式读取并记录报文的路径信息(隧道端点网络地址、隧道端点网络标识、目的网络地址、源端网络地址、网络协议类型、目的端口、源端端口、源端MAC地址),并以该报文的路径信息制定回程的路径信息并封装回程报文,一方面,在NAT模式情况下,实现了虚拟化环境负载均衡源端网络地址保持不变,也就是源端地址被封装进报文通过隧道技术传送给real server虚拟机并被读取识别,另一方面,real server虚拟机不需要再配置默认路由,在real server虚拟机不进行任何改变情况下,实现源端网络地址保持不变并回程。

附图说明

图1为本发明虚拟化环境负载均衡流量处理方法的流程图;

图2为本发明虚拟化环境负载均衡流量处理系统的拓扑图;

图3为本发明VXLAN报文格式示意图;

图4为本发明设置有第二标记的VXLAN报文格式示意图;

图5为本发明GRE报文格式示意图;

图6为本发明设置有第二标记的GRE报文格式示意图;

图7为本发明MPLS报文格式示意图;

图8为本发明计算机介质模块示意图。

具体实施方式

下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。

以下通过多个实施例对本发明的具体实现过程予以阐述。

实施例一:

参图1所示,本实施例揭示了一种虚拟化环境负载均衡流量处理方法(以下简称“方法”)的一种具体实施方式。

参图1所示,在本实施例中,该方法包括以下步骤S1至步骤S5,在本实施例中,未区分隧道技术类型,即隧道技术类型可以是VXLAN、GRE、MPLS中的任一种。

具体地,按以下步骤进行:

步骤S1、对经过负载均衡器且发往real server虚拟机的流量设置第一标记。具体地,源端发送流量请求时,采用TCP/IP或UDP/IP协议发送,指定负载均衡器的IP为目的IP,指定负载均衡器的业务监听器的端口为目的端口,对于指定了上述目的IP和目的端口流量,负载均衡器认为该流量需要发送至后端的real server虚拟机,对该流量设置第一标记,所述第一标记为字符串,字符串由英文字母、阿拉伯数字组合而成,为了提高第一标记的辨识度,所述第一标识的字符数较优的选择为3-10个,当然可以更多位,如0x4、x485、94c42、48594c、er8076c、x48594c4、wd076302a、0x48594c42。

需要进一步说明的是,在为流量设置第一标识时,负载均衡器通过IP Table的mangle表中的PREROUTING链设置第一标记,以第一标识为“0x48594c42”为例,具体设置过程如下:

iptables-t mangel-A PREROUTING-d VIP-P tcp--dport 80-j Mark--set-mark0x48594c42。

步骤S2、挂载负载均衡器的第一主机将设置有第一标记的流量进行报文封装,所述报文的隧道封装标记设置第二标记。具体地,负载均衡器的第一主机通过mark程序判断流量是否设置有第一标记,将设置有第一标记的流量进行报文封装,所述报文的隧道封装标记设置第二标记,封装后的报文内包含流量的路径信息(隧道端点网络地址、隧道端点网络标识、目的网络地址、源端网络地址、网络协议类型、目的端口、源端端口、源端MAC地址),所述第二标记为报文的隧道封装标记保留位的改进,因隧道封装技术类型VXLAN、GRE、MPLS具有不同的标准封装格式,其隧道封装标记保留位也不同,该步骤是通过改进保留位做特殊标记,即第二标记,使得该报文能够被后端的real server虚拟机识别,并根据报文所记载的路径信息,并以此路径信息为依据制定回程路径信息。

步骤S3、将设置有第二标记的报文通过隧道技术发送至real server虚拟机。具体地,封装后的报文通过隧道技术发送至后端real server虚拟机。

步骤S4、挂载所述real server虚拟机的第二主机识别出具有第二标记的报文并读取,并在会话记录表中记录该报文路径信息。具体地,报文路径信息为隧道端点网络地址、隧道端点网络标识、目的网络地址、源端网络地址、网络协议类型、目的端口、源端端口、源端MAC地址;挂载所述real server虚拟机的第二主机读取报文时,首先需要判断该报文是否具有第二标记,若否,则按常规路由进行转发,若是,则启动会话记录表,所述会话记录表采用hash存储,会话记录表需要保存报文的路径信息,即隧道端点网络地址(Vtep-ip)、隧道端点网络标识(vni)、目的网络地址(dst_ip)、源端网络地址(src_ip)、网络协议类型(protocol)、目的端口(dst_port)、源端端口(src_port)、源端MAC地址(mac),会话记录表保存内容见表1。

index src_ip src_port dst_ip dst_port protocol mac Vtep-ip vni
1 200.1.1.2 1000 10.1.1.2 80 6 02:83:49:f1:0b:4d 172.118.10.2 100
2 39.11.189.18 3233 10.1.1.2 102 17 02:17:7d:77:28:09 172.118.10.2 100

表1

步骤S5、挂载所述real server虚拟机的第二主机查找会话记录表,如果存在正向流量,则表明该流量为需要返回负载均衡器的回程流量,以会话表记录中的报文路径信息为依据设置回程报文路径信息。具体地,回程报文路径信息为源端MAC地址作为回程报文的目的MAC地址,隧道端点网络地址作为回程封装报文外层头部的目的网络地址,隧道端点网络标识作为回程封装报文外层头部的目的隧道端点网络标识;挂载所述real server虚拟机的第二主机查找会话记录表时,查找内容为src_ip,src_port,dst_ip,dst_port,protocol,这些内容属于流量报文的路径信息,如果能查询到存在src_ip和src_port,即说明存在正向流量,则表明该流量为需要返回负载均衡器的回程流量,将回程流量封装成回程报文,所述回程报文以流量报文的路径信息为依据制定回程路径信息,即,使用查找到的会话表记录中的源端MAC地址作为回程报文的目的MAC地址,隧道端点网络地址作为回程封装报文外层头部的目的网络地址,隧道端点网络标识作为回程封装报文外层头部的目的隧道端点网络标识。

通过上述步骤,通过对经过负载均衡器且发往real server虚拟机的流量设置第一标记,并对该流量报文的隧道封装标记设置第二标记,将设置有第二标记的报文以隧道技术发往real server虚拟机,挂载real server虚拟机的主机以会话记录表方式读取并记录报文的路径信息(隧道端点网络地址、隧道端点网络标识、目的网络地址、源端网络地址、网络协议类型、目的端口、源端端口、源端MAC地址),并以该报文的路径信息制定回程的路径信息并封装回程报文,一方面,在NAT模式情况下,实现了虚拟化环境负载均衡源端网络地址保持不变,也就是源端地址被封装进报文通过隧道技术传送给real server虚拟机并被读取识别,另一方面,real server虚拟机不需要再配置默认路由,在real server虚拟机不进行任何改变情况下,实现源端网络地址保持不变并回程。

实施例二:

与实施例一的不同之处在于,实施例二的隧道技术类型以VXLAN为例进行说明。

当隧道技术类型为VXLAN时,图3为VXLAN报文格式示意图,通常情况下,VXLAN报文的隧道封装标记为8bit,即图3中的VXLAN Flags,表征为“RRRRIRRR”,当“I”位为1时,表示VXLAN中的VXLAN ID有效;当“I”位为0时,表示VXLAN中的VXLAN ID无效,其中“R”为保留位,通常设置为0。在本实施例中,将VXLAN报文的隧道封装标记“RRRRIRRR”的保留位“R”进行改进,如,将“RRRRIRRR”的前四位“R”均设置为“I”,即将第二标记设置为“IIIIIRRR”,具体参见修改后的VXLAN报文格式示意图图4,显然,VXLAN报文的隧道封装标记“RRRRIRRR”的保留位共有七位,对其中的任一个或多个保留位进行设置,均可成为第二标记,并不限于上述的举例。

本实施例所揭示的虚拟化环境负载均衡流量处理方法与实施例一中具有相同部分的技术方案,请参实施例一所述,在此不再赘述。

实施例三:

与实施例一的不同之处在于,实施例三的隧道技术类型以GRE为例进行说明。

当隧道技术类型为GRE时,图5为GRE报文格式示意图,通常情况下,GRE报文的隧道封装标记为5bit,即图3中的Flags,表征为“00000”,Flags中所有的“0”为保留位,通常设置为0。在本实施例中,将GRE报文的隧道封装标记“00000”的保留位“0”进行改进,如,将“00000”的第一位“0”设置为“1”,即将第二标记设置为“10000”,具体参见修改后的GRE报文格式示意图图6,显然,GRE报文的隧道封装标记“00000”的保留位共有五位,对其中的任一个或多个保留位进行设置,均可成为第二标记,并不限于上述的举例。

本实施例所揭示的虚拟化环境负载均衡流量处理方法与实施例一中具有相同部分的技术方案,请参实施例一所述,在此不再赘述。

实施例四:

与实施例一的不同之处在于,实施例四的隧道技术类型以MPLS为例进行说明。

当隧道技术类型为MPLS时,图7为MPLS报文格式示意图,通常情况下,MPLS报文的隧道封装标记为20bit,即图7中的Label,Label中的4-13位是保留位。在本实施例中,将MPLS报文Label中的任一个或多个保留位进行改进,使改进后的Label成为第二标记。

本实施例所揭示的虚拟化环境负载均衡流量处理方法与实施例一中具有相同部分的技术方案,请参实施例一所述,在此不再赘述。

实施例五:

参图2所示,本实施例还揭示了一种虚拟化环境负载均衡流量处理系统,包括:源端,用于发送的网络流量请求;第一网卡,用于将源端的网络流量发送至负载均衡器;负载均衡器,用于接受所述第一网卡发送的流量,并对流量设置第一标记;第一主机,用于将设置有第一标记的流量进行报文封装,所述报文的隧道封装标记设置第二标记;第二网卡,用于接受所述负载均衡器封装后的报文并将该报文通过网络隧道传送至第三网卡;第三网卡,用于接受第二网卡传送的报文,并将该报文传送至real server虚拟机;real server虚拟机,用于接受和发送报文;第二主机,用于识别并读取具有第二标记的报文,并在会话记录表中记录该报文的隧道端点网络地址、隧道端点网络标识、目的网络地址、源端网络地址、网络协议类型、目的端口、源端端口、源端MAC地址;第二主机,还用于查找会话记录表,如果存在正向流量,则表明该流量为负载均衡器的回程流量,使用会话表记录中的源端MAC地址作为回程报文的目的MAC地址,隧道端点网络地址作为回程封装报文外层头部的目的网络地址,隧道端点网络标识作为回程封装报文外层头部的目的隧道端点网络标识;所述回程报文由所述real server虚拟机发出,依次经过第三网卡、网络隧道、第二网卡、负载均衡器、第一网卡,回程至源端。

具体地,源端发送的网络流量通过第一网卡,源端发送时将目的网络地址和端口设置为负载均衡器前端监听器,负载均衡器接受第一网卡发送的流量,并对流量设置第一标记,所述第一标记为字符串;第一主机识别设置有第一标记的流量并进行报文封装,并对报文的隧道封装标记设置第二标记,所述第二标记为报文的隧道封装标记保留位的改进,封装后的报文通过第二网卡经网络隧道传送至第三网卡,网络隧道为VXLAN、GRE、MPLS中的一种,较优选择为VXLAN网络隧道;所述第三网卡再将报文发送至real server虚拟机,挂载real server虚拟机的第二主机以会话记录表方式读取并记录报文的路径信息(隧道端点网络地址、隧道端点网络标识、目的网络地址、源端网络地址、网络协议类型、目的端口、源端端口、源端MAC地址);挂载real server虚拟机的第二主机进一步会查找会话记录表,如果存在正向流量,则表明该流量为负载均衡器的回程流量,使用会话表记录中的源端MAC地址作为回程报文的目的MAC地址,隧道端点网络地址作为回程封装报文外层头部的目的网络地址,隧道端点网络标识作为回程封装报文外层头部的目的隧道端点网络标识;回程报文由所述real server虚拟机发出,依次经过第三网卡、网络隧道、第二网卡、负载均衡器、第一网卡,回程至源端。

本实施例所揭示的虚拟化环境负载均衡流量处理系统与实施例一、实施例二、实施例三、实施例四中具有相同部分的技术方案,请参实施例一、实施例二、实施例三、实施例四所述,在此不再赘述。

实施例六:

参见图8所示,计算机可读介质900中存储有计算机程序指令901,所述计算机程序指令901被一处理器902读取并运行时,执行实施例四所述的基于云迁移场景自动修正网络配置的系统。本实施例所揭示的计算机介质与实施例四中具有相同部分的技术方案,请参实施例四所述,在此不再赘述。

本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。

上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:窗口控制方法、相关装置设备以及计算机可读存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!