yihong0618 和朋友们的频道 头像

消息来源频道

yihong0618 和朋友们的频道

@hyi0618

频道8,612 位成员公开可见0 人在线

yihong0618 和朋友们的频道

成员规模8,612 位成员
在线情况0 人在线
消息总数10,129 条消息
浏览量总数3,276,841 次浏览

在这个频道里搜索消息……

t.me/hyi0618

四周前,我发现一些系统上用户创建的 veth 会被修改 mac addr,所以我想,我需要一个工具去 trace netlink syscall,全局的那种,bpf-based,看看究竟是谁在调用 netlink syscall 修改我的 mac addr。
三周前,我意识到我不需要在 bpf 内核态解析 netlink,我只需要关注 strcut net_device *。你想到了什么? pwru!我们可以从 btf 找出所有以 netdev 为参数的函数来追踪。
两周前,我反应过来,我需要的不只是 netdevsnoop ,而是一个通用的 Xsnoop 。是 X 不是 netdev!我糊了三个版本的 demo:jq + bash + bpftrace、python + bpftrace、 go + cilium/ebpf,但是没有一个达到我理想的状态。在“灵活”和“易用”上似乎难以找到一个折中,要么过于死板以至于完美适用一个场景却在另一场景不好用,要么过于灵活以至于动不动就要改代码。
一周前,我终于意识到,我需要的是 bpftrace-multi ,一个让我可以五分钟实现 pwru、十分钟定制化 pwru、分分钟完成 Xsnoop、顺便还有了 retsnoop 的功能。
虽然是个简单小项目,充满 bug,切代码块甚至用正则是 ^}$ ,但是我非常得意,已经帮我解决了好几个陈年 issue。
新年快乐!