在内核模块里运行 bpf 程序

参考 iptables-bpf 的源代码实现,尝试在自定义的内核模块里运行指定的 bpf 程序。 使用的 bpf 程序源代码: iptables-bpf 内核模块源代码:Kernel module fun 效果 1 2 3 4 5 6 7 8 9 10

iptables-bpf 的实现原理分析

该如此玩转 iptables-bpf 原始魔杖 iptables 配上新发明的药水 eBPF,这是怎么做到的呢?让我们一探 iptables-bpf 究竟。 实现原理 用法:iptables -I OUTPUT -m bpf --object-pinned $(EBPF_PINNED) -j DROP bpf 是 iptables 的一

该如此玩转 iptables-bpf

在看 iptables-nfqueue 源代码的时候,发现 iptables 有 bpf 特性,于是查了下 iptables-bpf 的资料。 使用iptables的bpf match来优化规则集-HiPAC/ipset/n+1模

使用 functrace 排查 Go 函数卡顿问题

在验证 使用 Go 对接 iptables NFQUEUE 的例子 所使用的 go-nfqueue 第三方库 go-nfnetlink 的性能的时候,发现每秒只能处理 4 个网络包,遂使用 functrace 排查了起来。以下记录了排查过程。 排查过程 根据

iptables-nfqueue 的使用

本文主要翻译自 Using NFQUEUE and libnetfilter_queue,将 C 代码例子换成 Go 代码例子。 介绍 NFQUEUE 是一种 iptables 和 ip6tables 的目标(an iptables and ip6tables target),将

一文吃透 iptables-nfqueue

iptables 常用,iptables-nfqueue 少用。因需要深度理解 iptables-nfqueue,所以顺手撸了一遍 iptables-nfqueue 的源代码。 iptables-nfqueue ,aka NFQU

skbtracer: Linux 内核网络包路径追踪利器

skbtracer 是基于 eBPF 技术的 skb 网络包路径追踪利器,基于 goebpf , libbpf-bootstrap (required Linux Kernel 4.15+ with CONFIG_DEBUG_INFO_BTF=y, Go 1.16+) 实现,参考 Python 版本 github.com/DavadDi/skbtracer。 skbtracer

Linux 对抗 synflood 的实现

synflood 介绍 synflood 是一种 TCP 半连接攻击,会消耗尽服务器资源从而导致服务器拒绝服务。 参考搜狗百科:syn flood。 Linux 中对抗 synflood 的手段 Linux 中对抗 synflood 的主要手段是