使用 libbpf 编写 BPF 应用程序进阶技巧

程序框架(skeleton) 合并 open 和 loader 阶段 选择性附着 (attach) 自定义 load 和 attach 同一事件的多 BPF 处理程序 Map 减少预分配(pre-allocation)开销 运行时确定 map 大小 Per-CPU 全局变量 注意直接通过指针访问字段 结论 本文地址:https://www.ebpf.top/post/top_and……

阅读全文

BPF 程序与信号交互大揭秘

本文地址 : https://www.ebpf.top/post/how-ebpf-interacts-signals 原文:Signaling from within: how eBPF interacts with signals 1. 背景 2. 动机 3. 场景:拦截 openat(2) 4. 内核如何处理 SIGKILL 信号? 5. 什么信号要后置处理 6. 通过 BPF程序触发 SIGKILL 7. 自愿信号检查 8. open & write 操作竞争(Racing) 9. 其他影响 10. 结论 本文探讨了 eBPF 程序生成的 UNIX 信号的一些语义。 1. 背景 信号自 1971 年 UNIX 第一版问世以来就一直……

阅读全文

LSM BPF 实践

本文地址:https://www.ebpf.top/post/lsm_bpf_intro 1. 安全背景知识 2. 内核安全策略模块通用框架 LSM 2.1 LSM 框架介绍 2.2 LSM 架构 2.3 LSM 中的钩子函数 3. LSM BPF 3.1 BCC 实践 3.2 libbpf-bootstrap 框架实践 4. 总结 5. 附录:LSM 热修内核漏洞查找 hook 点过程 1. 安全背景知识 国际上对计算机安全概括了三个特……

阅读全文

Cisco 将收购 Cilium 母公司 Isovalent,预计 2024 年第 3 季度完成

本文地址:https://www.ebpf.top/post/cisco_and_isovalent 2023 年 12 月 21 日,Isovalent 公司 CTO & 联合创始人 Thomas Graf 和 Cisco 安全业务集团高级副总裁兼总经理 Tom Gillis 分别在各自公司网站公布了思科打算收购 Isovalent 公司的计划,双方都没有公布收购的价格。收购完成后,……

阅读全文

什么等等? I/O Wait ≠ I/O 瓶颈?

本文地址:https://www.ebpf.top/post/cpu_io_wait 1. I/O Wait 定义 2. 测试验证 3. 进一步明确磁盘吞吐和读写频繁进程 4. 内核 CPU 统计实现分析 5. 总结 参考资料 1. I/O Wait 定义 I/O Wait 是针对单个 CPU 的性能指标,表示当 CPU 分发队列(在睡眠态)里有线程被阻塞在磁盘 I/O 上时消耗的空闲时间。……

阅读全文

eBPF 进阶: 内核新特性进展一览

本文地址:https://www.ebpf.top/post/ebpf_and_kernel_feature BPF kfuncs Bloom Filter Map:5.16 Compile Once – Run Everywhere:Linux 5.17 [内核空间] bpf_loop() 辅助函数:5.17 BPF_LINK_TYPE_KPROBE_MULTI:5.18 动态指针和类……

阅读全文

BPF 通用迭代器机制

本文地址:https://www.ebpf.top/post/generic_iterators_for_bpf 通常,要装载到内核的 BPF 程序是用 C 语言编写的,但是这些程序运行的环境与 C 环境有明显的不同。BPF 虚拟机和相关的验证器为了使 BPF 代码安全运行,进行了越来越多的检查。BPF 的迭……

阅读全文

使用 XDP 实现负载均衡器实战

本文地址:https://www.ebpf.top/post/xdp_lb_demo 本文作者:邱康 创建网络环境 SLB 集群路由 NAT模式 负载均衡算法 SLB 路由伪代码 随着 eBPF 的发展,我们已经可以将 eBPF/XDP 程序直接部署在普通服务器上来实现负载均衡,从而节省掉用于专门部署 LVS 的机器。 前文 分享了如何使用 xdp/ebpf 替……

阅读全文

BTF:实践指南

本文地址:https://www.ebpf.top/post/btf-bpf-type-format 1. BPF 的常见限制 1.1 调试限制 1.2 可移植性 2. BTF 是什么? 3. BTF 快速入门 3.1 BPF 快速入门 3.1 BTF 和 CO-RE 4. 结论 BPF 是 Linux 内核中基于寄存器的虚拟机,可安全、高效和事件驱动的方式执行加载至内核的字节码。与内核模块不……

阅读全文

【译】2023 年 6 个值得关注的 eBPF 趋势

本文地址:https://www.ebpf.top/post/six-bpf-trends-for-2023 1. 前言 2. 2023 年 6 个 eBPF 趋势展望 2.1 用 eBPF 网络跟踪进行高性能的 HTTP 监测 2.2 网络功能进阶和 sidecar 优化 2.3 安全和恶意软件检测 2.4. 云的应用,事实上是超大规模的 2.5. 更深入的电信公司应用 2.6 BumbleBee 为更多的 eBPF 程序铺……

阅读全文