Përputhja komplekse e listës NetFilter do të përshpejtohet në kernelin Linux 5.7

Zhvilluesit e nënsistemit të filtrimit dhe modifikimit të Netfilter për paketat e rrjetit botuar një grup arnimesh që shpejtojnë ndjeshëm përpunimin e listave të mëdha të ndeshjeve (nftables set), të cilat kërkojnë kontrollimin e një kombinimi të nënrrjetave, portave të rrjetit, protokollit dhe adresave MAC. Arnimet tashmë janë pranuar në degë nf-tjetër, i cili do të propozohet për përfshirje në kernelin Linux 5.7. Përshpejtimi më i dukshëm u arrit falë angazhues Udhëzimet AVX2 (në të ardhmen është planifikuar të publikohen optimizime të ngjashme bazuar në udhëzimet NEON për ARM).

Optimizimet e përfshira në modul nft_set_pipapo (PIle PAcket POlicies), i cili zgjidh problemin e përputhjes së përmbajtjes së një pakete me diapazonin arbitrar të gjendjes së fushës të përdorur në rregullat e filtrimit, të tilla si vargjet e IP dhe portave të rrjetit (nft_set_rbtree dhe nft_set_hash manipulojnë përputhjen e intervalit dhe reflektimin e drejtpërdrejtë të vlerave). Versioni i pipapo-s i vektorizuar duke përdorur udhëzime 256-bit AVX2 në një sistem me një procesor AMD Epyc 7402 tregoi një rritje të performancës prej 420% kur analizoi 30 mijë rekorde duke përfshirë kombinime port-protokolli. Rritja kur krahasohet një kombinim i një nënrrjeti dhe një numri porti kur analizohen 1000 regjistrime ishte 87% për IPv4 dhe 128% për IPv6.

Përputhja komplekse e listës NetFilter do të përshpejtohet në kernelin Linux 5.7

Një optimizim tjetër, duke lejuar përdorimin e grupeve të përputhjes 8-bit në vend të 4-bit, tregoi gjithashtu përfitime të konsiderueshme të performancës: 66% kur analizoni 30 mijë hyrje të protokollit të portit, 43% për portin subnet_IPv4 dhe 61% për portin subnet_IPv6. Në total, duke marrë parasysh optimizimet AVX2, performanca e pipapo u rrit në këto teste përkatësisht me 766%, 168% dhe 269%. Karakteristikat e marra për krahasime komplekse janë përpara kontrollit të vetëm në terren rbtree (me përjashtim të testit port+protokolli), por deri më tani ato mbeten prapa kontrolleve të drejtpërdrejta duke përdorur hashash dhe mbajtësit e lëshimit të bazuar në netdev.

Përputhja komplekse e listës NetFilter do të përshpejtohet në kernelin Linux 5.7

Burimi: opennet.ru

Shto një koment