From 89c2102bd8e9a2f1fb111ae9a2c4caeef1afb11d Mon Sep 17 00:00:00 2001 From: /gray Date: Tue, 28 Nov 2023 02:19:02 +0800 Subject: [PATCH] Handle L3 devices (#23) * Tc bpf can properly dump skb on L3 dev * Delete obsolete file --- bpf/bpf.go | 51 +++++++++++++++----------- bpf/bpf_bpfel_x86.go | 18 ++++++---- bpf/bpf_bpfel_x86.o | Bin 796648 -> 803480 bytes bpf/compile.go | 84 ------------------------------------------- bpf/skbdump.c | 58 ++++++++++++++++++++++-------- go.mod | 4 +-- target/dev/dev.go | 4 +-- 7 files changed, 90 insertions(+), 129 deletions(-) delete mode 100644 bpf/compile.go diff --git a/bpf/bpf.go b/bpf/bpf.go index 8ccf504..91190e7 100644 --- a/bpf/bpf.go +++ b/bpf/bpf.go @@ -59,8 +59,8 @@ type BpfConfig struct { type Objects interface { Load(LoadOptions) error - TcIngress() *ebpf.Program - TcEgress() *ebpf.Program + TcIngress(l2 bool) *ebpf.Program + TcEgress(l2 bool) *ebpf.Program Kprobe(pos int) *ebpf.Program Kretprobe() *ebpf.Program KprobeTid() *ebpf.Program @@ -89,21 +89,24 @@ func (o *Bpf) Load(opts LoadOptions) (err error) { return } - for _, progName := range []string{"on_ingress", "on_egress"} { - prog, ok := o.spec.Programs[progName] - if !ok { - return errors.Errorf("program %s not found", progName) - } - if prog.Instructions, err = elibpcap.Inject( - opts.Filter, - prog.Instructions, - elibpcap.Options{ - AtBpf2Bpf: "tc_pcap_filter", - DirectRead: true, - L2Skb: true, - }, - ); err != nil { - return + for _, suffix := range []string{"l2", "l3"} { + for _, progName := range []string{"on_ingress", "on_egress"} { + progName = fmt.Sprintf("%s_%s", progName, suffix) + prog, ok := o.spec.Programs[progName] + if !ok { + return errors.Errorf("program %s not found", progName) + } + if prog.Instructions, err = elibpcap.Inject( + opts.Filter, + prog.Instructions, + elibpcap.Options{ + AtBpf2Bpf: "tc_pcap_filter_" + suffix, + DirectRead: true, + L2Skb: true, + }, + ); err != nil { + return + } } } for _, progName := range []string{"on_kprobe1", "on_kprobe2", "on_kprobe3", "on_kprobe4", "on_kprobe5"} { @@ -165,11 +168,17 @@ func (o *Bpf) Load(opts LoadOptions) (err error) { return nil } -func (o *Bpf) TcIngress() *ebpf.Program { - return o.objs.OnIngress +func (o *Bpf) TcIngress(l2 bool) *ebpf.Program { + if l2 { + return o.objs.OnIngressL2 + } + return o.objs.OnIngressL3 } -func (o *Bpf) TcEgress() *ebpf.Program { - return o.objs.OnEgress +func (o *Bpf) TcEgress(l2 bool) *ebpf.Program { + if l2 { + return o.objs.OnEgressL2 + } + return o.objs.OnEgressL3 } func (o *Bpf) Kprobe(pos int) *ebpf.Program { diff --git a/bpf/bpf_bpfel_x86.go b/bpf/bpf_bpfel_x86.go index 5e6dfd2..576f627 100644 --- a/bpf/bpf_bpfel_x86.go +++ b/bpf/bpf_bpfel_x86.go @@ -71,8 +71,10 @@ type BpfSpecs struct { // // It can be passed ebpf.CollectionSpec.Assign. type BpfProgramSpecs struct { - OnEgress *ebpf.ProgramSpec `ebpf:"on_egress"` - OnIngress *ebpf.ProgramSpec `ebpf:"on_ingress"` + OnEgressL2 *ebpf.ProgramSpec `ebpf:"on_egress_l2"` + OnEgressL3 *ebpf.ProgramSpec `ebpf:"on_egress_l3"` + OnIngressL2 *ebpf.ProgramSpec `ebpf:"on_ingress_l2"` + OnIngressL3 *ebpf.ProgramSpec `ebpf:"on_ingress_l3"` OnKprobe1 *ebpf.ProgramSpec `ebpf:"on_kprobe1"` OnKprobe2 *ebpf.ProgramSpec `ebpf:"on_kprobe2"` OnKprobe3 *ebpf.ProgramSpec `ebpf:"on_kprobe3"` @@ -137,8 +139,10 @@ func (m *BpfMaps) Close() error { // // It can be passed to LoadBpfObjects or ebpf.CollectionSpec.LoadAndAssign. type BpfPrograms struct { - OnEgress *ebpf.Program `ebpf:"on_egress"` - OnIngress *ebpf.Program `ebpf:"on_ingress"` + OnEgressL2 *ebpf.Program `ebpf:"on_egress_l2"` + OnEgressL3 *ebpf.Program `ebpf:"on_egress_l3"` + OnIngressL2 *ebpf.Program `ebpf:"on_ingress_l2"` + OnIngressL3 *ebpf.Program `ebpf:"on_ingress_l3"` OnKprobe1 *ebpf.Program `ebpf:"on_kprobe1"` OnKprobe2 *ebpf.Program `ebpf:"on_kprobe2"` OnKprobe3 *ebpf.Program `ebpf:"on_kprobe3"` @@ -151,8 +155,10 @@ type BpfPrograms struct { func (p *BpfPrograms) Close() error { return _BpfClose( - p.OnEgress, - p.OnIngress, + p.OnEgressL2, + p.OnEgressL3, + p.OnIngressL2, + p.OnIngressL3, p.OnKprobe1, p.OnKprobe2, p.OnKprobe3, diff --git a/bpf/bpf_bpfel_x86.o b/bpf/bpf_bpfel_x86.o index 7df0af3b02ea75dd4ce4dfbb7ea7b2fe35d96393..f1e0091b099e8afb55a3afd7e0ed5431c37403f5 100644 GIT binary patch delta 291755 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 CyjgPq diff --git a/bpf/compile.go b/bpf/compile.go deleted file mode 100644 index 8dd3baa..0000000 --- a/bpf/compile.go +++ /dev/null @@ -1,84 +0,0 @@ -package bpf - -import ( - "fmt" - "unsafe" - - "github.com/cilium/ebpf/asm" - "github.com/cloudflare/cbpfc" - "golang.org/x/net/bpf" -) - -/* -#cgo LDFLAGS: -L/usr/local/lib -lpcap -static -#include -#include -*/ -import "C" - -type pcapBpfProgram C.struct_bpf_program - -const ( - MaxBpfInstructions = 4096 - bpfInstructionBufferSize = 8 * MaxBpfInstructions - MAXIMUM_SNAPLEN = 262144 -) - -func CompileCbpf(expr string) (insts []bpf.Instruction, err error) { - if len(expr) == 0 { - return - } - - pcap := C.pcap_open_dead(C.DLT_EN10MB, MAXIMUM_SNAPLEN) - if pcap == nil { - return nil, fmt.Errorf("failed to pcap_open_dead: %+v\n", C.PCAP_ERROR) - } - defer C.pcap_close(pcap) - - cexpr := C.CString(expr) - defer C.free(unsafe.Pointer(cexpr)) - - var bpfProg pcapBpfProgram - if C.pcap_compile(pcap, (*C.struct_bpf_program)(&bpfProg), cexpr, 1, C.PCAP_NETMASK_UNKNOWN) < 0 { - return nil, fmt.Errorf("failed to pcap_compile '%s': %+v", expr, C.GoString(C.pcap_geterr(pcap))) - } - defer C.pcap_freecode((*C.struct_bpf_program)(&bpfProg)) - - for _, v := range (*[bpfInstructionBufferSize]C.struct_bpf_insn)(unsafe.Pointer(bpfProg.bf_insns))[0:bpfProg.bf_len:bpfProg.bf_len] { - insts = append(insts, bpf.RawInstruction{ - Op: uint16(v.code), - Jt: uint8(v.jt), - Jf: uint8(v.jf), - K: uint32(v.k), - }.Disassemble()) - } - return -} - -func CompileEbpf(expr string, opts cbpfc.EBPFOpts) (insts asm.Instructions, err error) { - cbpfInsts, err := CompileCbpf(expr) - if err != nil { - return - } - - ebpfInsts, err := cbpfc.ToEBPF(cbpfInsts, opts) - if err != nil { - return - } - - return adjustEbpf(ebpfInsts, opts) - -} - -func adjustEbpf(insts asm.Instructions, opts cbpfc.EBPFOpts) (newInsts asm.Instructions, err error) { - - insts = append(insts, - asm.Mov.Reg(asm.R1, asm.R0).WithSymbol("result"), // r1 = r0 = $result - asm.Mov.Imm(asm.R2, 0), // r2 = 0 - asm.Mov.Imm(asm.R3, 0), // r3 = 0 - asm.Mov.Imm(asm.R4, 0), // r4 = 0 - asm.Mov.Imm(asm.R5, 0), // r5 = 0 - ) - - return insts, nil -} diff --git a/bpf/skbdump.c b/bpf/skbdump.c index 70272ed..c3e076b 100644 --- a/bpf/skbdump.c +++ b/bpf/skbdump.c @@ -86,13 +86,30 @@ struct bpf_map_def SEC("maps") perf_output = { }; static __noinline -bool tc_pcap_filter(void *_skb, void *__skb, void *___skb, void *data, void* data_end) +bool tc_pcap_filter_l2(void *_skb, void *__skb, void *___skb, void *data, void* data_end) +{ + return data != data_end && _skb == __skb && __skb == ___skb; +} + +static __noinline +bool tc_pcap_filter_l3(void *_skb, void *__skb, void *___skb, void *data, void* data_end) { return data != data_end && _skb == __skb && __skb == ___skb; } static __always_inline -void handle_skb_tc(struct __sk_buff *skb, bool ingress) +bool tc_pcap_filter(struct __sk_buff *skb, bool l2) +{ + if (l2) + return tc_pcap_filter_l2((void *)skb, (void *)skb, (void *)skb, + (void *)(long)skb->data, (void *)(long)skb->data_end); + + return tc_pcap_filter_l3((void *)skb, (void *)skb, (void *)skb, + (void *)(long)skb->data, (void *)(long)skb->data_end); +} + +static __always_inline +void handle_skb_tc(struct __sk_buff *skb, bool ingress, bool l2) { struct skbdump *dump; @@ -100,8 +117,7 @@ void handle_skb_tc(struct __sk_buff *skb, bool ingress) if (bpf_map_lookup_elem(&skb_addresses, &skb_addr)) goto cont; - if (!tc_pcap_filter((void *)skb, (void *)skb, (void *)skb, - (void *)(long)skb->data, (void *)(long)skb->data_end)) + if (!tc_pcap_filter(skb, l2)) return; bpf_map_update_elem(&skb_addresses, &skb_addr, &TRUE, BPF_ANY); @@ -115,7 +131,7 @@ void handle_skb_tc(struct __sk_buff *skb, bool ingress) dump->meta.time_ns = bpf_ktime_get_boot_ns(); dump->meta.skb = skb_addr; - dump->meta.l2 = 1; + dump->meta.l2 = l2; dump->meta.ret = 0; dump->meta.len = skb->len; dump->meta.ifindex = skb->ifindex; @@ -124,7 +140,7 @@ void handle_skb_tc(struct __sk_buff *skb, bool ingress) __u64 payload_len = dump->meta.len > MAX_PAYLOAD_SIZE ? MAX_PAYLOAD_SIZE : dump->meta.len; struct btf_ptr p = {}; - p.type_id = bpf_core_type_id_kernel(struct __sk_buff); + p.type_id = bpf_core_type_id_kernel(struct sk_buff); p.ptr = skb; bpf_snprintf_btf((char *)&dump->meta.structure, MAX_STRUCT_SIZE, &p, sizeof(p), BTF_F_COMPACT | BTF_F_PTR_RAW); @@ -134,16 +150,30 @@ void handle_skb_tc(struct __sk_buff *skb, bool ingress) } SEC("tc") -int on_egress(struct __sk_buff *skb) +int on_egress_l2(struct __sk_buff *skb) +{ + handle_skb_tc(skb, false, true); + return TC_ACT_OK; +} + +SEC("tc") +int on_ingress_l2(struct __sk_buff *skb) +{ + handle_skb_tc(skb, true, true); + return TC_ACT_OK; +} + +SEC("tc") +int on_egress_l3(struct __sk_buff *skb) { - handle_skb_tc(skb, false); + handle_skb_tc(skb, false, false); return TC_ACT_OK; } SEC("tc") -int on_ingress(struct __sk_buff *skb) +int on_ingress_l3(struct __sk_buff *skb) { - handle_skb_tc(skb, true); + handle_skb_tc(skb, true, false); return TC_ACT_OK; } @@ -190,7 +220,7 @@ get_netns(struct sk_buff *skb) { } static __always_inline int -collect_skb(struct sk_buff *skb, struct pt_regs *ctx, struct skbdump *dump) +kprobe_collect_skb(struct sk_buff *skb, struct pt_regs *ctx, struct skbdump *dump) { dump->meta.time_ns = bpf_ktime_get_boot_ns(); dump->meta.skb = (__u64)skb; @@ -248,7 +278,7 @@ handle_skb_kprobe(struct sk_buff *skb, struct pt_regs *ctx) dump->meta.ret = 0; __u64 sp = ctx->sp; bpf_map_update_elem(&sp2ip, &sp, &dump->meta.at, BPF_ANY); - return collect_skb(skb, ctx, dump); + return kprobe_collect_skb(skb, ctx, dump); } @@ -281,7 +311,7 @@ int on_kprobe_tid(struct pt_regs *ctx) __u64 sp = ctx->sp; if (!bpf_map_lookup_elem(&sp2ip, &sp)) bpf_map_update_elem(&sp2ip, &sp, &dump->meta.at, BPF_ANY); - collect_skb(*skb, ctx, dump); + kprobe_collect_skb(*skb, ctx, dump); } return 0; } @@ -305,7 +335,7 @@ int on_kretprobe(struct pt_regs *ctx) dump->meta.at = *ip; dump->meta.ret = 1; - collect_skb(*skb, ctx, dump); + kprobe_collect_skb(*skb, ctx, dump); bpf_map_delete_elem(&sp2ip, &sp); diff --git a/go.mod b/go.mod index 72005fd..6178c77 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,6 @@ go 1.21.0 require ( github.com/cilium/ebpf v0.12.3 - github.com/cloudflare/cbpfc v0.0.0-20230809125630-31aa294050ff github.com/elastic/go-sysinfo v1.9.0 github.com/florianl/go-tc v0.4.2 github.com/google/gopacket v1.1.19 @@ -13,11 +12,11 @@ require ( github.com/spf13/pflag v1.0.5 github.com/vishvananda/netlink v1.1.0 github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df - golang.org/x/net v0.16.0 golang.org/x/sys v0.14.1-0.20231108175955-e4099bfacb8c ) require ( + github.com/cloudflare/cbpfc v0.0.0-20230809125630-31aa294050ff // indirect github.com/elastic/go-windows v1.0.0 // indirect github.com/google/go-cmp v0.5.9 // indirect github.com/joeshaw/multierror v0.0.0-20140124173710-69b34d4ec901 // indirect @@ -27,6 +26,7 @@ require ( github.com/prometheus/procfs v0.8.0 // indirect github.com/stretchr/testify v1.4.0 // indirect golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa // indirect + golang.org/x/net v0.16.0 // indirect golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect gopkg.in/yaml.v2 v2.2.8 // indirect howett.net/plist v0.0.0-20181124034731-591f970eefbb // indirect diff --git a/target/dev/dev.go b/target/dev/dev.go index ff2d748..6e576fb 100644 --- a/target/dev/dev.go +++ b/target/dev/dev.go @@ -61,11 +61,11 @@ func (d *Device) Attach(objs bpf.Objects) error { if err = d.EnsureTcQdisc(); err != nil { return } - d.delIngress, err = d.AddIngressFilter(objs.TcIngress()) + d.delIngress, err = d.AddIngressFilter(objs.TcIngress(!d.IsL3Device())) if err != nil { return } - d.delEgress, err = d.AddEgressFilter(objs.TcEgress()) + d.delEgress, err = d.AddEgressFilter(objs.TcEgress(!d.IsL3Device())) return }) }