CN111193773A - 负载均衡方法、装置、设备及存储介质 - Google Patents
负载均衡方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111193773A CN111193773A CN201911243830.6A CN201911243830A CN111193773A CN 111193773 A CN111193773 A CN 111193773A CN 201911243830 A CN201911243830 A CN 201911243830A CN 111193773 A CN111193773 A CN 111193773A
- Authority
- CN
- China
- Prior art keywords
- address
- request message
- load balancing
- tuple
- ipvs
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2521—Translation architectures other than single NAT servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1023—Server selection for load balancing based on a hash applied to IP addresses or costs
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种负载均衡方法、装置、设备及存储介质,属于网络技术领域。所述方法包括:通过第一网卡,接收第一请求报文,第一请求报文携带第一源地址和第一目的地址,第一源地址为客户端的地址,第一目的地址为负载均衡设备的地址;通过IPVS模块,将第一请求报文中的第一目的地址修改为第二目的地址,得到第二请求报文,第二目的地址为目标真实服务器的地址;通过BPF,将第二请求报文中的第一源地址修改为第二源地址,得到第三请求报文,第二源地址为负载均衡设备的地址。本申请利用IPVS模块实现DNAT,利用BPF实现SNAT,从而实现FullNAT转发模式,而且对SNAT的源代码的改动较少,便于升级维护。
Description
技术领域
本申请涉及网络技术领域,特别涉及一种负载均衡方法、装置、设备及存储介质。
背景技术
LVS(Linux Virtual Server,Linux虚拟服务器)是一种基于TCP(TransmissionControl Protocol,传输控制协议)/IP(Internet Protocol,互联网协议)的负载均衡技术,其转发效率极高,具有处理百万计并发连接请求的能力。LVS的负载均衡技术应用于LVS集群中,LVS集群包括LB(Load Balancer,负载均衡设备)和后端的多个RS(Real Server,真实服务器)。客户端在访问网络时,可以先将请求报文发送给LB,再由LB从后端的多个RS中选择一个RS作为响应请求的目标RS,将请求报文转发给目标RS,由目标RS对该请求报文进行响应,并返回响应报文。
目前,LVS的负载均衡技术一般通过IPVS(IP Virtual Server,IP虚拟服务器)模块实现,IPVS模块是LVS集群的核心软件模块,它安装在LB的内核中。而且,目前的IPVS模块仅支持DNAT(Destination Network Address Translation,目的网络地址转换)转发模式,不支持FullNAT(Full Network Address Translation,全网络地址转换)转发模式,但是,在很多场景下,为了满足业务需求,需要LB能够支持FullNAT转发模式。其中,DNAT模式下,当客户端的请求报文到达LB后,LB会对请求报文进行目的地址转换,以将请求报文的目的地址修改为选择的目标RS的地址,再将转换后的请求报文转发给目标RS。FullNAT模式下,当客户端的请求报文到达LB后,LB不仅需要对请求报文进行目的地址转换,还需要对请求报文进行源地址转换,以将请求报文的源地址修改为LB的地址,再将转换后的请求报文转发给目标RS。
相关技术中,为了保证LB能够支持FullNAT转发模式,可以采用修改LB中的IPVS模块的源代码的方法,使得IPVS模块能够支持FullNAT转发模式。但是,由于IPVS模块的源代码较为复杂,因此这种方式对IPVS模块的源代码的改动较大,改动可能达到万行级别,升级维护较为困难。
发明内容
本申请实施例提供了一种负载均衡方法、装置、设备及存储介质,可以用于解决相关技术中存在的将IPVS模块升级为支持FullNAT转发模式时,升级维护困难的问题。所述技术方案如下:
一方面,提供了一种负载均衡方法,应用于负载均衡设备,所述负载均衡设备配置有第一网卡、第二网卡、国际互连协议虚拟服务器IPVS模块和柏克莱封包过滤器BPF,所述方法包括:
通过所述第一网卡,接收客户端发送的第一请求报文,所述第一请求报文携带第一源地址和第一目的地址,所述第一源地址为所述客户端的地址,所述第一目的地址为所述负载均衡设备的地址;
通过所述IPVS模块,将所述第一请求报文中的所述第一目的地址修改为第二目的地址,得到第二请求报文,所述第二目的地址为目标真实服务器的地址,所述目标真实服务器是从多个真实服务器中选择得到;
通过所述BPF,将所述第二请求报文中的所述第一源地址修改为第二源地址,得到第三请求报文,所述第二源地址为所述负载均衡设备的地址;
通过所述第二网卡,将所述第三请求报文发送给所述目标真实服务器。
另一方面,提供了一种负载均衡装置,应用于负载均衡设备,所述负载均衡设备配置有第一网卡、第二网卡、国际互连协议虚拟服务器IPVS模块和柏克莱封包过滤器BPF,所述装置包括:
第一接收模块,用于通过所述第一网卡,接收客户端发送的第一请求报文,所述第一请求报文携带第一源地址和第一目的地址,所述第一源地址为所述客户端的地址,所述第一目的地址为所述负载均衡设备的地址;
第一地址转换模块,用于通过所述IPVS模块,将所述第一请求报文中的所述第一目的地址修改为第二目的地址,得到第二请求报文,所述第二目的地址为目标真实服务器的地址,所述目标真实服务器是从多个真实服务器中选择得到;
第二地址转换模块,用于通过所述BPF,将所述第二请求报文中的所述第一源地址修改为第二源地址,得到第三请求报文,所述第二源地址为所述负载均衡设备的地址;
第一发送模块,用于通过所述第二网卡,将所述第三请求报文发送给所述目标真实服务器。
另一方面,提供了一种负载均衡设备,所述负载均衡设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由所述处理器加载并执行以实现上述负载均衡方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由处理器加载并执行以实现上述负载均衡方法。
另一方面,还提供了一种计算机程序产品,当所述计算机程序产品被执行时,用于实现上述负载均衡方法。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例中,对于客户端发送的请求报文,可以利用IPVS模块对请求报文进行目的地址转换,利用BPF对请求报文进行源地址转换,从而实现FullNAT转发模式。而且,由于在利用BPF对请求报文进行源地址转换时,仅需对BPF的源代码进行少量修改,即可增加BPF对SNAT的支持,因此,对负载均衡设备的源代码的改动较少,便于进行维护升级。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种负载均衡系统的示意图;
图2是本申请实施例提供的另一种负载均衡系统的示意图;
图3是本申请实施例提供的一种负载均衡方法的流程图;
图4是本申请实施例提供的另一种负载均衡方法的流程图;
图5是本申请实施例提供的一种负载均衡装置的框图;
图6是本申请实施例提供的一种负载均衡设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例进行详细地解释说明之前,先对本申请实施例的应用场景予以说明。
本申请实施例提供的负载均衡方法应用于用户利用客户端访问网络的场景中,比如用户使用客户端打开网页,访问网页的场景中。为了对客户端的访问进行负载均衡,可以在LVS集群中增加负载均衡设备,利用负载均衡设备的内核中安装的IPVS模块实现。
目前,IPVS模块仅支持DNAT、DR(Direct Routing,直接路由)和tunnel(隧道)等转发模式,不能支持FullNAT转发模式,而在很多场景下,需要FullNAT转发模式的负载均衡。为了实现FullNAT转发模式的负载均衡,目前很多公司采用修改IPVS模块的源代码的方法来增加IPVS模块对FullNAT转发模式的支持,但是从目前公开的源代码来看,若要在原有IPVS模块的基础上增加对FullNAT转发模式的支持,则对IPVS模块的源代码的改动较大,改动大约在万行级别,且需要基于老旧的内核版本进行修改,升级维护比较困难。
另外一种普遍采用的方法是利用负载均衡设备中的IPVS模块进行DNAT,利用负载均衡设备配置的iptables进行SANT(Source Network Address Translation,源网络地址转换),但是这种方式性能比较差。
本申请实施例中,为了保证负载均衡设备能够支持FullNAT转发模式,且保证较好的稳定性和性能,提出了一种利用IPVS模块进行DNAT,利用BPF进行SANT的负载均衡方法,这种方法的优点是对负载均衡设备的源代码的改动量较少,减少了开发量,且能达到较好的稳定性和性能。
接下来,对本申请实施例涉及的实施环境进行介绍。
图1是本申请实施例提供的一种负载均衡系统的示意图,如图1所示,该系统包括客户端10和LVS集群,LVS集群中包括LB20和多个RS30。客户端10与LVS集群可以通过网络进行连接。客户端10在向网络发送请求时,可以先通过网络向LVS集群中的LB20发送请求报文,由LB20从后端的多个RS30中选择一个RS30作为目标RS,将报文请求转发给目标RS,由目标RS对该请求报文进行响应,并返回响应报文。
作为一个示例,LB20可以为LVS集群中的任一节点设备,LB20除了具有负载均衡功能之外,还可以具有业务处理功能。比如,还可以对请求报文进行响应。
作为一个示例,如图2所示,LB20中配置有第一网卡21、IPVS模块22、BPF(BerkeleyPacket Filter,柏克莱封包过滤器)23和第二网卡24。其中,第一网卡21和第二网卡24可以为虚拟网卡,也可以为物理网卡,且第一网卡21和第二网卡24可以为同一网卡,也可以为不同网卡,本申请实施例对此不做限定。其中,IPVS模块22和BPF23安装在LB的内核中,实质是注入到内核中的程序代码。可选地,BPF为eBPF(extended BPF,扩展BPF)。
本申请实施例中,IPVS模块22支持DNAT转发模式,BPF23支持SANT转发模式。需要说明的是,目前的BPF是不支持SANT转发模式的,本申请实施例中,可以对BPF的源代码进行修改,以增加BPF对SANT转发模式的支持,也即是,对BPF进行扩展,使其具有对请求报文进行源地址转换的功能。
如图2所示,LB20可以通过第一网卡21接收客户端10发送的请求报文,然后通过IPVS模块22对请求报文进行目的地址转换,再通过BPF23进行源地址转换,将转换后的请求报文通过第二网卡24发送给后端的目标RS,由目标RS对请求报文进行响应,得到响应报文,再将响应报文返回给LB20。
LB20通过第二网卡22接收到响应报文后,将对响应报文进行反向处理,也即是,先通过BPF23对响应报文进行目的地址转换,再通过IPVS模块22对响应报文进行源地址转换,然后将转换后的响应报文通过第一网卡21发送给客户端21。
接下来,对本申请实施例提供的负载均衡方法进行详细介绍。图3是本申请实施例提供的一种负载均衡方法的流程图,该方法应用于负载均衡系统中,该负载均衡系统包括客户端、负载均衡设备和多个真实服务器中,如图3所示,该方法包括如下步骤:
步骤301:客户端向负载均衡设备发送第一请求报文,第一请求报文携带第一源地址和第一目的地址,第一源地址为客户端的地址,第一目的地址为负载均衡设备的地址。
作为一个示例,第一请求报文可以携带第一请求报文元组,第一请求报文元组包括第一源地址和第一目的地址。
作为一个示例,第一请求报文元组包括第一源IP地址,第一源端口,第一目的IP地址和第二目的端口。其中,第一源IP地址为客户端的IP地址,第一源端口为客户端的端口;第一目的IP地址为负载均衡设备的IP地址,且可以为负载均衡设备具有的至少一个IP地址中的任一个;第二目的端口为负载均衡设备的端口,且可以为负载均衡设备具有的至少一个端口中的任一个。
作为一个示例,第一请求报文元组为(cip,cport,nodeip,nodeport),其中,cip是指客户端的IP地址,cport是指客户端的端口,nodeip是指负载均衡设备的IP地址,nodeport是指负载均衡设备的端口。
步骤302:负载均衡设备通过第一网卡,接收客户端发送的第一请求报文。
其中,第一网卡可以为负载均衡设备的虚拟网卡,也可以为负载均衡设备的物理网卡,本申请实施例对此不做限定。
客户端发送的第一请求报文可以通过第一网卡抵达负载均衡设备。
步骤303:负载均衡设备通过IPVS模块,将第一请求报文中的第一目的地址修改为第二目的地址,得到第二请求报文,第二目的地址为目标真实服务器的地址,目标真实服务器是从多个真实服务器中选择得到。
也即是,负载均衡设备可以通过IPVS模块,对第一请求报文进行目的地址转换,以将第一请求报文的目的地址从负载均衡设备的地址修改为目标真实服务器的地址。
作为一个示例,第二请求报文携带第二请求报文元组,第二请求报文元组包括第一源地址和第二目的地址。
作为一个示例,第二请求报文元组包括第一源IP地址、第一源端口、第二目的IP地址和第二目的端口。其中,第一源IP地址为客户端的IP地址,第一源端口为客户端的端口;第二目的IP地址为目标真实服务器的IP地址,第二目的端口为目标真实服务器的端口。
比如,第二请求报文元组为(cip,cport,rsip,rsport)。其中,cip是指客户端的IP地址,cport是指客户端的端口,rsip是指目标真实服务器的IP地址,rsport是指目标真实服务器的端口。
作为一个示例,若第一目的地址包括参考IP地址和参考端口,参考IP地址为负载均衡设备的至少一个IP地址中的任一个,参考端口为负载均衡设备的至少一个端口中的任一个,则在通过第一网卡接收到第一请求报文之后,可以先通过IPVS模块确定参考IP地址和参考端口是否满足预设规则,若通过IPVS模块,确定参考IP地址和参考端口满足预设规则,再通过IPVS模块,将第一请求报文中的第一目的地址修改为第二目的地。
其中,该预设规则可以预先设置,该预设规则用于指示第一请求报文请求的服务是否为需要进行负载均衡的服务。若参考IP地址和参考端口满足预设规则,则可以确定第一请求报文请求的服务为需要进行负载均衡的服务,若第一请求报文请求的服务为需要进行负载均衡的服务,则即可对其执行负载均衡逻辑,即先通过IPVS模块进行目的地址转换,再通过BPF进行源地址转换。
在另一实施例中,若确定参考IP地址和参考端口不满足预设规则,则不需要对其执行负载均衡逻辑,可以继续执行内核逻辑栈。
作为一个示例,可以通过IPVS模块,从IPVS列表中获取第一请求报文元组对应的第二请求报文元组,然后根据第二请求报文元组,将第一请求报文中的第一目的地址修改为第二目的地址。
其中,第一请求报文元组包括第一源地址和所述第一目的地址,第二请求报文元组包括第一源地址和第二目的地址,IPVS列表中存储有不同的请求报文元组以及每个请求报文元组对应的目的地址转换后的请求报文元组。
其中,IPVS列表可以由IPVS模块进行维护,也即是,由IPVS模块对IPVS列表进行增删操作。示例的,IPVS列表为IPVS Map(IPVS图谱),比如为hashtable(哈希列表)。
作为一个示例,IPVS列表中存储的第一请求报文元组以及对应的第二请求报文元组可以由IPVS模块在检测到有新的网络连接时在IPVS列表中进行添加,并可以在客户端的会话过期时,将其从IPVS列表中删除。
作为一个示例,在通过IPVS模块,从IPVS列表中获取第一请求报文元组对应的第二请求报文元组之前,可以先判断第一请求报文是否为客户端在建立网络连接时首次发送的请求报文,即是否是客户端新建连接时发送的首报文。
若第一请求报文是客户端在建立网络连接时首次发送的请求报文,则可以通过IPVS模块,从后端的多个真实服务器中选择目标真实服务器,获取目标真实服务器的地址,将目标真实服务器的地址作为第二目的地址,将第一源地址和第一目的地址作为第一请求报文元组,将第一源地址和第二目的地址作为第二请求报文元组,然后将第一请求报文元组和第二请求报文元组对应添加至IPVS列表中。
在将第一请求报文元组和第二请求报文元组对应添加至IPVS列表中之后,在需要对第一请求报文进行目的地址转换时,即可直接通过查询IPVS列表,来获取第一请求报文元组对应的第二请求报文元组,从第二请求报文元组中获取第二目的地址,再将第一请求报文的第一目的地址修改为第二目的地址。
进一步地,在将第一请求报文元组和第二请求报文元组对应添加至IPVS列表中之后,若客户端基于建立的网络连接的会话过期,IPVS模块还可以将第一请求报文元组和对应的第二请求报文元组从IPVS列表中删除。
进一步地,在将第一请求报文元组和第二请求报文元组对应添加至IPVS列表中之后,为了方便回包处理,IPVS模块还可以在IPVS列表中添加反向的响应报文元组对,比如,将第三源地址和第四目的地址作为第二响应报文元组,将第四源地址和第四目的地址作为第三响应报文元组,将第二响应报文元组和第三响应报文元组对应添加至IPVS列表中。其中,第三源地址为目标真实服务器的地址,第四目的地址为客户端的地址,第四源地址为负载均衡设备的地址。
作为一个示例,在确定第一请求报文是客户端在建立网络连接时首次发送的请求报文时,即确定有新的连接时,IPVS模块可以在IPVS列表添加一个新的IPVS条目,该IPVS条目包括key和value,key是(protocol,cip,cport,nodeip,nodeport),value是(protocol,cip,cport,nodeip,nodeport)。其中,protocol是指协议。然后,从后端的多个真实服务器中选择目标真实服务器,获取目标真实服务器的IP地址和端口,得到rsip和rsport,将value修改为(protocol,cip,cport,rsip,rsport)。
在IPVS模块需要对第一请求报文进行目的地址转换时,即可从IPVS列表获取与第一请求报文匹配的key对应的value,然后从value中获取第二目的地址,将第一请求报文的第一目的地址修改为第二目的地址。
另外,为了方便回包处理,IPVS模块还可以在IPVS列表中添加一个反向的IPVS条目,该IPVS条目包括key和value,key是(protocol,rsip,rsport,cip,cport),value是(protocol,nodeip,nodeport,cip,cport)。
步骤304:负载均衡设备通过BPF,将第二请求报文中的第一源地址修改为第二源地址,得到第三请求报文,第二源地址为负载均衡设备的地址。
也即是,负载均衡设备可以通过BPF,对第二请求报文进行源地址转换,以将第二请求报文的源地址从客户端的地址修改为负载均衡设备的地址。作为一个示例,可以通过BPF的BPF Egress Code(BPF出口代码)对第二请求报文进行源地址转换。
作为一个示例,第三请求报文携带第三请求报文元组,第三请求报文元组包括第二源地址和第二目的地址。
作为一个示例,第三请求报文元组包括第二源IP地址、第二源端口、第二目的IP地址和第二目的端口。其中,第二源IP地址为负载均衡设备的IP地址,第二源端口为负载均衡设备的;第二目的IP地址为目标真实服务器的IP地址,第二目的端口为目标真实服务器的端口。
比如,第三请求报文元组为(nodeip,nodeport,rsip,rsport)。其中,nodeip是指负载均衡设备的IP地址,nodeport是指负载均衡设备的端口,rsip是指目标真实服务器的IP地址,rsport是指目标真实服务器的端口。
作为一个示例,可以通过BPF,从BPF列表中获取第二请求报文元组对应的第三请求报文元组,根据第三请求报文元组,将第二请求报文中的第一源地址修改为所述第二源地址。
其中,第二请求报文元组包括第一源地址和第二目的地址,第三请求报文元组包括第二源地址和第二目的地址,BPF列表中存储有不同的请求报文元组以及每个请求报文元组对应的源地址转换后的请求报文元组。
作为一个示例,BPF列表可以由IPVS模块进行维护,BPF只需查表就可以获得待转换的源地址,并对第二请求报文进行源地址转换,而无需再进行BPF列表的增删等维护操作,这种处理方式的优点是BPF的代码比较简单,不需要做TCP状态切换,也规避了BPF没有定时器的限制。
作为一个示例,BPF列表为BPF Map(BPF图谱),比如为hashtable(哈希列表)。
作为一个示例,BPF列表中存储的第二请求报文元组和对应的第三请求报文元组可以由IPVS模块在检测到有新的网络连接时在BPF列表中进行添加,并可以在客户端的会话过期时,将其从BPF列表中删除。
作为一个示例,在通过BPF,将第二请求报文中的第一源地址修改为第二源地址,得到第三请求报文之前,可以先通过IPVS模块判断第一请求报文是否为客户端在建立网络连接时首次发送的请求报文。
若第一报文请求为客户端在建立网络连接时首次发送的请求报文,则通过IPVS模块,获取负载均衡设备的地址,将负载均衡设备的地址作为第二源地址,将第一源地址和第二目的地址作为第二请求报文元组,以及将第二源地址和第二目的地址作为所述第三请求报文元组;再通过IPVS模块,将第二请求报文元组和第三请求报文元组对应添加至BPF列表中。
在将第二请求报文元组和第三请求报文元组对应添加至BPF列表中之后,在需要对第二请求报文进行目的地址转换时,即可直接通过查询BPF列表,来获取第二请求报文元组对应的第三请求报文元组,从第三请求报文元组中获取第二源地址,再将第二请求报文的第一源地址修改为第二源地址。
进一步地,在通过IPVS模块,将第二请求报文元组和第三请求报文元组对应添加至BPF列表中之后,若客户端基于网络连接的会话过期,还可以通过IPVS模块,将第二请求报文元组和对应的第三请求报文元组从BPF列表中删除。
作为一个示例,IPVS模块可以通过定时器(timer)判断客户端的会话是否过期。作为一个示例,若会话过期,可以通过定时器调用ip_vs_conn_expire来删除BPF列表中的第二请求报文元组和对应的第三请求报文元组。
进一步地,在将第二请求报文元组和第三请求报文元组对应添加至BPF列表中之后,为了方便回包处理,IPVS模块还可以在BPF列表中添加反向的响应报文元组对,比如,将第三源地址和第三目的地址作为第一响应报文元组,将第三源地址和第四目的地址作为第二响应报文元组,将第一响应报文元组和第二响应报文元组对应添加至BPF列表中。其中,第三源地址为目标真实服务器的地址,第三目的地址为负载均衡设备的地址,第四目的地址为客户端的地址。
作为一个示例,在确定第一请求报文是客户端在建立网络连接时首次发送的请求报文时,即确定有新的连接时,IPVS模块可以在BPF列表添加一个新的BPF条目,该BPF条目包括key和value,key是(protocol,cip,cport,rsip,rsport),value是(protocol,nodeip,nodeport,rsip,rsport),以便BPF基于该BPF条目进行源地址转换。作为一个示例,可以在ip_vs_conn_new()函数里,向BPF列表中添加新的BPF条目。
之后,在BPF需要对第二请求报文进行源地址转换时,即可从BPF列表获取与第二请求报文匹配的key对应的value,然后从value中获取第二源地址,将第二请求报文的第一源地址修改为第二源地址。
另外,为了方便回包处理,IPVS模块还可以在BPF列表中添加一个反向的BPF条目,该BPF条目包括key和value,key是(protocol,rsip,rsport,nodeip,nodeport),value是(protocol,nodeip,nodeport,cip,cport)。
作为一个示例,若客户端的会话过期,还可以将BPF列表中该客户端对应的请求报文元组和响应报文元组进行删除。比如,若客户端的会话过期,可以从第一请求报文中抽取(protocol,cip,cport,rsip,rsport),将(protocol,cip,cport,rsip,rsport)作为key1读取BPF列表,得到value1(protocol,nodeip,nodeport,rsip,rsport),再把value1转换为key2(protocol,rsip,rsport,nodeip,nodeport),然后删除BPF列表中的key1和key2。
步骤305:负载均衡设备通过第二网卡,将第三请求报文发送给目标真实服务器。
其中,第二网卡可以为负载均衡设备的虚拟网卡,也可以为负载均衡设备的物理网卡。另外,第一网卡和第二网卡也可以负载均衡设备的同一网卡,也可以为不同网卡,本申请实施例对此不做限定。作为一个示例,若负载均衡设备仅具有一个网卡,则第一网卡和第二网卡可以为相同网卡。
步骤306:目标真实服务器对第三请求报文进行响应,得到第一响应报文,第一响应报文携带第三源地址和第三目的地址,第三源地址为目标真实服务器的地址,第三目的地址为负载均衡设备的地址。
作为一个示例,第一响应报文携带第一响应报文元组,第一响应报文元组包括第三源地址和第三目的地址。
作为一个示例,第一响应报文包括第三源IP地址、第三源端口、第三目的IP地址和第三目的端口。其中,第三源IP地址为目标真实服务器的IP地址,第三源端口为目标真实服务器的端口,第三目的IP地址为负载均衡设备的IP地址,第三目的端口为负载均衡设备的端口。作为一个示例,第一响应报文元组为(rsip,rsport,nodeip,nodeport)。
作为一个示例,可以通过BPF,从BPF列表中获取第一响应报文元组对应的第二响应报文元组,根据第二响应报文元组,将第二响应报文元组中的第三目的地址修改为第四目的地址。其中,第一响应报文元组包括第三源地址和第三目的地址,第二响应报文元组包括第三源地址和第四目的地址。
步骤307:目标真实服务器将第一响应报文发送给负载均衡设备。
步骤308:负载均衡设备通过第二网卡,接收目标真实服务器发送的第一响应报文。
其中,第一响应报文是对第三请求报文进行响应得到;
步骤309:负载均衡设备通过BPF,将第一响应报文中的第三目的地址修改为第四目的地址,得到第二响应报文,第四目的地址为客户端的地址。
由于响应报文与请求报文的源地址和目的地址相反,因此,在对响应报文进行处理的过程中,需要对其进行反向处理。也即是,先通过BPF进行目的地址转换,再通过IPVS模块进行源地址转换。
作为一个示例,第二响应报文携带第二响应报文元组,第二响应报文元组包括第三源地址和第四目的地址。
作为一个示例,第二响应报文包括第三源IP地址、第三源端口、第四目的IP地址和第四目的端口。其中,第四目的IP地址为客户端的IP地址,第四目的端口为客户端的端口。作为一个示例,第二响应报文元组为(rsip,rsport,cip,cport)。
步骤310:负载均衡设备通过IPVS模块,将第二响应报文中的第三源地址修改为第四源地址,得到第三响应报文,第四源地址为负载均衡设备的地址。
也即是,负载均衡设备可以通过IPVS模块对第二响应报文进行源地址转换,得到第三响应报文。
作为一个示例,第三响应报文携带第三响应报文元组,第三响应报文元组包括第四源地址和第四目的地址。
作为一个示例,第三响应报文包括第四源IP地址、第四源端口、第四目的IP地址和第四目的端口。其中,第四源IP地址为负载均衡设备的IP地址,第四源端口为负载均衡设备的源端口。作为一个示例,第二响应报文元组为(nodeip,nodeport,cip,cport)。
作为一个示例,可以通过IPVS模块,从IPVS列表中获取第二响应报文元组对应的第三响应报文元组,根据第三响应报文元组,将第三响应报文元组中的第三源地址修改为第四源地址。其中,第二响应报文元组包括第三源地址和第四目的地址,第三响应报文元组包括第四源地址和第四目的地址。
步骤311:负载均衡设备通过第一网卡,将第三报文发送给客户端。
作为一个示例,负载均衡设备的处理流程可以如图4所示。如图4所示,IPVS模块接收到客户端的请求报文后,可以先检测请求报文的目的地址是否符合预设规则,若不符合,则继续执行内核协议栈,若符合,则判断该请求报文是否为新的网络连接的首报文,若是,则分配后端的一个真实服务器的地址作为请求报文的目的地址,并在IPVS列表和BPF列表中插入新的条目,然后通过IPVS模块修改请求报文的目的地址,以及通过BPF修改请求报文的源地址。若请求报文不是新的网络连接的首报文,则可以直接查询IPVS列表获得目标服务器的地址,并据此修改请求报文的目的地址,以及查询BPF列表获得负载均衡设备的地址,并据此修改请求报文的源地址。
作为一个示例,对于负载均衡设备,还可以通过一些命令检测该负载均衡设备是否使用了本申请实施例提供的方法进行负载均衡,比如,该检测过程可以包括如下步骤:
1)通过ipvsadm-L-n命令,检测到负载均衡设备配置了ipvs的service。
2)通过iptables-t nat-L-n命令,检测到负载均衡设备并没有配置该service相应的SANT规则。
3)通过命令tc filter show dev ethxxx ingress和tc filter show devethxxx egress,检测到负载均衡设备配置了bpf的SANT规则。
4)若通过tcpdump抓包,检测到报文的源地址被修改了,则确定该负载均衡设备使用了本申请实施例提供的方法进行负载均衡。
需要说明的是,本申请实施例仅是以利用IPVS模块实现DNAT,利用BPF实现SNAT为例进行说明,而随着BPF技术的成熟,若BPF能够支持自身的定时器功能,则还可以利用BPF实现DNAT和SNAT,如此可以使得负载均衡设备的性能更佳。
本申请实施例中,对于客户端发送的请求报文,可以利用IPVS模块对请求报文进行目的地址转换,利用BPF对请求报文进行源地址转换,从而实现FullNAT转发模式。而且,由于在利用BPF对请求报文进行源地址转换时,仅需对BPF的源代码进行少量修改,即可增加BPF对SNAT的支持,因此,对负载均衡设备的源代码的改动较少,便于进行维护升级。
另外,通过由IPVS模块来对BPF列表进行维护,可以减小BPF代码量,使得BPF代码比较简单,也规避了BPF没有定时器的限制。而且,在IPVS模块上增加对BPF列表的维护,对IPVS模块的改动较小,修改量可以控制在数百行代码以内,且修改是局部的,使用较少的开发量,即可以取得较好的稳定性和性能。
为了便于理解,接下来将以图2为例,对本申请实施例的负载均衡方法进行举例说明,如图2所示,该负载均衡过程可以包括如下步骤:
1,客户端10发送第一请求报文,第一请求报文的报文元组为(cip,cport,nodeip,nodeport)。
2,IPVS模块22接收到第一请求报文后,对第一请求报文进行目的地址转换,以将第一请求报文的目的地址修改为目标真实服务器的地址,得到第二请求报文,第二请求报文的报文元组为(cip,cport,rsip,rsport)。
3,BPF23对第二请求报文进行源地址转换,以将第二请求报文的源地址修改为负载均衡设备的地址,得到第三请求报文,第三请求报文的报文元组为(node ip,nodeport,rsip,rsport)。
4,第三请求报文到达第二网卡发24。
5,第三请求报文通过第二网卡发24发送给目标真实服务器30,目标真实服务器30对第三请求报文进行响应,得到第一响应报文,第一响应报文的报文元组为(rsip,rsport,node ip,nodeport)。
6,目标真实服务器30将第一响应报文发送给负载均衡设备20,到达第二网卡24。
7,BPF23接收到第一响应报文后,对第一响应报文进行目的地址转换,以将第一响应报文的目的地址修改为客户端的地址,得到第二响应报文,第二响应报文的报文元组为(rsip,rsport,cip,cport)。
8,IPVS模块22对第二响应报文进行源地址转换,以将第二响应报文的源地址修改为负载均衡设备的地址,得到第三响应报文,第三响应报文的报文元组为(node ip,nodeport,cip,cport)。
9,第三响应报文达到第一网卡21。
10,第三响应报文通过第一网卡21发送给客户端10。
图5是本申请实施例提供的一种负载均衡装置的框图,该装置集成于负载均衡设备中,该负载均衡设备配置有第一网卡、第二网卡、IPVS模块和BPF,该装置包括第一接收模块501,第一地址转换模块502、第二地址转换模块503和第一发送模块504。
第一接收模块501,用于通过所述第一网卡,接收客户端发送的第一请求报文,所述第一请求报文携带第一源地址和第一目的地址,所述第一源地址为所述客户端的地址,所述第一目的地址为所述负载均衡设备的地址;
第一地址转换模块502,用于通过所述IPVS模块,将所述第一请求报文中的所述第一目的地址修改为第二目的地址,得到第二请求报文,所述第二目的地址为目标真实服务器的地址,所述目标真实服务器是从多个真实服务器中选择得到;
第二地址转换模块503,用于通过所述BPF,将所述第二请求报文中的所述第一源地址修改为第二源地址,得到第三请求报文,所述第二源地址为所述负载均衡设备的地址;
第一发送模块504,用于通过所述第二网卡,将所述第三请求报文发送给所述目标真实服务器。
可选地,第一地址转换模块502,用于:
通过所述IPVS模块,从IPVS列表中获取第一请求报文元组对应的第二请求报文元组,根据所述第二请求报文元组,将所述第一请求报文中的所述第一目的地址修改为第二目的地址;
其中,所述第一请求报文元组包括所述第一源地址和所述第一目的地址,所述第二请求报文元组包括所述第一源地址和所述第二目的地址,所述IPVS列表中存储有不同的请求报文元组以及每个请求报文元组对应的目的地址转换后的请求报文元组。
可选地,所述第一目的地址包括参考IP地址和参考端口,所述参考IP地址为所述负载均衡设备的至少一个IP地址中的任一个,所述参考端口为所述负载均衡设备的至少一个端口中的任一个;
该装置还包括触发模块,用于若通过所述IPVS模块,确定所述参考IP地址和所述参考端口满足预设规则,则触发第一地址转换模块502通过所述IPVS模块,将所述第一请求报文中的所述第一目的地址修改为第二目的地址。
可选地,第二地址转换模块503用于:
通过所述BPF,从BPF列表中获取第二请求报文元组对应的第三请求报文元组,根据所述第三请求报文元组,将所述第二请求报文中的所述第一源地址修改为所述第二源地址;
其中,所述第二请求报文元组包括所述第一源地址和所述第二目的地址,所述第三请求报文元组包括所述第二源地址和所述第二目的地址,所述BPF列表中存储有不同的请求报文元组以及每个请求报文元组对应的源地址转换后的请求报文元组。
可选地,所述装置还包括列表维护模块,用于:
若所述第一请求报文为所述客户端在建立网络连接时首次发送的请求报文,则通过所述IPVS模块,获取所述负载均衡设备的地址;
通过所述IPVS模块,将所述负载均衡设备的地址作为所述第二源地址,将所述第一源地址和所述第二目的地址作为所述第二请求报文元组,以及将所述第二源地址和所述第二目的地址作为所述第三请求报文元组;
通过所述IPVS模块,将所述第二请求报文元组和所述第三请求报文元组对应添加至所述BPF列表中。
可选地,列表维护模块还用于:
在通过所述IPVS模块,将所述第二请求报文元组和所述第三请求报文元组对应添加至所述BPF列表中之后,若所述客户端基于所述网络连接的会话过期,则通过所述IPVS模块,将所述第二请求报文元组和对应的所述第三请求报文元组从所述BPF列表中删除。
可选地,该装置还包括:
第二接收模块,用于通过所述第二网卡,接收所述目标真实服务器发送的第一响应报文,所述第一响应报文是对所述第三请求报文进行响应得到,所述第一响应报文携带第三源地址和第三目的地址,所述第三源地址为所述目标真实服务器的地址,所述第三目的地址为所述负载均衡设备的地址;
第三地址转换模块,用于通过所述BPF,将所述第一响应报文中的所述第三目的地址修改为第四目的地址,得到第二响应报文,所述第四目的地址为所述客户端的地址;
第四地址转换模块,用于通过所述IPVS模块,将所述第二响应报文中的所述第三源地址修改为第四源地址,得到第三响应报文,所述第四源地址为所述负载均衡设备的地址;
第二发送模块,用于通过所述第一网卡,将所述第三响应报文发送给所述客户端。
本申请实施例中,对于客户端发送的请求报文,可以利用IPVS模块对请求报文进行目的地址转换,利用BPF对请求报文进行源地址转换,从而实现FullNAT转发模式。而且,由于在利用BPF对请求报文进行源地址转换时,仅需对BPF的源代码进行少量修改,即可增加BPF对SNAT的支持,因此,对负载均衡设备的源代码的改动较少,便于进行维护升级。
另外,通过由IPVS模块来对BPF列表进行维护,可以减小BPF代码量,使得BPF代码比较简单,也规避了BPF没有定时器的限制。而且,在IPVS模块上增加对BPF列表的维护,对IPVS模块的改动较小,修改量可以控制在数百行代码以内,且修改是局部的,使用较少的开发量,即可以取得较好的稳定性和性能。
需要说明的是:上述实施例提供的负载均衡装置在进行负载均衡时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的负载均衡装置与负载均衡方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6是本申请实施例提供的一种负载均衡设备600的结构示意图,该负载均衡设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(Central Processing Units,CPU)601和一个或一个以上的存储器602,其中,所述存储器602中存储有至少一条指令,所述至少一条指令由所述处理器601加载并执行以实现上述各个方法实施例提供的负载均衡方法。当然,该负载均衡设备600还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该负载均衡设备600还可以包括其他用于实现设备功能的部件,在此不做赘述。作为一个示例,该负载均衡设备600配置有第一网卡、第二网卡、IPVS模块和BPF。其中,IPVS模块用于实现DNAT,BPF用于实现SNAT。另外,IPVS模块还可以维护BPF列表。
在示例性的实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述负载均衡方法。
在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被执行时,其用于实现上述负载均衡方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种负载均衡方法,其特征在于,应用于负载均衡设备,所述负载均衡设备配置有第一网卡、第二网卡、国际互连协议虚拟服务器IPVS模块和柏克莱封包过滤器BPF,所述方法包括:
通过所述第一网卡,接收客户端发送的第一请求报文,所述第一请求报文携带第一源地址和第一目的地址,所述第一源地址为所述客户端的地址,所述第一目的地址为所述负载均衡设备的地址;
通过所述IPVS模块,将所述第一请求报文中的所述第一目的地址修改为第二目的地址,得到第二请求报文,所述第二目的地址为目标真实服务器的地址,所述目标真实服务器是从多个真实服务器中选择得到;
通过所述BPF,将所述第二请求报文中的所述第一源地址修改为第二源地址,得到第三请求报文,所述第二源地址为所述负载均衡设备的地址;
通过所述第二网卡,将所述第三请求报文发送给所述目标真实服务器。
2.根据权利要求1所述的方法,其特征在于,所述通过所述IPVS模块,将所述第一请求报文中的所述第一目的地址修改为第二目的地址,包括:
通过所述IPVS模块,从IPVS列表中获取第一请求报文元组对应的第二请求报文元组,根据所述第二请求报文元组,将所述第一请求报文中的所述第一目的地址修改为第二目的地址;
其中,所述第一请求报文元组包括所述第一源地址和所述第一目的地址,所述第二请求报文元组包括所述第一源地址和所述第二目的地址,所述IPVS列表中存储有不同的请求报文元组以及每个请求报文元组对应的目的地址转换后的请求报文元组。
3.根据权利要求1所述的方法,其特征在于,所述第一目的地址包括参考IP地址和参考端口,所述参考IP地址为所述负载均衡设备的至少一个IP地址中的任一个,所述参考端口为所述负载均衡设备的至少一个端口中的任一个;
所述通过所述IPVS模块,将所述第一请求报文中的所述第一目的地址修改为第二目的地址之前,还包括:
若通过所述IPVS模块,确定所述参考IP地址和所述参考端口满足预设规则,则触发执行通过所述IPVS模块,将所述第一请求报文中的所述第一目的地址修改为第二目的地址的步骤。
4.根据权利要求1所述的方法,其特征在于,所述通过所述BPF,将所述第二请求报文中的所述第一源地址修改为第二源地址,包括:
通过所述BPF,从BPF列表中获取第二请求报文元组对应的第三请求报文元组,根据所述第三请求报文元组,将所述第二请求报文中的所述第一源地址修改为所述第二源地址;
其中,所述第二请求报文元组包括所述第一源地址和所述第二目的地址,所述第三请求报文元组包括所述第二源地址和所述第二目的地址,所述BPF列表中存储有不同的请求报文元组以及每个请求报文元组对应的源地址转换后的请求报文元组。
5.根据权利要求4所述的方法,其特征在于,所述通过所述BPF,从BPF列表中获取第二请求报文元组对应的第三请求报文元组之前,还包括:
若所述第一请求报文为所述客户端在建立网络连接时首次发送的请求报文,则通过所述IPVS模块,获取所述负载均衡设备的地址;
通过所述IPVS模块,将所述负载均衡设备的地址作为所述第二源地址,将所述第一源地址和所述第二目的地址作为所述第二请求报文元组,以及将所述第二源地址和所述第二目的地址作为所述第三请求报文元组;
通过所述IPVS模块,将所述第二请求报文元组和所述第三请求报文元组对应添加至所述BPF列表中。
6.根据权利要求5所述的方法,其特征在于,所述通过所述IPVS模块,将所述第二请求报文元组和所述第三请求报文元组对应添加至所述BPF列表中之后,还包括:
若所述客户端基于所述网络连接的会话过期,则通过所述IPVS模块,将所述第二请求报文元组和对应的所述第三请求报文元组从所述BPF列表中删除。
7.根据权利要求1-6任一所述的方法,其特征在于,所述通过所述第二网卡,将所述第三请求报文发送给所述目标真实服务器之后,还包括:
通过所述第二网卡,接收所述目标真实服务器发送的第一响应报文,所述第一响应报文是对所述第三请求报文进行响应得到,所述第一响应报文携带第三源地址和第三目的地址,所述第三源地址为所述目标真实服务器的地址,所述第三目的地址为所述负载均衡设备的地址;
通过所述BPF,将所述第一响应报文中的所述第三目的地址修改为第四目的地址,得到第二响应报文,所述第四目的地址为所述客户端的地址;
通过所述IPVS模块,将所述第二响应报文中的所述第三源地址修改为第四源地址,得到第三响应报文,所述第四源地址为所述负载均衡设备的地址;
通过所述第一网卡,将所述第三响应报文发送给所述客户端。
8.一种负载均衡装置,其特征在于,应用于负载均衡设备,所述负载均衡设备配置有第一网卡、第二网卡、国际互连协议虚拟服务器IPVS模块和柏克莱封包过滤器BPF,所述装置包括:
第一接收模块,用于通过所述第一网卡,接收客户端发送的第一请求报文,所述第一请求报文携带第一源地址和第一目的地址,所述第一源地址为所述客户端的地址,所述第一目的地址为所述负载均衡设备的地址;
第一地址转换模块,用于通过所述IPVS模块,将所述第一请求报文中的所述第一目的地址修改为第二目的地址,得到第二请求报文,所述第二目的地址为目标真实服务器的地址,所述目标真实服务器是从多个真实服务器中选择得到;
第二地址转换模块,用于通过所述BPF,将所述第二请求报文中的所述第一源地址修改为第二源地址,得到第三请求报文,所述第二源地址为所述负载均衡设备的地址;
第一发送模块,用于通过所述第二网卡,将所述第三请求报文发送给所述目标真实服务器。
9.一种负载均衡设备,其特征在于,所述负载均衡设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由所述处理器加载并执行以实现如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述指令、所述程序、所述代码集或所述指令集由处理器加载并执行以实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911243830.6A CN111193773B (zh) | 2019-12-06 | 2019-12-06 | 负载均衡方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911243830.6A CN111193773B (zh) | 2019-12-06 | 2019-12-06 | 负载均衡方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111193773A true CN111193773A (zh) | 2020-05-22 |
CN111193773B CN111193773B (zh) | 2022-12-09 |
Family
ID=70709429
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911243830.6A Active CN111193773B (zh) | 2019-12-06 | 2019-12-06 | 负载均衡方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111193773B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111770211A (zh) * | 2020-06-17 | 2020-10-13 | 北京百度网讯科技有限公司 | 一种snat方法、装置、电子设备及存储介质 |
CN112968955A (zh) * | 2021-02-18 | 2021-06-15 | 北京网聚云联科技有限公司 | 一种基于eBPF技术的CDN边缘节点跨机调度方法及其系统 |
CN113037808A (zh) * | 2021-02-18 | 2021-06-25 | 北京网聚云联科技有限公司 | 一种基于eBPF技术的CDN节点单机调度方法及其系统 |
CN113746930A (zh) * | 2021-09-09 | 2021-12-03 | 上海格尔安全科技有限公司 | 网络负载均衡方法、装置、计算机设备和存储介质 |
CN114095430A (zh) * | 2021-10-14 | 2022-02-25 | 网宿科技股份有限公司 | 一种访问报文的处理方法、系统及工作节点 |
CN114285802A (zh) * | 2021-12-21 | 2022-04-05 | 北京字节跳动网络技术有限公司 | 网络负载均衡方法、装置、电子设备、介质和程序产品 |
CN114390056A (zh) * | 2022-01-11 | 2022-04-22 | 京东科技信息技术有限公司 | 负载均衡方法、装置、电子设备及存储介质 |
WO2023142699A1 (zh) * | 2022-01-26 | 2023-08-03 | 华为技术有限公司 | 一种通信方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040078467A1 (en) * | 2000-11-02 | 2004-04-22 | George Grosner | Switching system |
US20140036396A1 (en) * | 2012-07-31 | 2014-02-06 | Taiwan Semiconductor Manufacturing Co., Ltd. | Integrated passive device filter with fully on-chip esd protection |
CN104811383A (zh) * | 2015-03-19 | 2015-07-29 | 杭州华三通信技术有限公司 | 一种报文转发方法和设备 |
CN106411742A (zh) * | 2016-10-26 | 2017-02-15 | 杭州数梦工场科技有限公司 | 一种报文传输的方法和装置 |
CN107070983A (zh) * | 2017-01-23 | 2017-08-18 | 天地融科技股份有限公司 | 一种基于地址转发的负载均衡方法、设备和系统 |
CN107087023A (zh) * | 2017-04-06 | 2017-08-22 | 平安科技(深圳)有限公司 | 数据转发方法和系统 |
CN108200199A (zh) * | 2018-02-05 | 2018-06-22 | 重庆大学 | IPV4 over IPV6隧道场景中的负载均衡系统及方法 |
CN109347817A (zh) * | 2018-10-12 | 2019-02-15 | 厦门安胜网络科技有限公司 | 一种网络安全重定向的方法及装置 |
-
2019
- 2019-12-06 CN CN201911243830.6A patent/CN111193773B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040078467A1 (en) * | 2000-11-02 | 2004-04-22 | George Grosner | Switching system |
US20140036396A1 (en) * | 2012-07-31 | 2014-02-06 | Taiwan Semiconductor Manufacturing Co., Ltd. | Integrated passive device filter with fully on-chip esd protection |
CN104811383A (zh) * | 2015-03-19 | 2015-07-29 | 杭州华三通信技术有限公司 | 一种报文转发方法和设备 |
CN106411742A (zh) * | 2016-10-26 | 2017-02-15 | 杭州数梦工场科技有限公司 | 一种报文传输的方法和装置 |
CN107070983A (zh) * | 2017-01-23 | 2017-08-18 | 天地融科技股份有限公司 | 一种基于地址转发的负载均衡方法、设备和系统 |
CN107087023A (zh) * | 2017-04-06 | 2017-08-22 | 平安科技(深圳)有限公司 | 数据转发方法和系统 |
CN108200199A (zh) * | 2018-02-05 | 2018-06-22 | 重庆大学 | IPV4 over IPV6隧道场景中的负载均衡系统及方法 |
CN109347817A (zh) * | 2018-10-12 | 2019-02-15 | 厦门安胜网络科技有限公司 | 一种网络安全重定向的方法及装置 |
Non-Patent Citations (2)
Title |
---|
吴仲等: "基于Netfilter框架的分布式网络入侵检测系统", 《计算机应用》 * |
徐红梅: "基于LVS-NAT转发的LVS负载均衡集群的研究", 《四川职业技术学院学报》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111770211A (zh) * | 2020-06-17 | 2020-10-13 | 北京百度网讯科技有限公司 | 一种snat方法、装置、电子设备及存储介质 |
CN112968955A (zh) * | 2021-02-18 | 2021-06-15 | 北京网聚云联科技有限公司 | 一种基于eBPF技术的CDN边缘节点跨机调度方法及其系统 |
CN113037808A (zh) * | 2021-02-18 | 2021-06-25 | 北京网聚云联科技有限公司 | 一种基于eBPF技术的CDN节点单机调度方法及其系统 |
CN113037808B (zh) * | 2021-02-18 | 2022-09-27 | 北京网聚云联科技有限公司 | 一种基于eBPF技术的CDN节点单机调度方法及其系统 |
CN112968955B (zh) * | 2021-02-18 | 2023-02-14 | 北京网聚云联科技有限公司 | 一种基于eBPF技术的CDN边缘节点跨机调度方法及其系统 |
CN113746930A (zh) * | 2021-09-09 | 2021-12-03 | 上海格尔安全科技有限公司 | 网络负载均衡方法、装置、计算机设备和存储介质 |
CN114095430A (zh) * | 2021-10-14 | 2022-02-25 | 网宿科技股份有限公司 | 一种访问报文的处理方法、系统及工作节点 |
CN114095430B (zh) * | 2021-10-14 | 2023-10-24 | 网宿科技股份有限公司 | 一种访问报文的处理方法、系统及工作节点 |
CN114285802A (zh) * | 2021-12-21 | 2022-04-05 | 北京字节跳动网络技术有限公司 | 网络负载均衡方法、装置、电子设备、介质和程序产品 |
CN114390056A (zh) * | 2022-01-11 | 2022-04-22 | 京东科技信息技术有限公司 | 负载均衡方法、装置、电子设备及存储介质 |
CN114390056B (zh) * | 2022-01-11 | 2024-05-17 | 京东科技信息技术有限公司 | 负载均衡方法、装置、电子设备及存储介质 |
WO2023142699A1 (zh) * | 2022-01-26 | 2023-08-03 | 华为技术有限公司 | 一种通信方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111193773B (zh) | 2022-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111193773B (zh) | 负载均衡方法、装置、设备及存储介质 | |
CN108449282B (zh) | 一种负载均衡方法及其装置 | |
CN110896553B (zh) | 多接入边缘计算方法和平台、通信系统 | |
CN113596191B (zh) | 一种数据处理方法、网元设备以及可读存储介质 | |
CN109474936B (zh) | 应用于多个lora网关之间的物联网通讯方法及系统 | |
US11800587B2 (en) | Method for establishing subflow of multipath connection, apparatus, and system | |
US10693785B2 (en) | Method and system for forwarding data, virtual load balancer, and readable storage medium | |
CN112968965B (zh) | Nfv网络节点的元数据服务方法、服务器及存储介质 | |
CN109088957B (zh) | Nat规则管理的方法、装置和设备 | |
CN109413224B (zh) | 报文转发方法和装置 | |
CN109120556B (zh) | 一种云主机访问对象存储服务器的方法及系统 | |
CN108650337B (zh) | 一种服务器探测方法、系统及存储介质 | |
CN113765801B (zh) | 应用于数据中心的报文处理方法和装置、电子设备和介质 | |
CN114650290A (zh) | 网络连通的方法、处理装置、终端及存储介质 | |
CN109788075B (zh) | 专网网络系统、数据的获取方法及边缘服务器 | |
CN115225634B (zh) | 虚拟网络下的数据转发方法、装置及计算机程序产品 | |
CN111600929A (zh) | 传输线路探测方法、路由策略生成方法及代理服务器 | |
KR101996337B1 (ko) | 교환기 처리 방법, 제어기, 교환기 및 교환기 처리 시스템 | |
CN112511440B (zh) | 报文转发方法、系统、存储介质和电子设备 | |
EP4331211A1 (en) | Consistent hashing for communication devices | |
CN108848175B (zh) | 一种创建tcp连接的方法及装置 | |
CN114024971A (zh) | 业务数据处理方法、Kubernetes集群及介质 | |
CN109510864B (zh) | 一种缓存请求的转发方法、传输方法及相关装置 | |
CN108055305B (zh) | 一种存储扩展方法及存储扩展装置 | |
CN113489775A (zh) | 一种基于vpp的七层负载均衡服务器及负载均衡方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |