Unyablog.

のにれんのブログ

eBPF

eBPF の tc を使ってパケットを触ってみる開発入門資料

eBPF の tc (classifier) を使ってパケットを触ってみる話をしたので、資料を貼ります。 docs.google.com eBPF は一度慣れるとかなり便利な仕組みで、見るべき場所が分かっていればそれなりに気軽に使うことができる。ただ、ドキュメントがだいぶ整備されて…

eBPF: bpf_skb_store_bytes の BPF_F_RECOMPUTE_CSUM は tc_cls の egress では動かなさそう

最近 bpf についてめっちゃ書いてるけど、ドキュメントが弱く検索しても情報がないからです… bpf_skb_store_bytes には BPF_F_RECOMPUTE_CSUM というフラグがあって、ドキュメントによると store 後にチェックサムを更新してくれるらしい。 しかし、これを t…

eBPF: sk_skb は parser と verdict どちらも attach する必要がある

eBPF で sk_skb (BPF_PROG_TYPE_SK_SKB) を使うとき、 parser と verdict どちらも attach する必要がある。一方だけを attach しても上手く動かない。 環境は ArchLinux で Kernel release は 5.7.10-arch1-1。 $ bpftool prog attach pinned /sys/fs/bpf/s…

eBPF: BPF_MAP_TYPE_SK_STORAGE が Invalid argument

Linux の eBPF で BPF_MAP_TYPE_SK_STORAGE を使おうとして、map を定義して bpftool で流し込んだけど Invalid argument でうまく動かなかった。調べてもヒットしなくて長時間費やしたのでメモ。 環境は ArchLinux で Kernel release は 5.7.10-arch1-1。 T…