Ujemanje zapletenih seznamov NetFilter bo pospešeno v jedru Linux 5.7

Razvijalci podsistema za filtriranje in spreminjanje omrežnih paketov Netfilter objavljeno nabor popravkov, ki bistveno pospešijo obdelavo velikih seznamov ujemanj (nftables set), ki zahtevajo preverjanje kombinacije podomrežij, omrežnih vrat, protokola in MAC naslovov. Popravi so že sprejeti v podružnico nf-naprej, ki bo predlagan za vključitev v jedro Linuxa 5.7. Najopaznejši pospešek je bil dosežen zahvaljujoč privlačen Navodila AVX2 (v prihodnosti je predvidena objava podobnih optimizacij na osnovi navodil NEON za ARM).

Optimizacije vključene v modul nft_set_pipapo (PIle PAcket POlicies), ki rešuje problem ujemanja vsebine paketa s poljubnimi razponi stanja polja, ki se uporabljajo v pravilih filtriranja, kot so IP in obsegi omrežnih vrat (nft_set_rbtree in nft_set_hash upravljata intervalno ujemanje in neposredni odraz vrednosti). Različica pipapo, vektorizirana z uporabo 256-bitnih navodil AVX2 v sistemu s procesorjem AMD Epyc 7402, je pokazala 420-odstotno povečanje zmogljivosti pri razčlenjevanju 30 tisoč zapisov, vključno s kombinacijami vrat-protokol. Povečanje pri primerjavi kombinacije podomrežja in številke vrat pri razčlenjevanju 1000 zapisov je bilo 87 % za IPv4 in 128 % za IPv6.

Ujemanje zapletenih seznamov NetFilter bo pospešeno v jedru Linux 5.7

Druga optimizacija, ki omogoča uporabo 8-bitnih skupin ujemanja namesto 4-bitnih, je prav tako pokazala znatno izboljšanje zmogljivosti: 66 % pri razčlenjevanju 30 tisoč vnosov protokola vrat, 43 % za vrata subnet_IPv4 in 61 % za vrata subnet_IPv6. Skupno se je ob upoštevanju optimizacij AVX2 zmogljivost pipapa v teh testih povečala za 766 %, 168 % oziroma 269 %. Značilnosti, dobljene za kompleksne primerjave, so pred preverjanji enega polja rbtree (z izjemo testa vrata+protokol), vendar zaenkrat zaostajajo za neposrednimi preverjanji z uporabo zgoščenke in obdelovalci spuščanja, ki temeljijo na netdev.

Ujemanje zapletenih seznamov NetFilter bo pospešeno v jedru Linux 5.7

Vir: opennet.ru

Dodaj komentar