Netfilter'i vĂ”rgu paketifiltreerimise ja -muutmise alamsĂŒsteemi arendajad koostasid plaastrite komplekti, mis kiirendab oluliselt suurte vaste loendite (nftables set) töötlemist, kus on vajalik alamsĂŒsteemide, vĂ”rguportide, protokolli ja MAC-aadresside kombinatsiooni kontrollimine. Plaastrid on juba vastu vĂ”etud , mis pakutakse vĂ€lja Linuxi 5.7 tuumasse. Olulisim kiirusetĂ”us saavutati kĂ€skude kasutamisega (tulevikus on plaanis avaldada sarnased optimeerimised NEON kĂ€skude alusel ARM-i jaoks).
Optimeerimised on tehtud moodulisse (PIle PAcket POlicies), mis lahendab probleemi pakettide sisu vastavuse tuvastamisega filtrireeglitega seotud vĂ€ljade, nagu IP ja vĂ”rguportide vahemikud (nft_set_rbtree ja nft_set_hash manipuleerivad vahemike vastavusega ja otsese vÀÀrtuste peegeldamisega). AVX2 256-bitiste kĂ€skude abil vektoriseeritud pipapo versioon AMD Epyc 7402 protsessoriga nĂ€itas 30 000 kirje uurimise ajal 420% jĂ”udluse kasvu, sealhulgas sadamakombinatsioon ja protokoll. AlamsĂŒsteemi ja portide numbri vastavuse tundmine 1000 kirje analĂŒĂŒsimisel nĂ€itas 87% kasvu IPv4 ja 128% kasvu IPv6 puhul.

Teine optimeerimine, mis vĂ”imaldab kasutada 8-bitiseid vastavuse gruppe 4-bitiste asemel, nĂ€itas samuti mĂ€rkimisvÀÀrset jĂ”udluse kasvu: 66% jĂ”udlus 30 000 kirje uurimisel sadamakombinatsioon ja protokoll, 43% - alamsĂŒsteem_IPv4-port ja 61% - alamsĂŒsteem_IPv6-port. Kokku, koos AVX2 optimeerimistega, kasvas pipapo jĂ”udlus nendes testides vastavalt 766%, 168% ja 269%. Saadud omadused keerukate vastavuste jaoks ĂŒletavad ĂŒksikute vĂ€ljade kontrolle (vĂ€lja arvatud sadama ja protokolli kombinatsiooni test), kuid jÀÀvad siiski alla otsestele kontrollidele hashide kaudu Netfilter'i vĂ”rgu paketifiltreerimise ja -muutmise alamsĂŒsteemi arendajad avaldasid plaastrite komplekti.

Allikas: opennet.ru
