Releases: githubflyideas/xdp-ban
Releases · githubflyideas/xdp-ban
Release list
xdp-ban v0.27 — 数据面首个可运行版本
重要修复:v0.26 及之前的 agent/sampler 无法运行
此前发布的 xdp-agent / xdp-sampler 内嵌的是空 eBPF bytecode,启动即报 bytecode 为空。本版是第一个真正可运行的数据面二进制。
已用 cilium/ebpf 验证内嵌 bytecode 可解析、map 齐全:
xdp_filter.o → src_ban_global(LPMTrie,65536) target_hosts(Hash,4096)
src_ban(LPMTrie,262144) counters(PerCPUArray,4)
xdp_sampler.o → sampling_rate flow_table global_stats samples(RingBuf)
同时修掉两个采样侧的真实缺陷
- 包长算错:此前用
ctx->data_meta - data,而data_meta指向元数据区、与包长无关 —— 上报的字节数全是垃圾。 - 采样退化成"全采或全不采":随机种子只用
rx_queue_index,同一队列上每个包算出的随机数相同,采样率形同虚设。现改为混入五元组与 ktime。
构建流程加固
make bpf-check 断言 .o 非空,build/dist 都依赖它 —— 忘跑 make bpf 时构建直接失败,而不是产出坏二进制。新增 make release 串起 bpf → check → dist。
预编译二进制(Linux amd64/arm64),下载即用。
xdp-ban v0.26 — 修复执行面阻塞问题
重要修复
v0.25 及之前的 xdp-agent 无法启动:eBPF 程序重构后 map 名变更,agent 仍在查找已不存在的 ban_list。控制面可用,执行面是死的。
本版修复并补上跨语言契约测试(解析 C 源码比对 map 名与结构体尺寸),防止同类回归。
- 新增
src_ban_global,单点封禁支持网段 - TTL 换算修正为 ktime 基准(此前会让封禁永不过期)
- LPM key 强制归一化(未归一化的 key 永远匹配不上)
- 范围封禁审批时重新展开前缀并检测漂移
预编译二进制(Linux amd64/arm64)。
xdp-ban v0.25
看见即封禁闭环:采样页 Top 流量一键发起封禁 + NetFlow v5 导出 ElastiFlow + 按国家/AS 范围封禁 + 合规报告导出。
预编译二进制(Linux amd64/arm64),eBPF 已内嵌,下载即用。
xdp-ban v0.23
预编译二进制(Linux amd64/arm64)。eBPF 已内嵌,下载即用。