Från och med början av 2019 är bpfilter fortfarande under utveckling och kan inte användas ännu. Grundskelettet är här och kan till och med aktiveras i 4.18+ kärnor, men gör inte mycket för nu eftersom det inte är komplett. Koden som krävs för att översätta iptables-regler till BPF bytecode, även om den skickas längs den ursprungliga RFC, har inte kommit till kärnan just nu.
när det blir klart bör det inte finnas något specifikt verktyg som krävs. Bpfilter kommer sannolikt att aktiveras med något som modprobe bpfilter
, och då är hela tanken att transparent ersätta bakänden, samtidigt som fronten lämnas orörd: så iptables
bör vara det enda verktyget som krävs för att hantera reglerna, utan något speciellt alternativ krävs. Dessutom tillåter bpftool
att inspektera ebpf-programmen (inklusive iptables-regler översatta av bpfilter) laddade i kärnan.
Du kan kontrollera detta om du vill i följande video (ansvarsfriskrivning: av mitt företag), som visar hur vi använde bpfilter med en klassisk iptables-regel (vi hade patchat kärnan med koden från RFC; och exekvera bpfilter.ko i konsolen kommer inte att vara nödvändigt på den slutliga versionen).
Du kan fortfarande fästa BPF-program på XDP-kroken (på förarnivå), även utan att använda bpfilter, för att få mycket bättre prestanda än vad netfilter erbjuder. Du måste dock helt skriva om dina regler som C-Program, kompilera dem till eBPF med clang och ladda dem med t.ex. verktyget ip
(från iproute2). Jag vet inte om detta skulle matcha din ”funktionsuppsättning”. Beroende på hur starkt ditt behov är, kan ett annat drastiskt alternativ vara att flytta din paketbehandling till användarutrymme och att reimplementera din installation med dpdk-ramverket.