在内核模块里运行 bpf 程序 2021-12-19 Linux eBPF 约 620 字 预计阅读 2 分钟 参考 iptables-bpf 的源代码实现,尝试在自定义的内核模块里运行指定的 bpf 程序。 使用的 bpf 程序源代码: iptables-bpf 内核模块源代码:Kernel module fun 效果 1 2 3 4 5 6 7 8 9 10 阅读更多
iptables-bpf 的实现原理分析 2021-12-19 iptables eBPF 约 554 字 预计阅读 2 分钟 该如此玩转 iptables-bpf 原始魔杖 iptables 配上新发明的药水 eBPF,这是怎么做到的呢?让我们一探 iptables-bpf 究竟。 实现原理 用法:iptables -I OUTPUT -m bpf --object-pinned $(EBPF_PINNED) -j DROP bpf 是 iptables 的一 阅读更多
该如此玩转 iptables-bpf 2021-12-16 iptables eBPF 约 1280 字 预计阅读 3 分钟 在看 iptables-nfqueue 源代码的时候,发现 iptables 有 bpf 特性,于是查了下 iptables-bpf 的资料。 使用iptables的bpf match来优化规则集-HiPAC/ipset/n+1模 阅读更多
使用 functrace 排查 Go 函数卡顿问题 2021-12-15 Go 约 1068 字 预计阅读 3 分钟 在验证 使用 Go 对接 iptables NFQUEUE 的例子 所使用的 go-nfqueue 第三方库 go-nfnetlink 的性能的时候,发现每秒只能处理 4 个网络包,遂使用 functrace 排查了起来。以下记录了排查过程。 排查过程 根据 阅读更多
iptables-nfqueue 的使用 2021-12-12 iptables 约 1620 字 预计阅读 4 分钟 本文主要翻译自 Using NFQUEUE and libnetfilter_queue,将 C 代码例子换成 Go 代码例子。 介绍 NFQUEUE 是一种 iptables 和 ip6tables 的目标(an iptables and ip6tables target),将 阅读更多
一文吃透 iptables-nfqueue 2021-12-09 iptables 约 3152 字 预计阅读 7 分钟 iptables 常用,iptables-nfqueue 少用。因需要深度理解 iptables-nfqueue,所以顺手撸了一遍 iptables-nfqueue 的源代码。 iptables-nfqueue ,aka NFQU 阅读更多
使用 Go 对接 iptables NFQUEUE 的例子 2021-11-03 iptables 约 584 字 预计阅读 2 分钟 最近在学习 iptables NFQUEUE 的时候,顺手使用 Go 语言写了一个例子。 源代码:github.com/Asphaltt/go-nfnetlink-example 例 阅读更多
netlink 是 Go 和内核模块之间优秀的通信兵 2021-11-03 Linux 约 1070 字 预计阅读 3 分钟 netlink 是 Linux 系统里用户态程序、内核模块之间的一种 IPC 方式,特别是用户态程序和内核模块之间的 IPC 通信。比如在 Linux 终端里常用的 ip 命令,就是使用 netlink 去跟内核进行 阅读更多
skbtracer: Linux 内核网络包路径追踪利器 2021-11-02 eBPF 约 872 字 预计阅读 2 分钟 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 的实现 2021-05-19 Linux 约 1571 字 预计阅读 4 分钟 synflood 介绍 synflood 是一种 TCP 半连接攻击,会消耗尽服务器资源从而导致服务器拒绝服务。 参考搜狗百科:syn flood。 Linux 中对抗 synflood 的手段 Linux 中对抗 synflood 的主要手段是 阅读更多