We Put an L7 Firewall in the Kernel23 days agohttps://yeet.cx/blog/l7-firewall-in-the-kernel防火墙在内核中使用 eBPF 在纳秒级做出 HTTP/2 头部决策,从而避免用户空间代理延迟。策略以 JavaScript 应用形式编写,允许通过 git push 进行更新,无需重建、重新部署或重启。使用布尔逻辑规则匹配 HTTP/2 头部,如 :authority、User-Agent 和源地址。利用 XDP hook 进行早期数据包过滤,在内核套接字分配前丢弃数据包,实现最低成本。更多...
Reimplementing pf as an eBPF/XDP dataplane on Linux22 days agohttps://blog.nfsensei.org/the-packet-filter-reborn.htmlPFL 是一个实验性项目,旨在将 pf 防火墙的语言和状态语义转换为 Linux 的 XDP(eXpress Data Path),以实现高效的数据包处理。PFL 基于 FreeBSD 的 pfSense 遗产构建,使用 Rust 作为控制平面(pfld)和 eBPF 数据平面,利用 XDP 的驱动程序级执行来实现高数据包速率。关键架构特点包括一个尾调用图管道以符合 eBPF 验证器的限制、用于连接状态的 LRU 哈希映射和每 CPU 计数器。PFL 在多个 pf 功能上实现了显著的匹配,包括过滤、NAT(IPv4/IPv6)、NAT64、标准化、策略路由以及带有 SYN Cookie 的 DoS 抵抗能力。更多...