一种数据转发方法及系统与流程

文档序号:11138501阅读:765来源:国知局
一种数据转发方法及系统与制造工艺

本发明实施例涉及网络通信技术,尤其涉及一种数据转发方法及系统。



背景技术:

随着网站互联网数据的增加,单台服务器无法处理大量客户端的访问。这时就需要用负载均衡让多台服务器提供服务。一般防火墙使用一个外网IP地址(Internet Protocol,网络之间互连的协议)对应一个内网IP地址的映射,负载均衡使用一个外网IP地址对应多个内网IP地址的映射,每个内网IP地址对应一台内网服务器。由均衡算法选出一组映射,把访问请求传给内网服务器。负载均衡设备对外提供统一的IP地址和端口,对用户来说访问是透明的,用户不能感知网站内的负载均衡。

负载均衡实现装置目前有很多种,如嵌入式系统的著名的F5负载均衡设备BIG-IP,对于所有的对外提供服务的服务器,均可以在BIG-IP上配置虚拟服务器实现负载均衡,同时BIG-IP可持续检查服务器的健康状态,一旦发现故障服务器,则将其从负载均衡组中摘除。BIG-IP利用虚拟IP地址来为用户的一个或多个目标服务器提供服务。但是这个设备成本比较高。



技术实现要素:

本发明提供一种数据转发方法及系统,通过安装有Linux操作系统的负载均衡设备,以较为低廉的成本实现负载均衡,扩展网站网络吞吐量。

第一方面,本发明实施例提供了一种数据转发方法,应用于安装有Linux操作系统的负载均衡设备中,包括:

启用Linux操作系统内置的IP报文过滤机制,在Linux操作系统的过滤驱动层获取客户端发送的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地址校验和以及协议校验和。

进一步地,所述数据转发方法由所述负载均衡设备的内核驱动执行,其中,所述负载均衡表与所述转发规则集预先下发于所述内核驱动中。

第二方面,本发明实施例还提供了一种数据转发系统,该系统包括:

负载均衡设备,数据交换机,应用服务器;

所述负载均衡设备安装有Linux操作系统,用于启用Linux操作系统内置的IP报文过滤机制,在Linux操作系统的过滤驱动层获取客户端发送的IP报文,根据设定的负载均衡策略,将所述IP报文转发至应用服务器,并将所述应用服务器返回的回复报文转发至所述客户端;

所述数据交换机,用于接收物理转发端口转发的IP报文,并转发给与转发IP地址对应的应用服务器;

所述应用服务器,用于接收负载均衡设备转发的IP报文,并返回回复报文给负载均衡设备;

所述负载均衡设备与所述数据交换机相连,所述数据交换机与至少两台应用服务器相连

本发明实施例通过安装有Linux操作系统的负载均衡设备,以较为低廉的成本实现负载均衡,扩展网站网络吞吐量。

附图说明

图1为本发明实施例一中的一种数据转发方法的流程图;

图2是本发明实施例二中的一种数据转发方法的流程图;

图3是本发明实施例三中的一种数据转发方法的流程图;

图4是本发明实施例四中的一种数据转发系统的结构图;

图5是本发明实施例五中的一种驱动实现架构图;

图6是本发明实施例五中的一种过滤驱动模块图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1为本发明实施例一提供的一种数据转发方法的流程图,本发明实施例可用于实现负载均衡,扩展网站网络吞吐量。该方法可以由本发明实施例提供的一种数据转发系统来执行,该系统可以由软件和或硬件的方式来实现,该系统可以包括负载均衡设备、数据交换机和应用服务器,其中负载均衡设备可以是安装有Linux操作系统的负载均衡设备,负载均衡设备可以是任意一台服务器,数据交换机是市面上常用的交换机,应用服务器是内网服务器。该方法应用于安装有Linux操作系统的负载均衡设备中,包括:

S110、启用Linux操作系统内置的IP报文过滤机制,在Linux操作系统的过滤驱动层获取客户端发送的IP报文;

现有的各种版本的Linux操作系统均在内核中内置有IP报文过滤功能,在本实施例中,通过使用一台配置有Linux操作系统的普通服务器,在Linux操作系统提供的IP报文过滤功能的基础上扩展相应功能,即可使得该普通服务器具有负载均衡功能。

Linux操作系统提供了IP报文过滤机制,启动并注册IP过滤驱动,即可获取客户端发送的IP报文,其中,客户端可以是任意一台电脑、笔记本、平板电脑或者手机,只要具有上网功能的设备都可以,而且不限定所述客户端的数量。

S120、根据设定的负载均衡策略,将所述IP报文转发至应用服务器,并将所述应用服务器返回的回复报文转发至所述客户端。

所述应用服务器是需要进行负载均衡的内网服务器,会根据接收的IP报文,生成回复报文,返回给负载均衡设备,该负载均衡设备收到回复报文后,会进而将该回复报文转发至所述客户端。

本实施例的技术方案,通过启用Linux操作系统内置的IP报文过滤机制,在Linux操作系统的过滤驱动层获取客户端发送的IP报文,根据设定的负载均衡策略,将所述IP报文转发至应用服务器,并将所述应用服务器返回的回复报文转发至所述客户端,实现了以较为低廉的成本进行负载均衡,扩展了网站网络吞吐量。

实施例二

图2为本发明实施例二提供的一种数据转发方法的流程图。本实施例在上述实施例的基础上,对所述启用Linux操作系统内置的IP报文过滤机制,在Linux操作系统的过滤驱动层获取客户端发送的IP报文进行了解释,并且对所述根据设定的负载均衡策略,将所述IP报文转发至应用服务器,并将所述应用服务器返回的回复报文转发至所述客户端,进行了具体优化。

相应的,本实施例的方法包括:

S210、启用Linux操作系统内置的IP报文过滤机制,在Linux操作系统的过滤驱动层获取客户端发送的IP报文;

其中,所述负载均衡设备向各客户端提供统一的标准IP地址以及标准端口号,并接收客户端发送的IP报文。

S220、提取所述IP报文中的客户端标识;

所述客户端标识包括客户端IP以及客户端的端口号。

S230、根据所述客户端标识,确定与所述IP报文对应的转发IP地址以及转发端口号;

具体地,根据所述客户端标识,确定与所述IP报文对应的转发IP地址以及转发端口号可以包括:

根据所述客户端标识,以及设定的均衡算法,计算与所述IP报文对应的转发索引;根据所述转发索引,以及预存的负载均衡表,确定与所述IP报文对应的转发IP地址以及转发端口号;其中,所述负载均衡表中存储有至少两个转发索引,以及与各转发索引分别对应的标准IP地址、标准端口号与转发IP地址、转发端口号之间的映射关系。

其中,负载均衡表由实际网络拓扑创建,由多组映射组成,其中一组映射例如可以是:VIP:VPORT<->IP:PORT,VIP是负载均衡设备的标准IP,VPORT是负载均衡设备对外提供服务的标准端口号,IP是应用服务器的转发IP地址,PORT是应用服务器的转发端口号。VIP:VPORT与IP:PORT是一对多的关系。

具体地,所述均衡算法包括:哈希算法、动态轮询算法或者最小连接数算法。具体地,所述均衡算法可以是哈希算法,负载均衡表对应的哈希计算属性可以是0,也可以是1,0是根据客户端的IP计算哈希值,1是由客户端的IP与端口号一起计算哈希值。

S240、在将所述IP报文中的所述标准IP地址以及所述标准端口号替换为所述转发IP地址以及所述转发端口号后,将所述IP报文转发至与所述转发IP地址对应的应用服务器;

S250、接收所述应用服务器返回的与所述IP报文对应的回复报文,并在将所述回复报文中的所述转发IP地址以及所述转发端口号修改为所述标准IP地址以及所述标准端口号后,将所述回复报文转发至所述客户端;

具体地,在将所述IP报文中的所述标准IP地址以及所述标准端口号替换为所述转发IP地址以及所述转发端口号后,还包括:重新计算并修改所述IP报文中的IP地址校验和以及协议校验和;在将所述回复报文中的所述转发IP地址以及所述转发端口号修改为所述标准IP地址以及所述标准端口号后,还包括:重新计算并修改所述回复报文中的IP地址校验和以及协议校验和。

本实施例在上述实施例的基础上,进行改进,通过对所述启用Linux操作系统内置的IP报文过滤机制,在Linux操作系统的过滤驱动层获取客户端发送的IP报文,进一步解释,确定所述负载均衡设备向各客户端提供统一的标准IP地址以及标准端口号,并且对所述根据设定的负载均衡策略,将所述IP报文转发至应用服务器,并将所述应用服务器返回的回复报文转发至所述客户端,进行具体优化,实现了根据设定的负载均衡策略,客户端与应用服务器之间的数据传送,从而实现了利用使用一台配置有Linux操作系统的普通服务器达到负载均衡的效果。

实施例三

图3为本发明实施例三提供的一种数据转发方法的流程图。本实施例在上述实施例的基础上,在本实施例中,在所述在将所述IP报文中的所述标准IP地址以及所述标准端口号替换为所述转发IP地址以及所述转发端口号之后,还包括:查询预存的转发规则集,确定与所述IP报文对应的物理转发端口;相应的,将所述IP报文转发至与所述转发IP地址对应的应用服务器包括:将所述IP报文通过所述物理转发端口转发至与所述转发IP地址对应的应用服务器。

相应的,本实施例的方法包括:

S310、启用Linux操作系统内置的IP报文过滤机制,在Linux操作系统的过滤驱动层获取客户端发送的IP报文;

S320、提取所述IP报文中的客户端标识;

S330、根据所述客户端标识,以及设定的均衡算法,计算与所述IP报文对应的转发索引;

S340、根据所述转发索引,以及预存的负载均衡表,确定与所述IP报文对应的转发IP地址以及转发端口号;

S350、将所述IP报文中的所述标准IP地址以及所述标准端口号替换为所述转发IP地址以及所述转发端口号;

S360、查询预存的转发规则集,确定与所述IP报文对应的物理转发端口;

具体地,所述转发规则集包括:规则字段部分,以及由所述规则字段部分确定的物理转发端口,其中,所述规则字段部分包括下述至少一项:协议类型、标准IP地址、与标准IP地址对应的掩码、转发IP地址、与转发IP地址对应的掩码以及转发端口。

其中,协议类型指TCP(Transmission Control Protocol,传输控制协议)、UDP(User Datagram Protocol,用户数据报协议)以及ICMP(Internet Control Message Protocol,Internet,控制报文协议)等。

S370、将所述IP报文通过所述物理转发端口转发至与所述转发IP地址对应的应用服务器;

进一步包括:将所述IP报文通过所述物理转发端口转发至数据交换机,以使所述IP报文通过所述数据交换机转发至与所述转发IP地址对应的应用服务器,其中,所述负载均衡设备与所述数据交换机相连,所述数据交换机与至少两台应用服务器相连。

S380、接收所述应用服务器返回的与所述IP报文对应的回复报文,并在将所述回复报文中的所述转发IP地址以及所述转发端口号修改为所述标准IP地址以及所述标准端口号后,将所述回复报文转发至所述客户端;

具体地,本实施例中所述数据转发方法由所述负载均衡设备的内核驱动执行,其中,所述负载均衡表与所述转发规则集预先下发于所述内核驱动中,转发通过内核驱动实现,提高了转发性能。

本实施例在上述实施例的基础上,进行了改进,通过增加在所述在将所述IP报文中的所述标准IP地址以及所述标准端口号替换为所述转发IP地址以及所述转发端口号之后,还包括:查询预存的转发规则集,确定与所述IP报文对应的物理转发端口,能够保证物理端口转发的正确性;相应地,将所述IP报文转发至与所述转发IP地址对应的应用服务器包括:将所述IP报文通过所述物理转发端口转发至与所述转发IP地址对应的应用服务器,能够保证与交换机连接的物理端口转发的正确性,确保数据的正确传送。

实施例四

图4为本发明实施例四提供的一种数据转发系统的结构示意图,该系统包括:

负载均衡设备410,数据交换机420,应用服务器430;

所述负载均衡设备安装有Linux操作系统,用于启用Linux操作系统内置的IP报文过滤机制,在Linux操作系统的过滤驱动层获取客户端发送的IP报文,根据设定的负载均衡策略,将所述IP报文转发至应用服务器,并将所述应用服务器返回的回复报文转发至所述客户端;

所述数据交换机,用于接收物理转发端口转发的IP报文,并转发给与转发IP地址对应的应用服务器;

所述应用服务器,用于接收负载均衡设备转发的IP报文,并返回回复报文给负载均衡设备;

其中,负载均衡设备本身没有最大连接数的限制,其最大连接数主要由应用服务器的最大连接数之和决定的,应用服务器越多最大连接数就越大。

所述负载均衡设备与所述数据交换机相连,所述数据交换机与至少两台应用服务器相连。

通过本发明实施例四的一种数据转发系统,以较为低廉的成本实现负载均衡,扩展网站网络吞吐量。

实施例五

本实施例在上述实施例的基础上,提供一种数据转发方法的优选实施例。

假设负载均衡设备的标准端口号为eth0,标准IP地址为123.84.77.122,该IP只为举例,不代表实际网络拥有该IP地址。负载均衡设备转发端口号为eth1,转发IP地址为192.168.5.1,通过交换机与多台应用服务器相连接。

在表1中示出了一种负载均衡表的示例。

表1

负载均衡表哈希计算属性0,即根据客户端的IP地址计算哈希值。计算得到哈希值就是映射表的索引值,根据索引值获取表中的一组映射。如果根据客户端的IP地址计算哈希值为0,就选择表中索引值为0的一组映射,即123.84.77.122:8443<->192.168.5.2:443。

客户端向负载均衡设备123.84.77.122:8443发送的请求报文,报文的转发IP地址和转发端口号替换成192.168.5.2:443,发往相应的应用服务器。负载均衡设备收到应用服务器的回复报文,将报文的转发IP地址和转发端口(192.168.5.2:443)再次替换成123.84.77.122:8443发给客户端。

在表2中示出了一种转发规则集的示例。

表2

如表2所示,有三条规则,关键字protocol指协议类型(TCP、UDP、ICMP),关键字sip指客户端IP地址,关键字smask指客户端IP地址对应的掩码,sport指客户端端口,关键字dip指转发IP地址,关键字dmask指转发IP地址对应的掩码,dport指转发端口,transmit指从哪个物理端口转发。0号规则说明:TCP协议的,客户端IP地址任意,客户端端口任意,转发IP地址为192.168.5.2,转发端口为443的报文从eth1转发出去。1、2号规则类似。

图5为一种驱动实现架构图。

Linux内核中启动并注册IP过滤驱动,配置程序把负载均衡表和转发规则集下发给IP过滤驱动。

图6是一种过滤驱动模块图。

过滤驱动由配置模块、外网转内网模块、内网转外网模块、负载均衡表和转发规则集组成。配置模块负责接收配置应用程序下发的负载均衡表和转发规则集,并更新驱动自身的负载均衡表和转发规则集。

外网转内网模块,实现客户端访问负载均衡设备123.84.77.122:8443的报文转向应用服务器。假如客户端IP地址123.88.56.92,端口62586向负载均衡设备123.84.77.122:8443通信,外网转内网模块收到此报文,根据客户端的IP地址(123.88.56.92转16进制数为7b58385c)计算哈希值为2,就选择负载均衡表中索引值为2的一组映射,即123.84.77.122:8443<->192.168.5.4:443,报文的转发IP地址和转发端口替换成192.168.5.4:443,替换后需对IP地址校验和与TCP协议校验和的重新计算。再查转发规则,得到转发的物理端口eth1,从该物理端口发出。

内网转外网模块,内网转外网模块收到回应报文,此时源IP 192.168.5.4,源端口443,目的IP 123.88.56.92,目的端口62586,查负载均衡表用123.84.77.122:8443对源IP和源端口(192.168.5.4:443)进行替换。替换后需对IP 地址校验和与TCP协议校验和的重新计算。报文再次发给客户端。

从客户端角度,客户端123.88.56.92:62586与负载均衡设备123.84.77.122:8443通信。负载均衡设备采用的负载均衡的策略对客户端是透明的。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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