В ядрото на Linux 5.7 ще бъде ускорено сложното мапиране на списъци в NetFilter.

Разработчиците на подсистемата за филтриране и модификация на мрежови пакети Netfilter публикуваха набор от пачове, които значително ускоряват обработката на големи списъци за съпоставяне (nftables set), в които се изисква проверка на комбинацията от подмрежи, мрежови портове, протоколи и MAC адреси. Пачовете вече са приети в клон nf-next, който ще бъде предложен за включване в ядрото на Linux 5.7. Най-забележимото ускорение беше постигнато благодарение на използването на инструкции AVX2 (в бъдеще е планирано да бъдат публикувани подобни оптимизации на базата на инструкциите NEON за ARM).

Оптимизациите са внесени в модула nft_set_pipapo (PIle PAcket POlicies), който решава задачата за съпоставяне на съдържанието на пакета с приложимите правила за филтриране, произволни диапазони на полета, като диапазони IP и мрежови портове (nft_set_rbtree и nft_set_hash манипулират съпоставянето на интервалите и директно отразяване на стойностите). Версията на pipapo, векторизирана с помощта на 256-битови инструкции AVX2 на система с процесор AMD Epyc 7402, показа увеличение на производителността с 420% при анализа на 30 хиляди записа, включващи комбинации порт-протокол. Увеличението при съпоставяне на комбинация от подмрежа и номер на порт при анализ на 1000 записа беше 87% за IPv4 и 128% за IPv6.

В ядрото на Linux 5.7 ще бъде ускорено сложното мапиране на списъци в NetFilter.

Друга оптимизация, позволяваща използването на 8-битови групи за съпоставяне вместо 4-битови, също показа осезаемо увеличение на производителността: 66% при анализа на 30 хиляди записа порт-протокол, 43% — подмрежа_IPv4-порт и 61% — подмрежа_IPv6-порт. В крайна сметка, като се вземат предвид оптимизациите AVX2, производителността на pipapo се увеличи в посочените тестове с 766%, 168% и 269% съответно. Получените характеристики за сложните съпоставяния надвишават проверките на единичните полета в rbtree (с изключение на теста на комбинацията порт+протокол), но все още отстъпват на директните проверки с помощта на хешове и drop обработчици на базата netdev.

В ядрото на Linux 5.7 ще бъде ускорено сложното мапиране на списъци в NetFilter.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster