基于eBPF技术实现透明代理的方法和系统技术方案

技术编号:37249662 阅读:27 留言:0更新日期:2023-04-20 23:28
本申请涉及一种基于eBPF技术实现透明代理的方法和系统,该方法包括:负载均衡器在与服务器通过隧道进行通信的过程中,负载均衡器的隧道网卡基于eBPF技术将来自客户端的数据包进行封装,所封装的数据包包括隧道外层地址信息和隧道内层地址信息,其中,隧道内层地址信息的源地址为客户端的地址信息,目的地址为服务器的地址信息,隧道外层地址信息源地址为负载均衡器的地址信息,目的地址为服务器的地址信息;通过隧道将所封装的数据包发送至服务器。根据本申请的方案,负载均衡器和服务器中均内置eBPF程序,通过eBPF程序实现隧道的自定义封包解包,并且,通过eBPF程序实现存储追踪连接状态,在实现透明转发功能的同时避免因连接规模效应带来的性能下降。接规模效应带来的性能下降。接规模效应带来的性能下降。

【技术实现步骤摘要】
基于eBPF技术实现透明代理的方法和系统


[0001]本申请涉及计算机
,尤其涉及一种基于eBPF技术实现透明代理的方法和系统。

技术介绍

[0002]在现代计算机系统中,负载均衡用于将单一的高负载任务通过一定的算法分散成多个低负载的任务交由多个相对低性能处理单元处理,最后将处理结果返回请求方。采用负载均衡的系统可以较小的代价实现系统的热横向扩容,同时减小单点故障带来的影响面,是现代计算机网络架构实现高可用、弹性扩所容极的基石,是几乎所有现代网络架构均必备的重要基础组件。
[0003]负载均衡典型的应用场景如图1所示,大量客户端向服务端发来请求,负载均衡器将这些大量请求分散到多个后端服务器上进行处理。
[0004]网络层负载均衡分为两类,第一类为只做包转发,不做TCP(Transmission Control Protocol,传输控制协议)终结,即本质上,TCP连接实际是客户端直接跟服务端建立的;第二类为TCP终结,即客户端与负载均衡先建立连接,同时负载均衡与服务器建立连接。在第一类情况下,因服务器回复包无需经过负载均衡本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于eBPF技术实现透明代理的方法,应用于负载均衡器,所述方法包括:在与服务器通过隧道进行通信的过程中,所述负载均衡器的隧道网卡基于eBPF技术将来自客户端的数据包进行封装,所封装的数据包包括隧道外层地址信息和隧道内层地址信息,其中,所述隧道内层地址信息的源地址为所述客户端的地址信息,目的地址为所述服务器的地址信息,所述隧道外层地址信息源地址为所述负载均衡器的地址信息,目的地址为所述服务器的地址信息;通过所述隧道将所封装的数据包发送至所述服务器。2.如权利要求1所述的方法,还包括:将收到的数据包中来自所述客户端的数据包进行标记;根据所述负载均衡器操作系统内核中的路由表,将标记的数据包转发到所述隧道网卡;或者通过所述负载均衡器的主网卡将标记的数据包转发到所述隧道网卡。3.如权利要求1或2任一者所述的方法,其中,所述隧道包括GRE、IPIP、VxLAN或Geneve隧道,所述隧道外层地址信息和隧道内层地址信息均包括IP地址信息或者IP地址信息与端口信息。4.一种基于eBPF技术实现透明代理的方法,应用于服务器,所述方法包括:在通过隧道收到来自负载均衡器的数据包的情况下,基于eBPF技术将所述数据包携带的地址信息保存在预定的存储区域中,其中,所保存的地址信息包括客户端的地址信息和所述负载均衡器的地址信息;对所述数据包进行处理,以获得响应数据包;将所述响应数据包转发到所述服务器的隧道网卡;所述服务器的隧道网卡根据所述预定的存储区域,基于eBPF技术将所卷号:220895CI述响应数据包进行封装,其中,所封装的响应数据包包括隧道外层地址信息和隧道内层地址信息,其中,所述隧道内层地址信息的源地址为所述服务器的地址信息,目的地址为所述客户端的地址信息,所述隧道外层地址信息源地址为所述服务器的地址信息,目的地址为所述负载均衡器的地址信息;通过所述隧道将所封装的响应数据包发送至所述负载均衡器...

【专利技术属性】
技术研发人员:郑俊浩
申请(专利权)人:杭州涂鸦信息技术有限公司
类型:发明
国别省市:

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

1