该如此玩转 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 的主要手段是

Linux 自定义 netfilter 钩子实验

学习了 Linux netfilter 钩子执行过程,接下来在内核模块里实现一个自定义的 netfilter 钩子。 netfilter 的网络包处理流程 下图比较详细地描述了 iptables 和 ebtables 的规则执行时机: 图片来源:wi

Linux netfilter 钩子执行过程

netfilter 框架是 Linux 网络子系统里的一个核心模块,iptables 就是基于 netfilter 框架实现的一个网络包处理工具。 netfilter 框架原理介绍 在内核里,每个网络命名空间(ne