Microsoft, Facebook, Google en Netflix werken samen aan eBPF Foundation

Vier grote techgiganten kondigen aan samen te gaan werken aan de eBPF Foundation. Met de samenwerking hopen Microsoft, Facebook, Google en Netflix eBPF sneller te kunnen verbeteren. De eBPF Foundation wordt onderdeel van de Linux Foundation.

De aankondiging komt vlak voor de eBPF-summit, die op 18 en 19 augustus plaatsvindt. EBPF werkt al in de Linux-kernel, maar in mei kondigde Microsoft al aan dat het een opensourceproject ging starten om eBPF werkend te krijgen op Windows 10 en Windows Server 2016 en nieuwer. Nu zijn ook Google, Facebook en Netflix geïnteresseerd om de tool verder te ontwikkelen.

EBPF staat voor extended Berkeley Packet Filter. Het was oorspronkelijk bedoeld voor het analyseren van netwerkverkeer door het low-level onderscheppen van packets. Inmiddels is er via virtual machines veel meer mogelijk met eBPF, zowel op kernelniveau als in de user space.

Gebruikers kunnen hiermee onder andere sandboxed programma's draaien in de kernel van een OS. Daarmee wordt het ingezet om zo'n kernel veilig en efficiënt uit te breiden, zonder dat daarvoor de kernelbroncode gewijzigd hoeft te worden of kernelmodules geladen moeten worden. "EBPF stelt ontwikkelaars in staat om programma's veilig en efficiënt te embedden in elke software, inclusief de kernel van het besturingssysteem", schrijft de Linux Foundation in zijn aankondiging.

De techbedrijven die de eBPF Foundation vormen, gebruiken het pakketfilter al. Facebook gebruikt de tool bijvoorbeeld als load balancer in zijn datacenters. "EBPF is een revolutionaire technologie die ons in staat stelt om een besturingssysteem in real time aan te passen zonder riskante of kostbare veranderingen in de code van de kernel", schrijft Alexei Starovoitov, een kernelontwikkelaar bij Facebook. Google gebruikt Cilium op zijn beurt om op eBPF gebaseerde networking en security te bieden op zijn Kubernetes-aanbod met GKE en Anthos.

De gebruiksscenario's van eBPF. Afbeelding via eBPF

Door Robert Zomers

Redacteur

13-08-2021 • 15:09

18 Linkedin

Reacties (18)

18
18
10
2
0
2
Wijzig sortering
Gaaf! Een goed voorbeeld van eBPF is de implementatie in dnsdist: https://dnsdist.org/advanced/ebpf.html

dnsdist is een DNS proxy die je voor je authorative DNS server kan plaatsen om oa filtering en ratelimiting toe te passen op inkomende DNS verzoeken. DDoS aanvallen op DNS infrastructuur komt steeds vaker voor en dnsdist is daar geweldig voor.

Met eBPF kan dnsdist echt heel veel packet/s filteren en weg gooien indien nodig.
Met EBPF kan een DDOS attacker echt heel veel meer packet/s sturen!
Dat zou kunnen, maar vaak komt een DDoS van heel veel devices die per stuk maar weinig bandbreedte gebruiken.

Vooral aan de ontvangende kant maakt eBPF wel het verschil
Is dit dan een vervanging voor netfilter ?
eBPF is veel meer fine-grained. Het is niet zo zeer een vervanging, maar een toevoeging. Je wilt niet altijd heel diep in de materie duiken. Even snel met de botte bijl met een gewone packet filter minder omslachtig. Tenzij je daarmee je doel niet haalt. En dan komt eBPF om de hoek kijken.

Brendan Gregg (o.a. auteur DTrace Tools, en is een expert mbt DTrace) weet veel van eBPF. Werkte voorheen voor Sun, nu Netflix. Waar hij verantwoordelijk is voor performance.

Hij omschrijft het als volgt:
eBPF does to Linux what JavaScript does to HTML. (Sort of.) So instead of a static HTML website, JavaScript lets you define mini programs that run on events like mouse clicks, which are run in a safe virtual machine in the browser. And with eBPF, instead of a fixed kernel, you can now write mini programs that run on events like disk I/O, which are run in a safe virtual machine in the kernel. In reality, eBPF is more like the v8 virtual machine that runs JavaScript, rather than JavaScript itself. eBPF is part of the Linux kernel.
(Dikgedrukt door mij.)

Bron: https://www.brendangregg....1/learn-ebpf-tracing.html -- deze blog post is van onschatbare waarde. Hier staat ook sample code en een tutorial.

PS: zit net even te kijken naar nft(1), net zoals OpenBSD's PF een mooie syntax. Wat ik tegenkom is nog steeds iptables...

PPS: Overigens gebruikt Netflix met name FreeBSD, en ze zorgen ook voor hoge networking performance in dat OS. Op FreeBSD hebben ze ook beschikking tot DTrace. In Linux zit dat niet (wel een zooitje tools dat probeert equivalent te zijn).

PPPS: @Redactie, misschien interessant een artikel te wijden aan eBPF?

[Reactie gewijzigd door Jerie op 13 augustus 2021 16:19]

Wellicht ben ik (opnieuw) zwartgallig voorzichtig, maar ik vraag mij open af op welke manier(en) eBPF misbruikt kan worden door big tech/digitale regime? Om dezelfde vraag anders te verwoorden, zijn er addertjes onder dit gras?
Wellicht ben ik (opnieuw) zwartgallig voorzichtig, maar ik vraag mij open af op welke manier(en) eBPF misbruikt kan worden door big tech/digitale regime? Om dezelfde vraag anders te verwoorden, zijn er addertjes onder dit gras?
Ik ben geen (e)BPF-expert maar ik maar me daar niet zo'n zorgen over terwijl ik wel behoorlijk kritisch ben op de genoemde bedrijven.

Het blijft gewoon software.
Het is dezelfde hardware met dezelfde CPU en er zijn geen extra features.
Het verschil zit in snelheid en veiligheid.
Die software kan niet meer dan de software die toch al op je computer draaide. Wel minder.
Die snelheid en veiligheid wordt namelijk deels bereikt door de mogelijkheden van de gebruiker te beperken. Door die beperkte mogelijkheden blijft alles simpel, overzichtelijke en efficient.

Nu maakt die snelheid op zich natuurlijk wel dingen mogelijk op die op een langzamer systeem te vervelend zouden zijn en dan kun je mogelijkheden voor surveillance zien. Maar de computers worden zo veel sneller dat dit alleen maar theoretisch is. Als je huidige CPU/OS te langzaam zou zijn om iets te doen zonder BPF dan koop je over een half jaar een die wel snel genoeg is. Dat is een stuk makkelijker dan met BPF aan de slag te gaan.
In praktijk maak ik me daar niet echt zorgen over.

[Reactie gewijzigd door CAPSLOCK2000 op 13 augustus 2021 18:01]

Mijn gedachte ook.
Ieder machtsmiddel, ongeacht hoe menslievend de redenen waarom het gecreeerd wordt, zal uiteindelijk voor slechte dingen gebruikt worden. Sommigen zullen dit voor lief nemen, anderen maken zich daar terecht zorgen om.
Ieder machtsmiddel, ongeacht hoe menslievend de redenen waarom het gecreeerd wordt, zal uiteindelijk voor slechte dingen gebruikt worden.
Enkel de Liefde is sterker dan de(ze) dood, maar dat is weer een meta-onderwerp #offtopic
Maar is dat niet met alles?
Eh, tuurlijk, maar dan zou ik meer aan GFW China denken.

Ga er maar van uit dat Netflix en Facebook gebruik maken van eBPF. Zie ook mijn andere post Jerie in 'nieuws: Microsoft, Facebook, Google en Netflix werken samen aan eBP... (Brendan Gregg werkte voorheen bij Facebook). Google zit ook bovenop dit soort dingetjes. Het nieuws is met name de samenwerking via een NGO, en het feit dat Microsoft er interesse in heeft voor Windows.
Een techbedrijf, een 'sociaal' media platform, een zoekmachine en een videotheek investeren in kernel-ontwikkeling. Hoe kan dit niet eng zijn?
Als je je alu hoedje afzet is het echt niet eng hoor.

Deze bedrijven gebruiken allemaal zelf Linux, en als dat efficiënter kan is dat uiteraard in hun voordeel. Het maakt niks mogelijk wat eerder niet ook al mogelijk was, alleen dat het wat minder resources kost.
Het zijn 4 tech bedrijven die veel baat hebben bij snellere doorvoer van data. Het zou raar zijn als ze hier niet de leiding zouden nemen
Je karaktiseert verkeerd:

Het zijn vier bedrijven die allevier ‘hyperscale’ datacenters hebben. (Hoewel Netflix geloof ik van AWS gebruik maakt, maar indirect is het een hyperscale, want reken maar dat ze *veel* cloud afnemen)

Voor bedrijven die op zo’n schaal hun eigen datacenters hebben is dit vitale technologie.

Ff ongeacht wat er verder voor diensten in die datacenters draaien.

[Reactie gewijzigd door Keypunchie op 13 augustus 2021 17:30]

Frapant dat Amazon dan ook niet betrokken is.
Als de grote jongens 'onbaatzuchtig' deelnemen aan dit soort OS-projecten dan vrees ik altijd weer dat deze cooptatie vooral als doel heeft goedkoop aan kennis te komen dan wel de kennis snel te monopoliseren binnen 'net iets' afwijkende patenten. Ik heb er weining vertrouwwen in.

Op dit item kan niet meer gereageerd worden.

Tweakers maakt gebruik van cookies

Tweakers plaatst functionele en analytische cookies voor het functioneren van de website en het verbeteren van de website-ervaring. Deze cookies zijn noodzakelijk. Om op Tweakers relevantere advertenties te tonen en om ingesloten content van derden te tonen (bijvoorbeeld video's), vragen we je toestemming. Via ingesloten content kunnen derde partijen diensten leveren en verbeteren, bezoekersstatistieken bijhouden, gepersonaliseerde content tonen, gerichte advertenties tonen en gebruikersprofielen opbouwen. Hiervoor worden apparaatgegevens, IP-adres, geolocatie en surfgedrag vastgelegd.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Toestemming beheren

Hieronder kun je per doeleinde of partij toestemming geven of intrekken. Meer informatie vind je in ons cookiebeleid.

Functioneel en analytisch

Deze cookies zijn noodzakelijk voor het functioneren van de website en het verbeteren van de website-ervaring. Klik op het informatie-icoon voor meer informatie. Meer details

janee

    Relevantere advertenties

    Dit beperkt het aantal keer dat dezelfde advertentie getoond wordt (frequency capping) en maakt het mogelijk om binnen Tweakers contextuele advertenties te tonen op basis van pagina's die je hebt bezocht. Meer details

    Tweakers genereert een willekeurige unieke code als identifier. Deze data wordt niet gedeeld met adverteerders of andere derde partijen en je kunt niet buiten Tweakers gevolgd worden. Indien je bent ingelogd, wordt deze identifier gekoppeld aan je account. Indien je niet bent ingelogd, wordt deze identifier gekoppeld aan je sessie die maximaal 4 maanden actief blijft. Je kunt deze toestemming te allen tijde intrekken.

    Ingesloten content van derden

    Deze cookies kunnen door derde partijen geplaatst worden via ingesloten content. Klik op het informatie-icoon voor meer informatie over de verwerkingsdoeleinden. Meer details

    janee