首届eBPF.io Summit 2020见闻
首届eBPF技术线上大会圆满结束,一起来看有哪些精彩内容。
The truth is out there
首届eBPF技术线上大会圆满结束,一起来看有哪些精彩内容。
下文是本人最近在Dockone社区做的一次关于BPF技术的学习分享。
本篇文章从源码级别学习BPF Map使用场景和工作原理,祝大家阅读愉快。
社区的大佬们为学习BPF的同学们准备了福利 ,Linux内核源码里包含了大量的BPF示例代码,几乎覆盖了所有种类的BPF程序,非常适合学习者阅读和测试。今天为大家介绍如何编译运行这些BPF示例代码。
当停止了上篇文章实验中的XDP ingress hook,只保留TC egress hook时,使用命令curl localhost也是无法访问Nginx容器服务的?这是为什么呢
TC全称「Traffic Control」,直译过来是「流量控制」,在这个领域,你可能更熟悉的是Linux iptables或者netfilter,它们都能做packet mangling,而TC更专注于packet scheduler,所谓的网络包调度器,调度网络包的延迟、丢失、传输顺序和速度控制。
XDP全称为eXpress Data Path,是Linux内核网络栈的最底层。它只存在于RX路径上,允许在网络设备驱动内部网络堆栈中数据来源最早的地方进行数据包处理,在特定模式下可以在操作系统分配内存(skb)之前就已经完成处理。
从某种意义上说,XDP是对BPF最初目的的回归:选择网络数据包,接受或拒绝。不过,现在的这个情况,是让这种选择发生在最早的时间点。
eBPF最大的挑战之一是编写程序需要编译并从内核源代码链接到eBPF库。内核开发人员可能总是可以获得内核源代码的副本,但是对于在生产环境机器或客户机器上工作的工程师来说,情况就不一样了。解决这个限制是创建BPF编译器集合的原因之一。
Brendan Gregg,他在2017年的linux.conf.au大会上的演讲提到「内核虚拟机eBPF」,表示,”超能力终于来到了Linux操作系统“。让eBPF达到这一点是一条漫长的进化和设计之路。