System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于ebpf的高性能NAT模式负载均衡装置制造方法及图纸_技高网

一种基于ebpf的高性能NAT模式负载均衡装置制造方法及图纸

技术编号:40580866 阅读:5 留言:0更新日期:2024-03-06 17:24
本发明专利技术公开的基于ebpf的高性能NAT模式负载均衡装置,包括NAT模式负载均衡流表学习模块和XDP报文转发加速模块;所述NAT模式负载均衡流表学习模块部署在tcp/ip协议栈的Netfilter模块内,对每个新增负载均衡连接生成请求流和响应流两条加速条目并保存到ebpf转发表maps;所述XDP报文转发加速模块部署在网卡驱动收包点,用于提取网卡报文五元组信息,查询所述ebpf转发表maps,如果五元组信息命中,根据ebpf转发表maps修改报文五元组信息,重定向到网卡发送,如果五元组信息没有命中,上送到协议栈进行标准内核处理。本发明专利技术将流的控制面逻辑和转发面逻辑分离,提升了NAT负载均衡器的转发性能和转发延时。

【技术实现步骤摘要】

本专利技术涉及计算机网络,具体涉及一种基于ebpf的高性能nat模式负载均衡装置。


技术介绍

1、在一个业务系统中,负载均衡是必不可少的一个组件,可以提高业务系统性能、可用性和可伸缩性,同时降低系统的风险和维护复杂性。ipvs(ip virtual server)是一种用于负载均衡的开源软件解决方案,特别适用于linux环境,受众多开源和商业软件选择,ipvs提供了nat(network address translation)模式、直接路由(direct routing)模式和隧道路由(tunneling)模式,以适应不同的网络架构和需求。其中nat模式因为部署组网简单、对后端服务器和中间网络设备依赖少等优点,成为小型业务系统组网首选模式。但nat模式上下行流量都走负载均衡设备,受linux协议栈转发性能瓶颈,在处理高吞吐量和低延迟要求的情况下可能会有性能方面的限制,大流量场景下,会增加明显的延时,且单机很难达到10gbps以上转发带宽。

2、随着数字化信息的急剧增加,互联网流量也大幅增长。视频、音频、图像和其他大数据类型的内容不断传输,使网络面临巨大的数据包处理压力。负载均衡设备作为业务访问中的中间设备,具备高吞吐低延时可以很好的提升用户体验。

3、传统的软件负载均衡设备基于linux内核协议栈实现,但内核协议栈在数据包转发时可能会表现出较慢的性能,这主要是因为内核协议栈是设计用于通用计算机网络环境,而不是专门为高性能数据包处理而优化的。以下是一些导致内核协议栈转发较慢的原因:

4、中断处理:内核协议栈通常使用中断来通知数据包到达,并采用轮询或中断处理程序来处理这些数据包,高负载情况下,中断处理会引入一定的开销。

5、数据包复制:内核通常需要将数据包的内容从网络接口的接收缓冲区复制到内核内存,再从内核内存复制到目标套接字缓冲区(如果数据包需要传递给用户空间)。这些复制操作会导致额外的内存带宽和cpu开销。

6、复杂的路由表查找:内核必须执行复杂的路由表查找操作以确定数据包的下一跳和出口接口。这种查找可能涉及多个路由表、acl(访问控制列表)和策略路由规则。这些查找操作可能很耗时。

7、防火墙和安全性检查:内核协议栈通常包括防火墙和安全性检查功能,这些功能可以显著影响数据包处理的性能,因为它们要求深度检查和决策。

8、为了解决内核协议栈转发慢问题,一般通过bypass内核方式,其中dpdk(dataplane development kit)是一套运行在用户空间的函数库和驱动组成,为数据平面提供高性能的数据收发和处理。虽然dpdk功能强大,但需要用户实现路由表、邻居协议、nat功能,增加了开发成本,并且破坏了操作系统内核提供的安全性,消耗一个或多个cpu专门处理网络包,需要特殊的硬件支持。同时存在如下缺点:很难和现有系统集成,上层应用必须要将内核中已经非常成熟的模块在用户态重新实现一遍,比如路由表,连接跟踪,高层协议栈等;无法细粒度实现具体业务转发加速,dpdk是将网卡所有报文bypass内核,会影响机器上其他服务,其他上层应用要么改造适配dpdk,要么需要dpdk将报文重新发送到内核协议栈进行处理。

9、公开号为cn102255932a提供的负载均衡方法和负载均衡器,由于nat负载均衡器上下行流量都经过负载均衡器,导致相同cpu配置转发性能不高,转发延迟高。公开号为cn115550366a提供了一种负载均衡方法、设备、存储介质,无法支持4层nat模式负载均衡,只支持hash负载算法,而本专利技术将负载均衡控制面由ipvs实现,ebpf只负责学习转发表和快速转发,可以和已有实现负载均衡模块结合,无需更改原负载均衡实现,收发包网卡只能是一个网卡。公开号为cn115941605提供基于ebpf技术实现透明代理的方法和系统,针对7层负载均衡装置,无法运用到4层负载均衡装置中,需要在后端服务器部署,而ebpf技术需要在高版本内核,而后端服务器不一定支持。

10、现有专利在负载均衡均有所尝试,但在提高转发性能上均有所不足。且经过nat负载均衡器的报文五元组会发生改变,导致无法使用ebpf(extended berkeley packetfilter)直接转发,而一般ebpf负载均衡实现只能支持直接路由模式和隧道模式。


技术实现思路

1、专利技术目的:本专利技术目的在于针对现有技术的不足,提供一种基于ebpf的高性能nat模式负载均衡装置,保留了nat负载均衡器的负载逻辑,采用ebpf技术,通过在内核学习每条新建请求经过ipvs nat模式负载均衡后的五元组信息,后续报文参考nat负载均衡器变化逻辑改包后快速转发,将流的控制面逻辑和转发面逻辑分离,提升了nat负载均衡器的转发性能和转发延时。

2、技术方案:本专利技术所述基于ebpf的高性能nat模式负载均衡装置,包括nat模式负载均衡流表学习模块和xdp报文转发加速模块;所述nat模式负载均衡流表学习模块部署在内核协议栈的netfilter模块内,对每个新增负载均衡连接生成请求流和响应流两条加速条目并保存到ebpf转发表maps;所述xdp报文转发加速模块部署在网卡驱动收包点,用于提取网卡报文五元组信息,查询所述ebpf转发表maps,如果五元组信息命中,根据ebpf转发表maps修改报文五元组信息,重定向到网卡发送,如果五元组信息没有命中,上送到内核协议栈按照标准内核处理。

3、进一步完善上述技术方案,所述nat模式负载均衡流表学习模块中,通过ebpfkprobe技术hook内核协议栈中netfilter模块中的连接跟踪子模块的__nf_conntrack_hash_insert函数,生成转发表maps,保存转发条目1{key:orig_五元组,value:replay_五元组},转发条目2{key:reply_五元组,value:origin_五元组},其中:orig_五元组是指原始的报文的五元组信息,replay_五元组是指转换后的报文的五元组信息,这两条转发表条目分别对应请求流和响应流。

4、进一步地,所述xdp报文转发加速模块通过xdp技术处理收到的报文,判断目的端口是否为负载均衡服务端口的情况下,根据nat模式负载均衡流表学习模块的转发表maps,修改报文五元组信息,重定向到出口网卡或上送到内核协议栈进行标准内核处理。

5、进一步地,所述的xdp报文转发加速模块根据ebpf转发表maps修改报文五元组信息后,通过修改ip层和tcp/udp层checksum,重定向到网卡发送。

6、采用基于ebpf的高性能nat模式负载均衡装置进行负载均衡方法,包括以下步骤:

7、s101:在内核协议栈的netfilter模块中,使用ebpf kprobe技术hook连接跟踪子模块的__nf_conntrack_hash_insert函数,该函数用于在ipvs模块和nat模块之后,对每个新建立的负载均衡连接进行连接跟本文档来自技高网...

【技术保护点】

1.一种基于ebpf的高性能NAT模式负载均衡装置,其特征在于:包括NAT模式负载均衡流表学习模块和XDP报文转发加速模块;所述NAT模式负载均衡流表学习模块部署在内核协议栈的Netfilter模块内,对每个新增负载均衡连接生成请求流和响应流两条加速条目并保存到ebpf转发表maps;所述XDP报文转发加速模块部署在网卡驱动收包点,用于提取网卡报文五元组信息,查询所述ebpf转发表maps,如果五元组信息命中,根据ebpf转发表maps修改报文五元组信息,重定向到网卡发送,如果五元组信息没有命中,上送到内核协议栈按照标准内核处理。

2.根据权利要求1所述的基于ebpf的高性能NAT模式负载均衡装置,其特征在于:所述NAT模式负载均衡流表学习模块中,通过ebpf kprobe技术hook内核协议栈中netfilter模块中的连接跟踪子模块的__nf_conntrack_hash_insert函数,生成转发表maps,保存转发条目1{key:orig_五元组,value:replay_五元组},转发条目2{key:reply_五元组,value:origin_五元组},其中:orig_五元组是指原始的报文的五元组信息,replay_五元组是指转换后的报文的五元组信息,这两条转发表条目分别对应请求流和响应流。

3.根据权利要求1所述的基于ebpf的高性能NAT模式负载均衡装置,其特征在于:所述XDP报文转发加速模块通过XDP技术处理收到的报文,判断目的端口是否为负载均衡服务端口的情况下,根据NAT模式负载均衡流表学习模块的转发表maps,修改报文五元组信息,重定向到出口网卡或上送到内核协议栈进行标准内核处理。

4.根据权利要求1所述的基于ebpf的高性能NAT模式负载均衡装置,其特征在于:所述的XDP报文转发加速模块根据ebpf转发表maps修改报文五元组信息后,通过修改ip层和tcp/udp层checksum,重定向到网卡发送。

5.根据权利要求1所述基于ebpf的高性能NAT模式负载均衡装置,其特征在于:所述负载均衡装置进行基于ebpf的NAT模式负载均衡方法,包括以下步骤:

6.根据权利要求5所述的基于ebpf的高性能NAT模式负载均衡装置,其特征在于:所述出向报文的五元组信息是经过IPVS模块和NAT模块根据负载均衡算法选择的realServer的IP和端口。

7.采用权利要求5所述的基于ebpf的高性能NAT模式负载均衡装置,其特征在于,所述负载均衡装置进行收发报文包括如下步骤:

...

【技术特征摘要】

1.一种基于ebpf的高性能nat模式负载均衡装置,其特征在于:包括nat模式负载均衡流表学习模块和xdp报文转发加速模块;所述nat模式负载均衡流表学习模块部署在内核协议栈的netfilter模块内,对每个新增负载均衡连接生成请求流和响应流两条加速条目并保存到ebpf转发表maps;所述xdp报文转发加速模块部署在网卡驱动收包点,用于提取网卡报文五元组信息,查询所述ebpf转发表maps,如果五元组信息命中,根据ebpf转发表maps修改报文五元组信息,重定向到网卡发送,如果五元组信息没有命中,上送到内核协议栈按照标准内核处理。

2.根据权利要求1所述的基于ebpf的高性能nat模式负载均衡装置,其特征在于:所述nat模式负载均衡流表学习模块中,通过ebpf kprobe技术hook内核协议栈中netfilter模块中的连接跟踪子模块的__nf_conntrack_hash_insert函数,生成转发表maps,保存转发条目1{key:orig_五元组,value:replay_五元组},转发条目2{key:reply_五元组,value:origin_五元组},其中:orig_五元组是指原始的报文的五元组信息,replay_五元组是指转换后的报文的五元组信息,这两...

【专利技术属性】
技术研发人员:闻权秦益飞杨正权尹烁
申请(专利权)人:江苏易安联网络技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1