The invention discloses a load balancing method based on NAT in DPDK environment, which is realized by using a dispatcher including DPDK module and NAT module, including steps: initializing DPDK module and NAT module, obtaining the receiving and receiving queue port, NAT rule table and state record table; recording the source IP and address of receiving data packet by DPDK module, calculating the hash value corresponding to source IP and address; Find the NAT rule table according to the hash value, judge whether there is server IP and port information corresponding to the hash value obtained in the NAT rule table. If there is any, replace the source IP and address to realize data transmission. Otherwise, find the maximum residual load server in the status record table, send the data packet to the maximum residual load server, and record the maximum residual load server and the guest. The communication information of the client is transferred to the NAT rule table and the NAT rule table is updated; the invention can improve the applicability of the scheduler to large-scale traffic, has good expansibility, and is beneficial to the load balance of the server.
【技术实现步骤摘要】
一种DPDK环境下基于NAT的负载均衡方法
本专利技术属于网络通信领域,具体涉及一种DPDK(DataPlaneDevelopmentKit,数据平面开发套件)环境下基于NAT(NetworkAddressTranslation,网络地址转换)的负载均衡方法。
技术介绍
现如今随着计算机用户的爆炸式的增长,网络流量也变得越来越大,对于服务器的负载能力也提出了更大的挑战。就目前而言即使性能最好的单台服务器也无法承受现如今的大流量的请求。所以利用集群的思想来实现负载均衡就显得格为的重要。对于传统的基于NAT的负载均衡来说,其部署在传统的TCP/IP协议栈上,系统频繁的中断,上下文的不停调度无疑占用了其大量的时间。因而对于传统的利用NAT实现负载均衡来说,调度器本身已经成为其负载均衡的瓶颈。由于调度器的性能问题,一般情况下来说能对10台左右的服务器进行调度,这对于绝大部分情况下已经可以适用,但对于网络流量日渐爆炸的今天,尤其是DDOS技术的日渐成熟,攻击流量上百GB/S级别已经不是问题。在这种背景下传统基于NAT实现的负载均衡显然是胜任不了这份工作,因此寻找能抵抗更大规模流量的负载均衡技术已经亟不可待。在传统的NAT做负载均衡情况下,对于外部的请求,调度器截获到后一般采用轮询的方法,在地址池中随机找出一个内部服务器的地址将目的地址替换掉,源地址保持不变。再将其发往内部服务器去处理。而对于内部与外部的通信刚好是一个相反的过程,调度器将服务器传过来的数据包的源地址替换为调度器拥有的全局地址,目的地址不变,将其发送出去。显然传统下NAT做负载均衡的优点是服务器可以运行 ...
【技术保护点】
1.一种DPDK环境下基于NAT的负载均衡方法,其特征在于,所述方法运用包括DPDK模块和NAT模块的调度器实现,具体包括步骤:S1、初始化所述DPDK模块和NAT模块,配置完成所述调度器的收发队列及对应的端口,并设置好对应的NAT规则表和状态记录表;S2、使用DPDK模块记录所述调度器接收到数据包的源目IP和端口,基于所述源目IP和端口进行哈希计算得到所述数据包的哈希值;S3、根据所述哈希值遍历所述NAT规则表,查询所述NAT规则表中是否存在对应所述哈希值的内部服务器的IP和端口信息;若存在,则基于所述NAT规则表对所述源目IP进行替换,并将所述数据包发送给对应服务器,否则,执行步骤S4;S4、若所述NAT中不存在对应所述哈希值的内部服务器的IP和端口信息,则寻找所述状态记录表中负载剩余最大服务器,并将所述数据包发送至所述负载剩余最大服务器,并记录所述负载剩余最大服务器与客户端的通信信息至所述NAT规则表并更新所述NAT规则表。
【技术特征摘要】
1.一种DPDK环境下基于NAT的负载均衡方法,其特征在于,所述方法运用包括DPDK模块和NAT模块的调度器实现,具体包括步骤:S1、初始化所述DPDK模块和NAT模块,配置完成所述调度器的收发队列及对应的端口,并设置好对应的NAT规则表和状态记录表;S2、使用DPDK模块记录所述调度器接收到数据包的源目IP和端口,基于所述源目IP和端口进行哈希计算得到所述数据包的哈希值;S3、根据所述哈希值遍历所述NAT规则表,查询所述NAT规则表中是否存在对应所述哈希值的内部服务器的IP和端口信息;若存在,则基于所述NAT规则表对所述源目IP进行替换,并将所述数据包发送给对应服务器,否则,执行步骤S4;S4、若所述NAT中不存在对应所述哈希值的内部服务器的IP和端口信息,则寻找所述状态记录表中负载剩余最大服务器,并将所述数据包发送至所述负载剩余最大服务器,并记录所述负载剩...
【专利技术属性】
技术研发人员:李鹏,徐壮,王汝传,徐鹤,朱枫,程海涛,李超飞,
申请(专利权)人:南京邮电大学,江苏省精创电气股份有限公司,
类型:发明
国别省市:江苏,32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。