Uparivanje NetFilter kompleksne liste će biti ubrzano u jezgru Linuxa 5.7

Programeri Netfilter podsistema filtriranja i modifikacije za mrežne pakete objavljeno set zakrpa koje značajno ubrzavaju obradu velikih lista podudaranja (nftables set), koje zahtijevaju provjeru kombinacije podmreža, mrežnih portova, protokola i MAC adresa. Zakrpe su već primljene u granu nf-sljedeći, koji će biti predložen za uključivanje u Linux 5.7 kernel. Najprimetnije ubrzanje postignuto je zahvaljujući angažovanje AVX2 instrukcije (u budućnosti se planira objavljivanje sličnih optimizacija baziranih na NEON instrukcijama za ARM).

Optimizacije uključene u modul nft_set_pipapo (PIle PAcket POlicies), koji rješava problem uparivanja sadržaja paketa sa proizvoljnim opsezima stanja polja koji se koriste u pravilima filtriranja, kao što su rasponi IP-a i mrežnih portova (nft_set_rbtree i nft_set_hash manipuliraju podudaranjem intervala i direktnom refleksijom vrijednosti). Verzija pipapo vektorizovanog korišćenjem 256-bitnih AVX2 instrukcija na sistemu sa AMD Epyc 7402 procesorom pokazala je povećanje performansi od 420% kada se analizira 30 hiljada zapisa uključujući kombinacije port-protokola. Povećanje kada se uporedi kombinacija podmreže i broja porta pri raščlanjivanju 1000 zapisa bilo je 87% za IPv4 i 128% za IPv6.

Uparivanje NetFilter kompleksne liste će biti ubrzano u jezgru Linuxa 5.7

Još jedna optimizacija, koja je dozvoljavala korištenje 8-bitnih grupa podudaranja umjesto 4-bitnih, također je pokazala značajne dobitke u performansama: 66% kada se analizira 30 hiljada unosa port-protokola, 43% za subnet_IPv4-port i 61% za subnet_IPv6-port. Ukupno, uzimajući u obzir AVX2 optimizacije, pipapove performanse su porasle u ovim testovima za 766%, 168% i 269%, respektivno. Dobijene karakteristike za složena poređenja su ispred provjera na jednom terenu rbtree (sa izuzetkom testa port+protokol), ali za sada zaostaju za direktnim provjerama korištenjem hashovi i rukovaoci ispuštanja zasnovani na netdev.

Uparivanje NetFilter kompleksne liste će biti ubrzano u jezgru Linuxa 5.7

izvor: opennet.ru

Dodajte komentar