Linux çekirdeği 5.7, NetFilter'da karmaşık liste eşleştirmeyi hızlandıracak

Ağ paketleri için Netfilter filtreleme ve değiştirme alt sisteminin geliştiricileri yayınlanan alt ağların, ağ bağlantı noktalarının, protokolün ve MAC adreslerinin bir kombinasyonunun kontrol edilmesini gerektiren büyük eşleşme listelerinin (nftables seti) işlenmesini önemli ölçüde hızlandıran bir dizi yama. Yamalar zaten şubeye kabul edildi nf-sonrakiLinux 5.7 çekirdeğine dahil edilmesi önerilecek. En dikkat çekici hızlanma sayesinde elde edildi ilgi çekici AVX2 talimatları (gelecekte ARM için NEON talimatlarına dayalı benzer optimizasyonların yayınlanması planlanmaktadır).

Modülde yer alan optimizasyonlar nft_set_pipapo (PIle PAcket POlicies), bir paketin içeriğini, IP ve ağ bağlantı noktası aralıkları (nft_set_rbtree ve nft_set_hash, aralık eşleştirmeyi ve değerlerin doğrudan yansımasını yönetir) gibi filtreleme kurallarında kullanılan isteğe bağlı alan durumu aralıklarıyla eşleştirme sorununu çözer. AMD Epyc 256 işlemcili bir sistemde 2 bit AVX7402 talimatları kullanılarak vektörleştirilen pipapo sürümü, port-protokol kombinasyonları dahil 420 bin kaydı ayrıştırırken %30 performans artışı gösterdi. 1000 kayıt ayrıştırılırken bir alt ağ ve bağlantı noktası numarası kombinasyonu karşılaştırıldığında artış, IPv87 için %4 ve IPv128 için %6 idi.

Linux çekirdeği 5.7, NetFilter'da karmaşık liste eşleştirmeyi hızlandıracak

8 bit yerine 4 bitlik eşleşme gruplarının kullanılmasına izin veren başka bir optimizasyon da önemli performans kazanımları gösterdi: 66 bin bağlantı noktası protokolü girişi ayrıştırılırken %30, subnet_IPv43 bağlantı noktası için %4 ve subnet_IPv61 bağlantı noktası için %6. Toplamda, AVX2 optimizasyonları dikkate alındığında pipapo'nun performansı bu testlerde sırasıyla %766, %168 ve %269 oranında arttı. Karmaşık karşılaştırmalar için elde edilen özellikler, tek saha kontrollerinin ilerisindedir. rbağacı (bağlantı noktası+protokol testi hariç), ancak şu ana kadar doğrudan kontrollerin gerisinde kalıyorlar. karmalar ve netdev'e dayalı bırakma işleyicileri.

Linux çekirdeği 5.7, NetFilter'da karmaşık liste eşleştirmeyi hızlandıracak

Kaynak: opennet.ru

Yorum ekle