CN107026890B - 一种基于服务器集群的报文生成方法和负载均衡器 - Google Patents
一种基于服务器集群的报文生成方法和负载均衡器 Download PDFInfo
- Publication number
- CN107026890B CN107026890B CN201610944661.9A CN201610944661A CN107026890B CN 107026890 B CN107026890 B CN 107026890B CN 201610944661 A CN201610944661 A CN 201610944661A CN 107026890 B CN107026890 B CN 107026890B
- Authority
- CN
- China
- Prior art keywords
- address
- server
- mac address
- destination
- message
- 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.)
- Active
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
- H04L67/1004—Server selection for load balancing
- H04L67/1014—Server selection for load balancing based on the content of a request
-
- 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/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
-
- 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
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
- H04L12/4675—Dynamic sharing of VLAN information amongst network nodes
- H04L12/4683—Dynamic sharing of VLAN information amongst network nodes characterized by the protocol used
- H04L12/4691—GVRP [GARP VLAN registration protocol]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- 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/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/622—Layer-2 addresses, e.g. medium access control [MAC] addresses
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明涉及一种基于服务器集群的报文生成方法和一种负载均衡器,接收客户端请求报文,所述客户端请求报文包括源IP地址和目的IP地址;根据预先设定的负载均衡策略确定目的服务器;根据所述目的IP地址发送地址解析协议ARP请求报文;根据所述ARP请求报文得到地址解析协议ARP响应报文,所述ARP响应报文包括所述目的服务器的初始介质访问控制MAC地址,其中,所述初始MAC地址与所述目的服务器的实际MAC地址不同;根据所述初始MAC地址更新所述目的IP地址,得到更新后的客户端请求报文,所述更新后的客户端请求报文包括所述源IP地址和更新后的目的IP地址。使用本发明,在报文的传输过程中,并不改变请求报文中的源IP地址,实现在网络层探测到客户端的源IP地址。
Description
技术领域
本发明基于负载均衡技术,具体涉及一种基于服务器集群的报文生成方法和一种用于服务器集群的负载均衡器。
背景技术
负载均衡(Load Balance,LB),其意思就是将任务分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
集群是为了提高服务器的性能,将多个服务器组合在一起。
VLAN(Virtual Local Area Network)的中文名为"虚拟局域网"。虚拟局域网(VLAN)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样,因此被称为虚拟局域网。VLAN主要工作在OSI参考模型的第2层和第3层,一个VLAN就是一个广播域,VLAN之间的通信是通过第3层的路由器来完成的。
Linux虚拟服务器(Linux Virtual Server)。虚拟服务器的体系结构如图1所示,一组服务器通过高速的局域网或者地理分布的广域网相互连接,在它们的前端有一个负载均衡器(Load Balancer)。负载均衡器能无缝地将网络请求均衡到真实服务器上,从而使得服务器集群的结构对客户是透明的,客户访问集群系统提供的网络服务就像访问一台高性能、高可用的服务器一样。客户程序不受服务器集群的影响不需作任何修改。系统的伸缩性通过在服务机群中透明地加入和删除一个节点来达到,通过检测节点或服务进程故障和正确地重置系统达到高可用性。
一般来说,LVS集群采用三层结构,其主要组成部分为:A、负载均衡器(loadbalancer),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址上的。B、服务器池(server pool),是一组真正执行客户请求的服务器,执行的服务有WEB、MAIL、FTP和DNS等。C、共享存储(shared storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容,提供相同的服务。
LVS集群采用IP负载均衡技术和基于内容请求分发技术。负载均衡器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且负载均衡器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。
在已有的IP负载均衡技术中,主要有通过网络地址转换(Network AddressTranslation)将一组服务器构成一个高性能的、高可用的虚拟服务器,我们称之为VS/NAT(Virtual Server via Network Address Translation)技术,IP隧道实现虚拟服务器的VS/TUN(Virtual Server via IP Tunneling)技术,和通过直接路由实现虚拟服务器的VS/DR(Virtual Server via Direct Routing)技术,它们可以极大地提高系统的伸缩性。VS/NAT、VS/TUN和VS/DR技术是LVS集群中实现的三种IP负载均衡技术。
在四层负载均衡器中,如果后端业务主机要全透明感知客户端IP(网络中传输的IP就是客户端IP),目前互联网常用的技术是LVS DR和LVS NAT模式,但在跨Vlan的集群部署架构下,
DR模式需要负载均衡器和后端主机在同一个Vlan,而目前的大规模云化部署通常都跨Vlan的,这导致传统的DR模式无法应用与大规模跨Vlan集群部署中。
发明内容
本发明实施例提供了一种基于服务器集群的报文生成方法,所述方法包括:得到客户端请求报文,所述客户端请求报文包括源IP地址和目的IP地址;
根据预先设定的负载均衡策略确定目的服务器;根据所述目的IP地址得到地址解析协议ARP请求报文;根据所述ARP请求报文得到地址解析协议ARP响应报文,所述ARP响应报文包括所述目的服务器的初始介质访问控制MAC地址,其中,所述初始MAC地址与所述目的服务器的实际MAC地址不同;根据所述初始MAC地址更新所述目的IP地址,得到更新后的客户端请求报文,所述更新后的客户端请求报文包括所述源IP地址和更新后的目的IP地址。根据本发明实施例的报文生成方法,可以在大规模跨Vlan部署中有效的实现数据报文的发送,从而可以在物理层、网络层等知道客户端的源IP地址。
在本发明一种可能的实现方式中,得到地址解析协议ARP响应报文包括:根据所述目的服务器的IP地址得到所述初始MAC地址;根据所述初始MAC地址得到所述ARP响应报文。通过构造初始MAC地址的形式,使报文可以正确的向网络发送,既可以保证业务的正常处理,又没有改变报文的源IP地址。无需修改任何服务端配置即可在网络层获取到源IP,使得可以在网络层做客户端行为分析、网络拦截等工作,大大提升了客户端体验。
在一种可能的实现方式中,根据所述服务器的IP地址从预设表单中得到所述初始MAC地址,其中,所述预设表单用以存储服务器的IP地址与MAC地址的对应关系。在一种可能的实现方式中,IP地址与mac地址之间存在一一对应的关系。
在一种可能的实现方式中,根据预设算法对所述目的服务器的IP地址进行转换,得到所述初始MAC地址。这种方式可以实时的构造mac地址,不需要预先存储流表,节省存储空间的同时也可以对ARP请求及时的响应。在处理多个请求时,通过实施构造mac地址的形式可以有效的对请求进行及时的处理,并保证业务的正常实现。
在一种可能的实现方式中,更新后的目的IP地址与所述服务器的IP地址相同。这样报文可以正确的发送到服务器。
本发明的实施例公开了一种用于服务器集群的负载均衡器,所述负载均衡器包括:直接路由模块,用于接收客户端请求报文,所述客户端请求报文包括源IP地址和目的IP地址;所述直接路由模块还用于根据预先设定的负载均衡策略确定目的服务器;所述直接路由模块还用于根据所述目的IP地址发送地址解析协议ARP请求报文;所述直接路由模块还用于根据所述ARP请求报文得到地址解析协议ARP响应报文,所述ARP响应报文包括所述目的服务器的初始介质访问控制MAC地址,其中,所述初始MAC地址与所述目的服务器的实际MAC地址不同;报文地址转换模块,用于根据所述初始MAC地址更新所述目的IP地址,得到更新后的客户端请求报文,所述更新后的客户端请求报文包括所述源IP地址和更新后的目的IP地址。根据本发明实施例的负载均衡器,可以在大规模跨Vlan部署中有效的实现数据报文的发送,从而可以在物理层、网络层等知道客户端的源IP地址。
在本发明的一种可能的实现方式中,所述直接路由模块还用于:根据所述目的服务器的IP地址得到所述初始MAC地址;根据所述初始MAC地址得到所述ARP响应报文。通过构造初始MAC地址的形式,使报文可以正确的向网络发送,既可以保证业务的正常处理,又没有改变报文的源IP地址。无需修改任何服务端配置即可在网络层获取到源IP,使得可以在网络层做客户端行为分析、网络拦截等工作,大大提升了客户端体验。
在一种可能的实现方式中,所述直接路由模块还用于:根据所述服务器的IP地址从预设表单中得到所述初始MAC地址,其中,所述预设表单用以存储服务器的IP地址与MAC地址的对应关系;根据所述初始MAC地址得到所述ARP响应报文。在一种可能的实现方式中,IP地址与mac地址之间存在一一对应的关系。
在一种可能的实现方式中,所述直接路由模块还用于:根据预设算法对所述目的服务器的IP地址进行转换,得到所述初始MAC地址;根据所述初始MAC地址得到所述ARP响应报文。这种方式可以实时的构造mac地址,不需要预先存储流表,节省存储空间的同时也可以对ARP请求及时的响应。在处理多个请求时,通过实施构造mac地址的形式可以有效的对请求进行及时的处理,并保证业务的正常实现。
在一种可能的实现方式中,更新后的目的IP地址与所述服务器的IP地址相同。这样报文可以正确的发送到服务器。
在一种可能的实现方式中,负载均衡器还包括探测模块,用于探测负载均衡器的下一跳mac地址,将下一跳mac地址作为更新后报文的mac地址。从而使得报文可以正确向服务器发送。
本发明的另一方面的实施例了提供了一种负载均衡器,所述负载均衡器包括处理器和存储器,所述存储器存储有可执行的代码,所述处理器执行所述代码用于得到客户端请求报文,所述客户端请求报文包括源IP地址和目的IP地址;可执行代码还用于根据预先设定的负载均衡策略确定目的服务器;可执行代码还用于根据所述目的IP地址得到地址解析协议ARP请求报文;可执行代码还用于根据所述ARP请求报文得到地址解析协议ARP响应报文,所述ARP响应报文包括所述目的服务器的初始介质访问控制MAC地址,其中,所述初始MAC地址与所述目的服务器的实际MAC地址不同;可执行代码用于根据所述初始MAC地址更新所述目的IP地址,得到更新后的客户端请求报文,所述更新后的客户端请求报文包括所述源IP地址和更新后的目的IP地址。根据本发明实施例的负载均衡器,可以在大规模跨Vlan部署中有效的实现数据报文的发送,从而可以在物理层、网络层等知道客户端的源IP地址。
在本发明的一种可能的实现方式中,处理器执行所述代码用于:根据所述目的服务器的IP地址得到所述初始MAC地址;根据所述初始MAC地址得到所述ARP响应报文。通过构造初始MAC地址的形式,使报文可以正确的向网络发送,既可以保证业务的正常处理,又没有改变报文的源IP地址。无需修改任何服务端配置即可在网络层获取到源IP,使得可以在网络层做客户端行为分析、网络拦截等工作,大大提升了客户端体验。
在一种可能的实现方式中,处理器执行所述代码用于:根据所述服务器的IP地址从预设表单中得到所述初始MAC地址,其中,所述预设表单用以存储服务器的IP地址与MAC地址的对应关系;根据所述初始MAC地址得到所述ARP响应报文。在一种可能的实现方式中,IP地址与mac地址之间存在一一对应的关系。
在一种可能的实现方式中,处理器执行所述代码用于:根据预设算法对所述目的服务器的IP地址进行转换,得到所述初始MAC地址;根据所述初始MAC地址得到所述ARP响应报文。这种方式可以实时的构造mac地址,不需要预先存储流表,节省存储空间的同时也可以对ARP请求及时的响应。在处理多个请求时,通过实施构造mac地址的形式可以有效的对请求进行及时的处理,并保证业务的正常实现。
在一种可能的实现方式中,更新后的目的IP地址与所述服务器的IP地址相同。这样报文可以正确的发送到服务器。
在一种可能的实现方式中,处理器执行所述代码用于探测负载均衡器的下一跳mac地址,将下一跳mac地址作为更新后报文的mac地址。从而使得报文可以正确向服务器发送。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为虚拟服务器的体系结构示意图。
图2为直接路由实现虚拟服务器技术的体系结构示意图。
图3为直接路由实现虚拟服务器技术的工作流程示意图。
图4为大规模跨虚拟局域网集群下负载均衡器的部署示意图。
图5为本发明实施例的基于服务器集群的报文请求和报文响应的流程示意图。
图6为述本发明实施例的基于服务器集群的报文生成,发送和响应的实现方式示意图。
图7为本发明实施例的地址解析协议代理应答流程的处理流程示意图。
图8为本发明实施例的基于学习流表的处理流程图。
图9为本发明实施例的一种用于服务器集群的负载均衡器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图2和图3简要介绍下直接路由实现虚拟服务器VS/DR(Virtual Servervia Direct Routing)技术,VS/DR利用大多数Internet服务的非对称特点,负载均衡器中只负责均衡请求,而服务器直接将响应返回给客户,可以极大地提高整个集群系统的吞吐量。
VS/DR的体系结构如图2所示:负载均衡器和服务器组都必须在物理上有一个网卡通过不分段的局域网相连,如通过高速的交换机或者HUB相连。VIP(虚拟IP)地址为负载均衡器和服务器组共享,负载均衡器配置的VIP地址是对外可见的,用于接收虚拟服务的请求报文;所有的服务器把VIP地址配置在各自的Non-ARP(Address Resolution Protocol,地址解析协议)网络设备上,它对外面是不可见的,只是用于处理目标地址为VIP的网络请求。
VS/DR的工作流程如图3所示:VS/DR将报文直接路由给目标服务器。在VS/DR中,负载均衡器根据各个服务器的负载情况,动态地选择一台服务器,不修改也不封装IP报文,而是将数据帧的MAC(Media Access Control,介质访问控制)地址改为选出服务器的MAC地址,再将修改后的数据帧在服务器组的局域网上发送。因为数据帧的MAC地址是选出的服务器,所以服务器肯定可以收到这个数据帧,从中可以获得该IP报文。当服务器发现报文的目标地址是在本地的网络设备上,服务器处理这个报文,然后根据路由表将响应报文直接返回给客户。
在VS/DR的一种实现方式中,根据缺省的TCP/IP协议栈处理,请求报文的目标地址为VIP(Virtual IP,虚拟IP),响应报文的源地址肯定也为VIP,所以响应报文不需要作任何修改,可以直接返回给客户,客户认为得到正常的服务,而不会知道是哪一台服务器处理的。
DR(Direct Routing,直接路由)模式需要负载均衡器和后端主机在同一个Vlan,而目前的大规模云化部署通常都跨Vlan(Virtual Local Area Network,虚拟局域网)的,这导致传统的DR模式无法应用与大规模跨Vlan集群部署中。而本发明的实施例提供了一种基于DR技术的报文发送方法,可以在大规模跨Vlan部署中有效的实现数据报文的发送,从而可以在物理层、网络层等知道客户端的源IP地址。
图4是大规模跨Vlan集群下LB(Load Banlancer,负载均衡器)的部署示意图。如图4所示,客户端user通过互联网接入服务器集群,从而得到多种服务,这种部署可以是公用云或私有云的形式。LB是在整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行。服务器组运行多个的VM(Virtual Machine,虚拟机),这些VM可以具体的处理各种业务请求。
图5公开了本发明实施例的基于服务器集群的报文请求和报文响应的流程示意图。
如图5所示,对于终端发送的请求报文,交换机通过等价路由将报文送到LVS(Linux Virtual Server,Linux虚拟服务器)集群上,配合流表管理,将目的IP修改为后端主机IP,使得报文可以跨Vlan传输到后端服务器;而在这一过程中,并不改变请求报文中的源IP地址,这样可以实现在网络层探测到客户端的源IP地址。
对于针对请求报文发出的响应报文,需要做SNAT(source network addresstranslation,源网络地址转换),将响应报文的源IP改为公网IP(即请求报文中的目的IP),SNAT模块可部署在VM对应的计算节点上。这样客户端收到的响应报文的源IP地址与请求报文中的目的IP地址一致,客户端发出的请求得到了正确的响应。
下面结合图6-图8详细描述本发明实施例的基于服务器集群的报文生成,发送和响应的具体实现方式。
如图6所示,客户端的IP地址为200.1.1.19,客户端可以是笔记本电脑,台式电脑,手机,平板电脑或者其它网络接入设备。客户端需要请求公网IP地址为117.78.6.19的服务,则请求报文的源IP地址为200.1.1.19,目的IP地址为117.78.6.19。
在一种可能的实现方式中,客户端可以先发出访问域名的请求,如访问www.huawei.com等,DNS(Domain Name System,域名系统)服务器完成对该域名的解析后,服务器将该域名对应的公网IP地址发送给客户端。
该请求报文经过路由器转发后,位于LVS集群最前端的负载均衡器接收到该报文,对该报文进行一系列的处理。
负载均衡器在收到该请求报文后,根据负载均衡调度算法从服务器集群中选择服务器来响应该请求。例如,服务器1,对应IP地址为10.11.12.11;服务器2,对应IP地址为10.11.12.12;服务器3,对应IP地址为10.11.12.13等。在本示例中,选择的是服务器3,对应IP地址为10.11.12.13。
具体的根据负载均衡调度算法从服务器集群中选择服务器的方式可参考现有技术中揭示的各种负载均衡调度算法,本发明实施例仅对此做简要介绍。负载调度器上的负载调度策略和算法主要包括在内核中所实现的动态反馈负载均衡算法两方面。其中,动态反馈负载均衡算法主要是结合内核中的加权连接调度算法,根据动态反馈回来的负载信息来调整服务器的权值,来进一步避免服务器间的负载不平衡。在内核中的连接调度算法上,主要包括轮叫调度(Round-Robin Scheduling)、加权轮叫调度(Weighted Round-RobinScheduling)、最小连接调度(Least-Connection Scheduling)、加权最小连接调度(Weighted Least-Connection Scheduling)、基于局部性的最少链接(Locality-BasedLeast Connections Scheduling)、带复制的基于局部性最少链接(Locality-Based LeastConnections with Replication Scheduling)、目标地址散列调度(Destination HashingScheduling)、源地址散列调度(Source Hashing Scheduling)等方式。动态反馈负载均衡算法考虑服务器的实时负载和响应情况,不断调整服务器间处理请求的比例,来避免有些服务器超载时依然收到大量请求,从而提高整个系统的吞吐率,主要包括连接调度、动态反馈负载均衡机制、综合负载和权值计算等方面。
在本发明的一种实施例中,负载均衡器里保存有三张流表,负载均衡器可以根据流表执行不同的功能。
1、ARP代理应答流表:
负载均衡器在接收ARP报文后,可以根据ARP代理应答流表构造一个MAC地址,使得后续报文可发出网络。
22、地址转换流表:
负载均衡器可以根据地址转换流表修改报文的目的mac和目的IP,使得报文可跨VLAN分发。
3、学习流表:
负载均衡器探测的下一跳mac地址,并存入地址转换流表中。
在本发明的一种实现方式中,负载均衡器通过配置出口网关IP,周期性发送ARP广播探测,通过和网关IP比对获取网络下一跳mac地址,并存入地址转换流表中。
在本发明的一个示例中,在负载均衡器确定了由服务器3响应该请求报文后,LVSDR模块发出ARP报文,询问对应的MAC地址。该ARP报文并未实际向网络发送,而是被负载均衡器在内部进行拦截并处理。
下面结合图7描述本发明实施例的ARP代理应答流程的处理流程示意图。如图7所示,ARP代理应答流表首先接收ARP报文,从ARP报文中解析出相应的IP地址(例如,10.11.12.13),然后根据预设的规则生成一个假的MAC地址进行欺诈。需要说明的是,此处的假的mac地址是指与服务器3的实际物理mac地址不一致。进行欺诈指的是使得LVS DR模块根据接收到的ARP响应报文,向响应报文中的mac地址发送请求报文。负载均衡器通过构造假的MAC地址的形式,使报文可以正确的向网络发送,既可以保证业务的正常处理,又没有改变报文的源IP地址。无需修改任何服务端配置即可在网络层获取到源IP,使得可以在网络层做客户端行为分析、网络拦截等工作,大大提升了客户端体验。
在本发明的一种实现方式中,通过预设的规则得到IP地址对应的mac地址,例如在IP地址的字段前增加2个字段或者在IP地址的字段后增加两个字段。
例1:IP地址为10.11.12.13,则构造后的MAC地址为aa.bb.10.11.12.13。
例2:IP地址为10.11.12.13,则构造后的MAC地址为10.11.12.13.aa.bb。
例3:IP地址为10.11.12.13,则构造后的MAC地址为10.11.aa.12.13.bb。
这种方式可以实时的构造mac地址,不需要预先存储流表,节省存储空间的同时也可以对ARP请求及时的响应。在处理多个请求时,通过实施构造mac地址的形式可以有效的对请求进行及时的处理,并保证业务的正常实现。
在本发明的一种实现方式中,通过查表的方式得到IP地址对应的mac地址,IP地址与mac地址之间存在一一对应的关系。
LVS DR模块接收ARP报文后,将ARP报文中的mac地址与客户端的请求报文封装在一起。此时的报文的目的mac地址为ARP代理应答流表构造的mac地址,源IP地址与目的IP地址与客户端请求报文相同。
在本发明的一种实施例中,对于来自同一请求的后续报文,LVS DR模块将报文的mac地址直接判断为上述得到的mac地址,根据上述mac地址进行封装得到封装后的报文。
对于封装后的报文,并未实际向网络发送,而是被负载均衡器在内部进行拦截。
在本发明的一种实现方式中,地址转换流表截获报文,获取当前报文的目的mac为aa.bb.10.11.12.13,根据流表规则,计算出目的IP地址为10.11.12.13,同时结合从学习流表中获取到的下一跳mac aa.bb.cc.dd.ee.ff,将当前报文的目的IP和mac进行转换:
目的IP转换:117.78.6.19→10.11.12.13;
目的mac转换:aa.bb.10.11.12.13–>aa.bb.cc.dd.ee.ff。
这样mac转换使得报文可发送到网络中下一跳,而IP转换使得报文可跨Vlan分发(10.11.12.13是一个内网IP,路由可达)。
在本发明的一种实现方式中,地址转换流表也可以通过查表的方式得到与目的mac对应的IP地址,IP地址与mac地址之间存在一一对应的关系。
下面结合图8描述本发明实施例的负载均衡器的处理流程图。如图8所示,通过GARP(Generic Attribute Registration Protocol,通用属性注册协议)获得下一跳的mac地址。可以按照预定时间间隔或者根据请求触发的形式对网络情况进行探测;然后接收GARP报文,通过解析GARP报文得出下一跳的MAC地址,然后将下一跳的MAC地址存入地址转换流表。
服务器在收到客户端请求报文后,根据请求报文生成响应报文,响应报文的源IP地址为服务器的IP地址,目的地址为客户端的IP地址。在经过地址转换协议转换之后,将响应报文的源IP地址改为请求报文所请求访问的公网IP地址。然后将转换后的响应报文根据客户端的IP地址直接发送给客户端。
在本发明的一个实现方式中,地址转换模块可以部署在计算节点calculate node上。
在本发明的一个实现方式中,vip(虚拟IP)和vm(virtual mchine,虚拟机)IP的对应关系是可以在建立LB的时候保存在SNAT流表里。
在请求处理过程中,目的IP已经转换为了内网的虚拟IP,10.11.12.13,当vm(virtual machine,虚拟机)返回报文时,源IP为10.11.12.13,而internet客户端最初访问的IP是vip 117.68.6.19,此时根据SNAT流表将源IP(VM IP)10.11.12.13转换为117.68.6.19返回给客户端,保证业务的连通性。
在一个示例中,SNAT流表如下:
VIP | VMIP |
117.78.6.19 | 10.11.12.13 |
117.78.6.19 | 10.11.12.14 |
117.78.6.19 | 10.11.12.15 |
...... | ...... |
下面结合图9描述本发明实施例的一种用于服务器集群的负载均衡器900,如图9所示,负载均衡器900包括直接路由模块901,用于接收客户端请求报文,客户端请求报文包括源IP地址和目的IP地址;直接路由模块901还用于根据预先设定的负载均衡策略确定目的服务器;直接路由模块901还用于根据目的IP地址发送地址解析协议ARP请求报文;直接路由模块901还用于根据ARP请求报文得到地址解析协议ARP响应报文,ARP响应报文包括目的服务器的初始介质访问控制MAC地址,其中,初始MAC地址与目的服务器的实际MAC地址不同;报文地址转换模块902,用于根据初始MAC地址更新所述目的IP地址,得到更新后的客户端请求报文,更新后的客户端请求报文包括源IP地址和更新后的目的IP地址。根据本发明实施例的负载均衡器,可以在大规模跨Vlan部署中有效的实现数据报文的发送,从而可以在物理层、网络层等知道客户端的源IP地址。
在本发明的一种可能的实现方式中,直接路由模块901还用于:根据目的服务器的IP地址得到初始MAC地址;根据初始MAC地址得到ARP响应报文。在一种可能的实现方式中,直接路由模块901还用于:根据服务器的IP地址从预设表单中得到初始MAC地址,其中,预设表单用以存储服务器的IP地址与MAC地址的对应关系;根据初始MAC地址得到所述ARP响应报文。在一种可能的实现方式中,IP地址与mac地址之间存在一一对应的关系。
在一种可能的实现方式中,直接路由模块901还用于:根据预设算法对目的服务器的IP地址进行转换,得到初始MAC地址;根据初始MAC地址得到ARP响应报文。在一种可能的实现方式中,更新后的目的IP地址与服务器的IP地址相同。这样报文可以正确的发送到服务器。
在一种可能的实现方式中,负载均衡器900还包括探测模块903,用于探测负载均衡器的下一跳mac地址,将下一跳mac地址作为更新后报文的mac地址。从而使得报文可以正确向服务器发送。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
上述装置和系统内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁碟、光盘、只读存储记忆体(ROM:Read-Only Memory)或随机存储记忆体(RAM:RandomAccess Memory)等。
Claims (7)
1.一种基于服务器集群的报文生成方法,其特征在于,所述方法由负载均衡器执行,所述方法包括:
得到客户端请求报文,所述客户端请求报文包括源IP地址和目的IP地址;
根据预先设定的负载均衡策略确定目的服务器;
根据所述目的IP地址得到地址解析协议ARP请求报文;
根据所述目的服务器的IP地址得到初始MAC地址;
根据所述初始MAC地址得到ARP响应报文,所述ARP响应报文包括所述目的服务器的初始介质访问控制MAC地址,其中,所述初始MAC地址与所述目的服务器的实际MAC地址不同;
根据所述初始MAC地址更新所述目的IP地址,得到更新后的客户端请求报文,所述更新后的客户端请求报文包括所述源IP地址和更新后的目的IP地址。
2.根据权利要求1所述的报文生成方法,其特征在于,所述根据所述目的服务器的IP地址得到所述初始MAC地址,包括:
根据所述服务器的IP地址从预设表单中得到所述初始MAC地址,其中,所述预设表单用以存储服务器的IP地址与MAC地址的对应关系。
3.根据权利要求1所述的报文生成方法,其特征在于,所述根据所述目的服务器的IP地址得到所述初始MAC地址,包括:
根据预设算法对所述目的服务器的IP地址进行转换,得到所述初始MAC地址。
4.根据权利要求1-3任意之一所述的报文生成方法,其特征在于,所述更新后的目的IP地址与所述服务器的IP地址相同。
5.一种用于服务器集群的负载均衡器,其特征在于,所述负载均衡器包括:
直接路由模块,用于得到客户端请求报文,所述客户端请求报文包括源IP地址和目的IP地址;
所述直接路由模块还用于根据预先设定的负载均衡策略确定目的服务器;
所述直接路由模块还用于根据所述目的IP地址得到地址解析协议ARP请求报文;
所述直接路由模块还用于根据所述目的服务器的IP地址得到初始MAC地址,根据所述初始MAC地址得到ARP响应报文,所述ARP响应报文包括所述目的服务器的初始介质访问控制MAC地址,其中,所述初始MAC地址与所述目的服务器的实际MAC地址不同;
报文地址转换模块,用于根据所述初始MAC地址更新所述目的IP地址,得到更新后的客户端请求报文,所述更新后的客户端请求报文包括所述源IP地址和更新后的目的IP地址。
6.根据权利要求5所述的负载均衡器,其特征在于,所述直接路由模块还用于:
根据所述服务器的IP地址从预设表单中得到所述初始MAC地址,其中,所述预设表单用以存储服务器的IP地址与MAC地址的对应关系;
根据所述初始MAC地址得到所述ARP响应报文。
7.根据权利要求5所述的负载均衡器,其特征在于,所述直接路由模块还用于:
根据预设算法对所述目的服务器的IP地址进行转换,得到所述初始MAC地址;
根据所述初始MAC地址得到所述ARP响应报文。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020187024414A KR102138619B1 (ko) | 2016-02-02 | 2016-11-09 | 서버 클러스터에 기초한 메시지 생성 방법 및 부하 균형기 |
PCT/CN2016/105230 WO2017133291A1 (zh) | 2016-02-02 | 2016-11-09 | 一种基于服务器集群的报文生成方法和负载均衡器 |
EP16889098.6A EP3402151B1 (en) | 2016-02-02 | 2016-11-09 | Server cluster-based message generation method and load balancer |
US16/052,923 US10911398B2 (en) | 2016-02-02 | 2018-08-02 | Packet generation method based on server cluster and load balancer |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610072967X | 2016-02-02 | ||
CN201610072967 | 2016-02-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107026890A CN107026890A (zh) | 2017-08-08 |
CN107026890B true CN107026890B (zh) | 2020-10-09 |
Family
ID=59524114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610944661.9A Active CN107026890B (zh) | 2016-02-02 | 2016-11-02 | 一种基于服务器集群的报文生成方法和负载均衡器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10911398B2 (zh) |
EP (1) | EP3402151B1 (zh) |
KR (1) | KR102138619B1 (zh) |
CN (1) | CN107026890B (zh) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107786669B (zh) * | 2017-11-10 | 2021-06-22 | 华为技术有限公司 | 一种负载均衡处理的方法、服务器、装置及存储介质 |
CN110247848B (zh) * | 2018-03-09 | 2021-08-20 | 华为技术有限公司 | 发送报文的方法、网络设备及计算机可读存储介质 |
JP6705857B2 (ja) * | 2018-03-28 | 2020-06-03 | 日本電信電話株式会社 | 通信装置、通信制御システム、通信制御方法及び通信制御プログラム |
CN109639589B (zh) * | 2018-12-27 | 2022-09-30 | 杭州迪普科技股份有限公司 | 一种负载均衡方法及装置 |
US11042479B2 (en) * | 2019-01-08 | 2021-06-22 | Oracle International Corporation | Fully active and non replicated block storage solution |
CN109547580B (zh) * | 2019-01-22 | 2021-05-25 | 网宿科技股份有限公司 | 一种处理数据报文的方法和装置 |
CN109698796A (zh) * | 2019-03-07 | 2019-04-30 | 江苏省人民医院 | 一种高性能网络负载均衡系统及其实现方法 |
CN110545230B (zh) * | 2019-09-06 | 2023-09-26 | 北京百度网讯科技有限公司 | 用于转发vxlan报文的方法和装置 |
CN110971482B (zh) * | 2019-11-05 | 2021-07-23 | 北京字节跳动网络技术有限公司 | 基于ebpf的后端服务器检测方法、装置及电子设备 |
CN110932992A (zh) * | 2019-11-29 | 2020-03-27 | 深圳供电局有限公司 | 一种基于隧道模式的负载均衡通信方法 |
CN112929264B (zh) * | 2019-12-06 | 2022-10-28 | 厦门网宿有限公司 | 业务流量传输方法、系统及网络设备 |
CN111131439A (zh) * | 2019-12-20 | 2020-05-08 | 浪潮电子信息产业股份有限公司 | 基于iSCSI的报文传输方法、装置、设备及存储介质 |
CN112015544A (zh) * | 2020-06-30 | 2020-12-01 | 苏州浪潮智能科技有限公司 | 一种k8s集群的负载均衡方法、装置、设备及存储介质 |
CN111818151A (zh) * | 2020-07-03 | 2020-10-23 | 紫光云技术有限公司 | 基于ip隧道实现负载均衡器透传客户端ip的方法 |
CN112486692A (zh) * | 2020-12-18 | 2021-03-12 | 深圳市潮流网络技术有限公司 | 服务器负载均衡方法和装置、负载信息处理方法和装置 |
CN113141400B (zh) * | 2021-04-14 | 2023-04-07 | 网宿科技股份有限公司 | 一种网络服务的访问方法及装置 |
CN113709054A (zh) * | 2021-07-16 | 2021-11-26 | 济南浪潮数据技术有限公司 | 一种基于keepalived的LVS系统部署调节方法、装置及系统 |
CN113691460B (zh) * | 2021-08-26 | 2023-10-03 | 平安科技(深圳)有限公司 | 基于负载均衡的数据传输方法、装置、设备及存储介质 |
CN114268630B (zh) * | 2021-12-14 | 2024-04-12 | 浪潮思科网络科技有限公司 | 基于静态arp表项实现随机负载均衡访问方法、装置及设备 |
CN114827078A (zh) * | 2022-04-01 | 2022-07-29 | 阿里云计算有限公司 | 节点访问方法以及数据传输系统 |
KR102530913B1 (ko) * | 2023-02-08 | 2023-05-10 | 주식회사 파이오링크 | 패킷의 콘텐츠 기반으로 dsr 로드 밸런싱을 수행하는 방법 및 패킷 콘텐츠 기반 dsr 로드 밸런싱 시스템 |
US11968169B1 (en) | 2023-06-14 | 2024-04-23 | International Business Machines Corporation | Domain name based deployment |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110268117A1 (en) * | 2000-12-28 | 2011-11-03 | Davis Arlin R | Lan emulation over infiniband fabric apparatus, systems, and methods |
WO2011143652A2 (en) * | 2010-05-14 | 2011-11-17 | Extreme Networks, Inc. | Methods, systems, and computer readable media for stateless load balancing of network traffic flows |
CN105282043A (zh) * | 2014-06-20 | 2016-01-27 | 中国电信股份有限公司 | 全局网络负载均衡系统、设备和方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002061599A1 (en) * | 2001-01-25 | 2002-08-08 | Crescent Networks, Inc. | Extension of address resolution protocol (arp) for internet protocol (ip) virtual networks |
CA2567303C (en) * | 2004-05-20 | 2015-03-24 | Freebit Co., Ltd. | Server for routing connection to client device |
US8300647B2 (en) * | 2007-05-18 | 2012-10-30 | Nvidia Corporation | Intelligent load balancing and failover of network traffic |
CN101296238B (zh) * | 2008-06-17 | 2011-04-20 | 杭州华三通信技术有限公司 | 一种保持安全套接层会话持续性的方法及设备 |
US9141625B1 (en) * | 2010-06-22 | 2015-09-22 | F5 Networks, Inc. | Methods for preserving flow state during virtual machine migration and devices thereof |
CN103023942B (zh) | 2011-09-27 | 2016-08-03 | 北京奇虎科技有限公司 | 一种服务器负载均衡方法、装置及系统 |
CN103384255B (zh) | 2011-12-31 | 2016-08-10 | 华为数字技术(成都)有限公司 | 虚拟机集群的负载均衡方法、服务器及系统 |
-
2016
- 2016-11-02 CN CN201610944661.9A patent/CN107026890B/zh active Active
- 2016-11-09 KR KR1020187024414A patent/KR102138619B1/ko active IP Right Grant
- 2016-11-09 EP EP16889098.6A patent/EP3402151B1/en active Active
-
2018
- 2018-08-02 US US16/052,923 patent/US10911398B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110268117A1 (en) * | 2000-12-28 | 2011-11-03 | Davis Arlin R | Lan emulation over infiniband fabric apparatus, systems, and methods |
WO2011143652A2 (en) * | 2010-05-14 | 2011-11-17 | Extreme Networks, Inc. | Methods, systems, and computer readable media for stateless load balancing of network traffic flows |
CN105282043A (zh) * | 2014-06-20 | 2016-01-27 | 中国电信股份有限公司 | 全局网络负载均衡系统、设备和方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20180108708A (ko) | 2018-10-04 |
EP3402151A4 (en) | 2019-01-09 |
CN107026890A (zh) | 2017-08-08 |
US10911398B2 (en) | 2021-02-02 |
EP3402151B1 (en) | 2020-04-29 |
US20180343228A1 (en) | 2018-11-29 |
EP3402151A1 (en) | 2018-11-14 |
KR102138619B1 (ko) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107026890B (zh) | 一种基于服务器集群的报文生成方法和负载均衡器 | |
KR102604082B1 (ko) | 멀티 클러스터 인그레스 | |
WO2017133291A1 (zh) | 一种基于服务器集群的报文生成方法和负载均衡器 | |
EP3367638B1 (en) | Load balancing method, device and system | |
US9253245B2 (en) | Load balancer and related techniques | |
US10034201B2 (en) | Stateless load-balancing across multiple tunnels | |
CN105577723B (zh) | 虚拟化网络中实现负载分担的方法和装置 | |
US20160261505A1 (en) | Localized service chaining in nfv clouds | |
CN104486402A (zh) | 一种基于大型网站组合均衡的方法 | |
US20230370421A1 (en) | Scaling ip addresses in overlay networks | |
RU2019113321A (ru) | Системы и способы обнаружения вспомогательной сети для кластерных систем на основе нулевой конфигурации | |
US20220166715A1 (en) | Communication system and communication method | |
CN107547339A (zh) | 一种网关媒体接入控制mac地址反馈方法及装置 | |
US11362863B2 (en) | Handling packets travelling from logical service routers (SRs) for active-active stateful service insertion | |
US7711780B1 (en) | Method for distributed end-to-end dynamic horizontal scalability | |
US10924397B2 (en) | Multi-VRF and multi-service insertion on edge gateway virtual machines | |
US10931565B2 (en) | Multi-VRF and multi-service insertion on edge gateway virtual machines | |
Rodge et al. | Multicast routing with load balancing using Amazon web service | |
US12028314B2 (en) | Providing persistent external internet protocol address for extra-cluster services | |
US20240031290A1 (en) | Centralized service insertion in an active-active logical service router (sr) cluster |
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 |