Ang NetFilter complex list matching ay mapapabilis sa Linux 5.7 kernel

Mga developer ng Netfilter filtering at modification subsystem para sa mga network packet nai-publish isang hanay ng mga patch na makabuluhang nagpapabilis sa pagproseso ng malalaking listahan ng tugma (nftables set), na nangangailangan ng pagsuri ng kumbinasyon ng mga subnet, network port, protocol at MAC address. Ang mga patch ay tinanggap na sa sangay nf-susunod, na imumungkahi para sa pagsasama sa Linux 5.7 kernel. Ang pinaka-kapansin-pansing acceleration ay nakamit salamat sa nakakaengganyo Mga tagubilin sa AVX2 (sa hinaharap ay pinlano na mag-publish ng mga katulad na pag-optimize batay sa mga tagubilin sa NEON para sa ARM).

Mga pag-optimize na kasama sa module nft_set_pipapo (PIle PAcket POlicies), na nilulutas ang problema sa pagtutugma ng mga nilalaman ng isang packet na may mga arbitrary na saklaw ng estado ng field na ginagamit sa mga panuntunan sa pag-filter, tulad ng mga saklaw ng IP at network port (nft_set_rbtree at nft_set_hash manipulate ang pagtutugma ng pagitan at direktang pagmuni-muni ng mga halaga). Ang bersyon ng pipapo vectorized gamit ang 256-bit AVX2 na mga tagubilin sa isang system na may AMD Epyc 7402 processor ay nagpakita ng 420% na pagtaas ng pagganap kapag nag-parse ng 30 libong mga tala kasama ang mga kumbinasyon ng port-protocol. Ang pagtaas kapag naghahambing ng kumbinasyon ng isang subnet at isang port number kapag nag-parse ng 1000 na tala ay 87% para sa IPv4 at 128% para sa IPv6.

Ang NetFilter complex list matching ay mapapabilis sa Linux 5.7 kernel

Ang isa pang pag-optimize, na nagpapahintulot sa paggamit ng 8-bit na mga pangkat ng pagtutugma sa halip na 4-bit, ay nagpakita rin ng makabuluhang mga nadagdag sa pagganap: 66% kapag nag-parse ng 30 libong mga entry sa port-protocol, 43% para sa subnet_IPv4-port, at 61% para sa subnet_IPv6-port. Sa kabuuan, isinasaalang-alang ang mga pag-optimize ng AVX2, tumaas ang pagganap ng pipapo sa mga pagsubok na ito ng 766%, 168% at 269%, ayon sa pagkakabanggit. Ang mga katangiang nakuha para sa mga kumplikadong paghahambing ay nauuna sa solong field check in rbtree (maliban sa pagsubok sa port+protocol), ngunit sa ngayon ay nahuhuli sila sa mga direktang pagsusuri gamit mga hash at i-drop ang mga humahawak batay sa netdev.

Ang NetFilter complex list matching ay mapapabilis sa Linux 5.7 kernel

Pinagmulan: opennet.ru

Magdagdag ng komento