Im Linux-Kernel 5.7 werden komplexe Listenabgleiche in NetFilter beschleunigt.

Entwickler des Filter- und Modulationssystems für Netzwerkpakete Netfilter haben eine Sammlung von Patches, die die Verarbeitung großer Übereinstimmungslisäen (nftables set) erheblich beschleunigen, bei denen eine Überprüfung der Kombination von Subnetzen, Netzwerkports, Protokoll und MAC-Adressen erforderlich ist. Die Patches wurden bereits in den Branch aufgenommen nf-next, der für die Integration in den Linux-Kernel 5.7 vorgeschlagen wird. Die größte Beschleunigung wurde durch Einsatz von AVX2-Anweisungen erreicht (zukünftig ist geplant, ähnliche Optimierungen auf Basis von NEON-Anweisungen für ARM zu veröffentlichen).

Die Optimierungen wurden in das Modul nft_set_pipapo (PIle PAcket POlicies), die das Problem der Zuordnung von Paketinhalt zu den in Filterregeln verwendeten beliebigen Bereichen von Feldzuständen löst, wie IP- und Netzwerkportbereichen (nft_set_rbtree und nft_set_hash manipulieren die Zuordnung von Intervallen und direkter Reflexion von Werten). Die vektorisierte Version von pipapo mit 256-Bit AVX2-Instruktionen auf einem AMD Epyc 7402-Prozessor zeigte eine Leistungssteigerung von 420 % beim Parsen von 30.000 Einträgen, die Port-Protokoll-Bindungen umfassen. Die Leistungssteigerung bei der Zuordnung von Subnetz- und Portnummern bei der Verarbeitung von 1.000 Einträgen betrug 87 % für IPv4 und 128 % für IPv6.

Im Linux-Kernel 5.7 werden komplexe Listenabgleiche in NetFilter beschleunigt.

Eine weitere Optimierung, die die Verwendung von 8-Bit-Zuordnungsgruppen anstelle von 4-Bit-Zuordnungsgruppen ermöglicht, zeigte ebenfalls einen spürbaren Leistungsschub: 66 % beim Parsen von 30.000 Port-Protokoll-Einträgen, 43 % für Subnetz_IPv4-Port und 61 % für Subnetz_IPv6-Port. Insgesamt, unter Berücksichtigung der AVX2-Optimierungen, erhöhte sich die Leistung von pipapo in den genannten Tests um 766 %, 168 % und 269 % respektive. Die für komplexe Zuordnungen erzielten Werte übertreffen die Überprüfungen einzelner Felder in rbtree (außer bei dem Test der Port+Protokoll-Bindung), aber sie hinken momentan hinter den direkten Überprüfungen mittels Hashes und Drop-Handlern auf Basis von netdev hinterher.

Im Linux-Kernel 5.7 werden komplexe Listenabgleiche in NetFilter beschleunigt.

Quelle: opennet.ru

Erwerben Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster