BPF 在网络领域的实现

概述

参考:

eBPF 架构

eBPF 能够让你在内核中创建新的 DataPath。eBPF 就是内核本身的代码,想象空间无限,并且热加载到内核;换句话说,一旦加载到内核,内核的行为就变了。在 eBPF 之前,改变内核行为这件事情,只能通过修改内核再重新编译,或者开发内 核模块才能实现。

由于上述原因,真正的 eBPF,应该是基于 eBPF 实现的数据路径,由于 eBPF 可以修改内核,所以可以在内核创建新的类似 Netfilter 的 Hook 点,以便跳过复杂的 Netfilter。甚至可以直接在网卡驱动中运行 eBPF 代码,而无需将数据包送到复杂的协议栈进行处理。


最后修改 September 10, 2024: ebpf (f4cfea75)