fra begyndelsen af 2019 er bpfilter stadig under udvikling og kan ikke bruges endnu. Det grundlæggende skelet er her og kan endda aktiveres i 4, 18+ kerner, men gør ikke meget for nu, da det ikke er komplet. Koden, der kræves til oversættelse af iptables-regler til BPF bytecode, selvom den er indsendt langs den originale RFC, har ikke nået kernen på dette tidspunkt.
når den er klar, bør der ikke kræves noget specifikt værktøj. Bpfilter vil sandsynligvis blive aktiveret med noget som modprobe bpfilter
, og så er hele ideen at gennemsigtigt udskifte bagenden, mens frontenden efterlades uberørt: så iptables
skal være det eneste værktøj, der kræves til håndtering af reglerne, uden at der kræves nogen særlig mulighed. Derudover giver bpftool
mulighed for at inspicere eBPF-programmerne (inklusive iptables-regler oversat af bpfilter), der er indlæst i kernen.
Du kan tjekke dette, hvis du vil i følgende video (ansvarsfraskrivelse: af mit firma), som viser, hvordan vi brugte bpfilter med en klassisk iptables-regel (vi havde lappet kernen med koden fra RFC; og udførelse af bpfilter.ko i konsollen vil ikke være nødvendig på den endelige version).
Du kan stadig vedhæfte BPF-programmer til krogen (på førerniveau), selv uden at bruge bpfilter, for at få meget bedre ydelse end hvad netfilter tilbyder. Du bliver dog nødt til at omskrive dine regler fuldstændigt som C-programmer, kompilere dem i eBPF med clang og indlæse dem med f.eks. ip
værktøj (fra iproute2). Jeg ved ikke, om dette ville matche dit “funktionssæt”. Afhængigt af hvor stærkt dit behov er, kan en anden drastisk mulighed være at flytte din pakkebehandling til brugerrum og genimplementere din opsætning med dpdk-rammen.