TGTGInsighttelegram intelligenceLIVE / telegram public index
Post content
Post content
tc bpf 和 xdp bpf 是有区别的, 比如做 DNAT 之后修正 checksum, xdp 直接这样写没问题: bpf_l4_csum_replace(); tcp->dest = dest; 但是 tc 这样写就会 perm deny, 让我用 bpf_probe_read_kernel, 但是就算用了也一样报错, 以下三种改法都过不了 verifier: bpf_probe_read_kernel(); bpf_l4_csum_replace(); tcp->dest = dest; bpf_skb_load_bytes(); bpf_l4_csum_replace(); tcp->dest = dest; load_half(); bpf_l4_csum_replace(); tcp->dest = dest; 结果最后才发现不是读字节的问题, 而是最后 tcp->dest = dest 写字节造成的, 改成 bpf_skb_store_bytes 解决问题. HINT 指鹿为马让人服气.