Skip to main content

Native eBPF overview

Machina ships its own eBPF datapath, written in Rust with Aya. A single root service, machina-bpfd, loads the kernel programs and serves the daemon, the controller and the UI. You do not install Cilium, Tetragon, kube-proxy or a separate network-security agent: Machina replaces them.

What it does​

AreaFeatures
Load balancingMaglev service LB for Kubernetes, QUIC-LB at XDP
Kubernetesmachina-cni: pod networking, NetworkPolicy, optional Cilium policy CRDs
Host protectionXDP DDoS shield, emergency node isolation
VM protectionVM edge isolation and rate limits, QEMU sandbox, VMM guard (BPF-LSM)
VisibilityFlows, DNS, L7 (HTTP, TLS SNI, gRPC, Redis, PostgreSQL, MySQL, Kafka), TLS JA3/JA4, network change audit, VM runtime histograms
PerformanceAF_XDP, direct tap redirect, sched_ext VM scheduler
GuestsPer-container network and LSM policy inside VMs via GuestKit

Everything is on Platform → Security → Native eBPF (22 tabs) and under /api/v1/bpf/* on each host. The controller rolls it up fleet-wide.

Safe by default​

  • Features that can drop traffic start in observe or audit mode.
  • Enforcement needs a lease (15 minutes by default). The deadline is checked in the kernel datapath, so drops stop on time even if a service stalls.
  • Nothing is persisted. A restart comes back in observe mode.
  • Dangerous targets are guarded: default-deny never attaches to a host uplink, node isolation refuses to arm without SSH allowed, and AF_XDP refuses the default-route interface.

Kernel requirements​

GET /api/v1/bpf/status reports what your kernel supports, and the Native eBPF overview shows it as pills.

Feature flagNeeded for
btfMost programs (/sys/kernel/btf/vmlinux)
tcxVM edge and node isolation (kernel 6.6+)
cgroup2Socket LB, sandbox, TLS and L7 sampling
lsm_bpfVMM guard enforce (bpf in the active LSM list)
sched_extVM scheduler (kernel 6.12+)
xskAF_XDP

Any recent distribution kernel (6.6 or later) runs the core datapath. See the engineering reference for full details.