一文入门eBPF

1. BPF的前世今生

bpf全称伯克利包过滤器(Berkeley Packet Filte),bpf技术诞生于1992年,早期主要用来提升对数据包的过滤性能,但是早期的bpf提供的指令较少,限制了它的应用范围。本文要介绍的ebpf是bpf的扩展版本,相比早期版本的bpf功能变得更加强大,自2014年引入内核以来,BPF现在已经成发展成内核中一个通用的引擎,通过相关API我们可以方便的读取到内核态的内存内容,也能够通过BPF改写运行时内存,具有强大的编程能力。毫不夸张的说,BPF技术就是内核中的脚本语言。

BPF的应用场景

BPF的应用场景非常广泛,总结下来主要有下面几大领域。

性能分析: BPF提供了对内核和应用程序极高的观察能力,通过编程可以实现比较丰富的统计功能,极高性能,能够避免对观测程序产生影响。

提高程序的观测性: 通过BPF技术,可以在函数调用的不同阶段进行插桩监控,能够观测运行时的程序内存,

通过提高程序的观测性,方便我们定位低概率复现的bug。

安全 : bpf技术能够观测系统系统调用,感知哪些进程在运行,哪些文件被改写,面对0day漏洞,也能够快速的编写出对应的检测程序。

除了上面列出的几个大的方向。K8s已经通过BPF技术来提高容器的网络安全性能和丰富的监控排错能力。甚至提供了基于Cilium的负载均衡能力。(k8s中用的是Cilium框架)

BPF的基本原理:

本站文章资源均来源自网络,除非特别声明,否则均不代表站方观点,并仅供查阅,不作为任何参考依据!
如有侵权请及时跟我们联系,本站将及时删除!
如遇版权问题,请查看 本站版权声明
THE END
分享
二维码
海报
一文入门eBPF
bpf全称伯克利包过滤器(Berkeley Packet Filte),bpf技术诞生于1992年,早期主要用来提升对数据包的过滤性能,但是早期的bpf提供的指...
<<上一篇
下一篇>>