Flexi­be­ler fil­te­ren

C’t Magazine - - Nieuws | Linux - (ddu)

De Li­nux-ker­nel wordt voor­zien van een nieu­we fire­wall­tech­niek waar­bij een voor de run­ti­me op maat ge­maak­te co­de het net­werk­ver­keer fil­tert. Hier­bij wordt de ba­sis ge­legd voor een in­fra­struc­tuur die de ker­nel aan­zien­lijk zou kun­nen wij­zi­gen.

De Li­nux-ker­nel 4.18 (op de plan­ning voor au­gus­tus) be­vat de eer­ste de­len van bp­fil­ter, een nieu­we pak­ket­fil­ter­tech­niek voor fire­walls. Be­heer­ders hoe­ven zich geen zor­gen te ma­ken dat ze hun ken­nis van ip­ta­bles of nf­ta­bles op­eens voor iets an­ders moe­ten in­wis­se­len: bp­fil­ter zal al­leen het fun­da­ment wij­zi­gen van ip­ta­bles en zijn op­vol­gers. Die moe­ten daar aan­zien­lijk snel­ler van wor­den. Dat is voor­als­nog toe­komst­mu­ziek, want bij 4.18 wor­den al­leen de­len van het fun­da­ment ge­legd. Een bij­ef­fect daar­van is dat de enigs­zins mo­no­li­thi­sche Li­nux-ker­nel een in­fra­struc­tuur heeft ge­kre­gen die mo­du­lai­re ei­gen­schap­pen van mi­cro­ker­nels toe­voegt aan het sys­teem.

De es­sen­tie van bp­fil­ter is dat de be­slis­sin­gen over het be­heer van net­werk­pak­ke­ten door lo­kaal ge­ge­ne­reer­de pro­gram­ma­co­de wordt ge­daan, die de ker­nel met be­hulp van het Ber­ke­ley Pac­ket Fil­ter (BPF) uit­voert. Het gaat daar­bij om een pro­cess-ba­sed vir­tu­e­le ma­chi­ne, een­vou­di­ger dan die van .NET en Ja­va. Hij staat ook wel be­kend on­der de naam eBPF om­dat hij uit het Ber­ke­ley Pac­ket Fil­ter is voort­ge­ko­men. Er zijn ove­ri­gens nau­we­lijks meer over­een­kom­sten met de BPF die nu al op di­ver­se plek­ken in de ker­nel wordt toe­ge­past.

De BPF-pro­gram­ma­co­de voor het fil­te­ren van net­werk­pak­ket­ten met bp­fil­ter past zich aan de spe­ci­fie­ke om­stan­dig­he­den aan. Dat re­du­ceert al­ler­lei ver­tak­kin­gen in de co­de en moet de over­head be­per­ken. Om er­voor te zor­gen dat de pro­ces­sor de BPF-co­de zo snel mo­ge­lijk uit­voert, ver­taalt de ker­nel hem op gang­ba­re pro­ces­so­rar­chi­tec­tu­ren ook nog via Just-In-Ti­me (JIT) naar ma­chi­ne­co­de. Bo­ven­dien kan bp­fil­ter het net­werk­ver­keer al bij de eX­press Da­ta Path (XDP) af­van­gen. De BPF-co­de kan de pak­ket­ten daar­door al ver­wer­ken met­een na­dat ze door de net­werk­hard­wa­re wor­den ont­van­gen en voor­dat de krach­ti­ge­re, maar daar­door ook tra­ge­re net­werkstack van Li­nux ze over­neemt.

Door de­ze en an­de­re voor­de­len moet de nieu­we in­steek ef­fi­ci­ën­ter zijn dan de in­fra­struc­tuur met net­fil­ter­sub­sys­te­men die ip­ta­bles en nf­ta­bles tot nu toe ge­bruikt heb­ben. Die is wel­is­waar ge­schre­ven in C, maar vorm­ge­ge­ven als uni­ver­se­le en flexi­be­le pak­ket­fil­ter. Bij het ver­wer­ken van een re­gel­set moet de co­de daar­om ook voor­be­reid zijn op om­stan­dig­he­den waar een lo­ka­le re­gel­set wel­licht he­le­maal geen ge­bruik van maakt. Daar­door is de co­de com­plex, ten­slot­te biedt het net­fil­ter im­mens veel mo­ge­lijk­he­den waar een fire­wall door­gaans maar een frac­tie van ge­bruikt. Een over­stap naar bp­fil­ter is ech­ter nog toe­komst­mu­ziek (zie ook p. 74 en ver­der). In ker­nel­ver­sie 4.18 is al­leen nog maar voor­be­rei­dend werk ge­le­verd.

Het is de vraag of het met bp­fil­ter al­le­maal gaat luk­ken zo­als de deel­ne­men­de ont­wik­ke­laars voor ogen heb­ben. Tot het nieu­we sy­s­tem het ou­de vol­le­dig kan ver­van­gen, moe­ten de pro­gram­meurs nog al­ler­lei func­ties im­ple­men­te­ren. Dat kan nog eni­ge tijd du­ren. De kans op suc­ces is ech­ter re­de­lijk groot, want er wer­ken en­ke­le zwaar­ge­wich­ten uit de net­werk­hoek van Li­nux aan: Alexei Starovoitov en Da­niel Bork­mann. Zij wor­den on­der­steund door de er­va­ren ker­nel­ont­wik­ke­laar Da­vid Mil­ler, die de net­werk­co­de van Li­nux be­heert. Hij grap­te bij de in­tro­duc­tie van bp­fil­ter in 4.18 dat de waan­zin nu kon uit­bar­sten ("Let the ma­d­ness be­gin"). Greg Kro­ah-Hart­man, een van de be­lang­rijk­ste Li­nux-ont­wik­ke­laars voeg­de daar nog aan toe dat het nu echt leuk gaat wor­den ("Yeah, this is go­ing to be fun").

Newspapers in Dutch

Newspapers from Netherlands

© PressReader. All rights reserved.