Skip to content

xdp-ban v0.27 — 数据面首个可运行版本

Latest

Choose a tag to compare

@githubflyideas githubflyideas released this 05 Aug 02:51

重要修复: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),下载即用。