网络报文分析利器eBPF简介
所属分类 BPF
浏览量 612
BPF(Berkeley Packet Filter )
1992 伯克利实验室的一篇论文 The BSD Packet Filter: A New Architecture for User-level Packet Capture
这篇论文描述了,BPF 是如何更加高效灵活地从操作系统内核中抓取网络数据包的
Wireshark 和 tcmdump 依赖libpcap库,libpcap库使用 BPF 技术
linux kernle从2.1版本开始支持BPF功能,
在 BPF 实现的基础上,Linux 在 2014 年内核 3.18 版本上实现了 eBPF
eBPF 是 BPF 的增强
eBPF extended Berkeley Packet Filter
对虚拟机做了增强,扩展了寄存器和指令集的定义,提高了虚拟机的性能,可以处理更加复杂的程序
增加了 eBPF maps,这是一种存储类型,可以保存状态信息,从一个 BPF 事件的处理函数传递给另一个,或者保存一些统计信息,从内核态传递给用户态程序。
eBPF在内核中支持JIT即时编译,机器指令和寄存器可以一一对应
增加了Verifier验证器,以保证在内核中执行的字节码是安全的
eBPF 主要应用领域
安全,网络,负载均衡,故障分析,追踪等
云原生领域,Cilium 使用 eBPF 实现了无 kube-proxy 的容器网络
利用eBPF解决iptables带来的性能问题
网络领域,内核态网络包的快速处理和转发,XDP eXpress Data Path
安全领域,通过LSM(Linux Security Module)的 hook 点
eBPF 可以对 Linux 内核做安全监控和访问控制,可参考KRSI(Kernel Runtime Security Instrumentation)的文档
wireshark 抓包
tcpdump使用简介
上一篇
下一篇
fateboard 源码笔记
wireshark 抓包
fate flow 命令行 请求 抓包分析
python3-001 基础语法
python3-002 基本数据类型
python3-003 条件和循环