新增六大功能解析!eBPF 技术实践白皮书第二版正式发布(附下载链接)

简介: 揭秘eBPF最新技术进展。

自去年龙蜥社区发布 eBPF 技术实践白皮书以来,得到了广大读者的高度评价。这一年,eBPF 技术发展也取得了重要进展,不管是 Linux 内核社区关于 eBPF 调度器的讨论,还是 Elastic 发布其多语言 Continues Profiling 的统一方案,eBPF 的应用也越来越广泛了。龙蜥社区也根据这一年的实际 eBPF 项目开发经验进行了总结,历经数月完成了白皮书第二版的整理工作,并于 2024 云栖大会操作系统开源专场发布了《eBPF 技术实践白皮书(第二版)》,该白皮书梳理了 eBPF 的架构和重要技术原理,接着分析了 eBPF 在多种典型应用场景的使用方案,并进一步对 eBPF 技术的发展趋势做了探讨。

eBPF 技术实践白皮书是由龙蜥社区组织编写,阿里云、浪潮信息、浪潮数据、东南大学等多位老师、专家共同参与贡献的。2023 年发布的《eBPF 技术实践白皮书》内容主要包括 eBPF 指令架构和开发流程、基于 eBPF 的系统诊断实践、IO 和网络的性能优化等内容。本次云栖大会发布的第二版,新增了六大内容,包括基于 eBPF 的软件网络功能库、TCP 网络监控、持续剖析(Continues Profiling)能力,以及容器安全、网络流量镜像、网络访问控制。下面我们来分别介绍一下这六大功能:

  • 软件网络功能库是基于 eBPF 的 kfunc 和 kptr 技术实现的,通过抽象并实现性能受限的/无法实现的公共功能到 eNetSTL 中,实现在不修改 eBPF 基础架构(例如指令集)的前提下,对常见的交换机、路由器、负载均衡、防火墙等功能通过 eBPF 的接口调用进行加速。目前从无到有实现了基于跳表的 K-V 存储功能,在 sketch 和 switch 场景下使用 SIMD 加速,使得性能提升从 27.4% 到 47.9% 不等。

  • TCP 网络监控功能,传统的做法一般是通过系统工具获取网络接口流量、连接状态信息,无法分析一个链接的请求与响应过程及传输时间。TCP-RT 通过在内核 TCP 协议栈中相应的位置设置 eBPF 的 hook 点,可以在单个连接上只有一个并发请求与响应的场景下识别出请求与响应,例如:HTTP/1.1 协议的 Web服务、MySQL 数据库服务、Redis 服务等,进而获取请求在协议栈中接收的时间及服务进程处理过程中的耗时等数据信息。TCP-RT 还支持在内核系统中做统计分析,定期输出指定连接的统计信息。

  • Continues Profiling 持续剖析是近几年云原生可观测性很重要的技术,通过 eBPF 技术能做到持续的非侵入方式进行数据的采集,支持对 Java、python、Luajit 等高级语言进行符号解析,也支持对 C、C++、Golang、Rust 等 Native 语言的应用进行推栈,由于它可以动态进行安装和卸载程序,持续对当前运行的 CPU 热点进行采样分析,不需要重启进程或事先编译埋点,相比传统的 APM 插桩方式带来显著的易用性、安全性,因此它极有可能成为继可观测性的 Trace、Log、Metric 之后的第四大支柱。持续剖析功能基于eBPF 可以分析用户态和内核态的栈,对不同语言的应用统一采用一套架构进行采样和分析,通过火焰图、调用图表的方式进行热点的展现。

  • 基于 eBPF 的容器安全技术聚焦于容器运行时安全检测与防御。将 eBPF 程序挂载至宿主机内核,监控所有容器进程、文件、网络行为,结合容器入侵、逃逸等恶意行为特征,识别并拦截异常操作。

  • 基于 eBPF 实现流量镜像,在内核态实现原始数据的复制并转发至指定网卡实现实时流量安全审计、风险检测、业务分析等,相较于传统实现方式具有成本更低、灵活性高、安全性高等优势。

  • 基于 eBPF 实现网络访问控制,在 XDP 和 TC 挂载点加载特定程序,使访问控制规则在整个网络链路中比较靠前的位置生效,缩短了网络包处理路径,整体性能可提升 20% 以上。

欢迎大家加入钉钉交流群,与我们沟通交流:


白皮书下载链接https://openanolis.cn/assets/static/eBPF_technical_practice_v2.pdf

相关文章
|
7天前
|
存储 缓存 安全
Java内存模型深度解析:从理论到实践####
【10月更文挑战第21天】 本文深入探讨了Java内存模型(JMM)的核心概念与底层机制,通过剖析其设计原理、内存可见性问题及其解决方案,结合具体代码示例,帮助读者构建对JMM的全面理解。不同于传统的摘要概述,我们将直接以故事化手法引入,让读者在轻松的情境中领略JMM的精髓。 ####
24 6
|
15天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
56 3
|
15天前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
49 2
|
5天前
|
存储 供应链 算法
深入解析区块链技术的核心原理与应用前景
深入解析区块链技术的核心原理与应用前景
21 0
|
6天前
|
机器学习/深度学习 人工智能 自然语言处理
探索深度学习与自然语言处理的前沿技术:Transformer模型的深度解析
探索深度学习与自然语言处理的前沿技术:Transformer模型的深度解析
24 0
|
15天前
|
存储 供应链 物联网
深入解析区块链技术的核心原理与应用前景
深入解析区块链技术的核心原理与应用前景
|
15天前
|
存储 供应链 安全
深度解析区块链技术的核心原理与应用前景
深度解析区块链技术的核心原理与应用前景
24 0
|
15天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
45 2
|
2月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
70 0
|
2月前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
57 0