Linux yadrosi 5.7 NetFilter-da murakkab ro'yxatni moslashtirishni tezlashtiradi

Tarmoq paketlari uchun Netfilter filtrlash va modifikatsiyalash quyi tizimini ishlab chiquvchilari e'lon qilindi kichik tarmoqlar, tarmoq portlari, protokol va MAC manzillari kombinatsiyasini tekshirishni talab qiladigan katta moslik ro'yxatlarini (nftables to'plami) qayta ishlashni sezilarli darajada tezlashtiradigan yamoqlar to'plami. Yamalar allaqachon filialga qabul qilingan nf-keyingi, Linux 5.7 yadrosiga kiritish uchun taklif qilinadi. Eng sezilarli tezlashtirish tufayli erishildi jalb qiluvchi AVX2 ko'rsatmalari (kelajakda ARM uchun NEON ko'rsatmalari asosida shunga o'xshash optimallashtirishlarni nashr etish rejalashtirilgan).

Optimallashtirish modulga kiritilgan nft_set_pipapo IP va tarmoq portlari diapazonlari (nft_set_rbtree va nft_set_hash intervallarni moslashtirish va qiymatlarni to'g'ridan-to'g'ri aks ettirishni manipulyatsiya qilish) kabi filtrlash qoidalarida ishlatiladigan ixtiyoriy maydon holati diapazonlari bilan paket mazmunini moslashtirish muammosini hal qiladigan (PIle PAcket POlicies). AMD Epyc 256 protsessorli tizimda 2-bitli AVX7402 ko'rsatmalari yordamida vektorlashtirilgan pipapo versiyasi port-protokol kombinatsiyalarini o'z ichiga olgan 420 ming yozuvni tahlil qilishda unumdorlikni 30% ga oshirdi. 1000 ta yozuvni tahlil qilishda pastki tarmoq va port raqami kombinatsiyasini solishtirganda o'sish IPv87 uchun 4% va IPv128 uchun 6% ni tashkil etdi.

Linux yadrosi 5.7 NetFilter-da murakkab ro'yxatni moslashtirishni tezlashtiradi

8-bit oʻrniga 4-bitli mos guruhlardan foydalanishga ruxsat beruvchi yana bir optimallashtirish ham sezilarli samaradorlikni koʻrsatdi: 66 ming port-protokol yozuvlarini tahlil qilishda 30%, subnet_IPv43-port uchun 4% va subnet_IPv61-port uchun 6%. Umuman olganda, AVX2 optimallashtirishlarini hisobga olgan holda, pipaponing ishlashi ushbu testlarda mos ravishda 766%, 168% va 269% ga oshdi. Murakkab taqqoslash uchun olingan xususiyatlar bitta maydon tekshiruvidan oldinroq rbtree (port+protokol testi bundan mustasno), lekin hozirgacha ular to'g'ridan-to'g'ri tekshirishlardan orqada qolmoqda xeshlar va netdev asosidagi tushirish ishlov beruvchilari.

Linux yadrosi 5.7 NetFilter-da murakkab ro'yxatni moslashtirishni tezlashtiradi

Manba: opennet.ru

a Izoh qo'shish