سيتم تسريع مطابقة قائمة NetFilter المعقدة في نواة Linux 5.7

مطورو نظام التصفية الفرعي وتعديل حزم شبكة Netfilter نشرت مجموعة من التصحيحات التي تسرع بشكل كبير معالجة قوائم الخرائط الكبيرة (مجموعة nftables) ، والتي تتطلب التحقق من مجموعة من الشبكات الفرعية ومنافذ الشبكة والبروتوكول وعناوين MAC. تم قبول الرقع بالفعل في الفرع نف المقبل، والتي سيتم اقتراحها لتضمينها في Linux 5.7 kernel. تم تحقيق أكبر تسارع ملحوظ بفضل ارتباط تعليمات AVX2 (في المستقبل ، من المخطط نشر تحسينات مماثلة بناءً على تعليمات NEON لـ ARM).

تم إجراء تحسينات على الوحدة النمطية nft_set_pipapo (PIle PAcket POlicies) ، والذي يحل مشكلة مطابقة محتويات الحزمة مع نطاقات تعسفية لحالات الحقل المستخدمة في قواعد التصفية ، مثل IP ونطاقات منافذ الشبكة (nft_set_rbtree و nft_set_hash يعالجان مطابقة الفاصل الزمني والانعكاس المباشر للقيم). أظهر إصدار من pipapo الموجه بتعليمات AVX256 2 بت على نظام به معالج AMD Epyc 7402 زيادة في الأداء بنسبة 420٪ عند تحليل 30 سجل تتضمن ارتباطات بروتوكول المنفذ. كانت الزيادة في مطابقة ارتباط من شبكة فرعية ورقم منفذ عند تحليل 1000 مدخلات 87٪ لـ IPv4 و 128٪ لـ IPv6.

سيتم تسريع مطابقة قائمة NetFilter المعقدة في نواة Linux 5.7

كما أظهر تحسين آخر ، يسمح باستخدام مجموعات تعيين 8 بت بدلاً من مجموعات 4 بت ، مكاسب أداء قابلة للقياس: 66٪ عند تحليل مدخلات بروتوكول منفذ 30k ، و 43٪ للمنفذ الفرعي_ IPv4 ، و 61٪ للمنفذ الفرعي_ IPv6. إجمالاً ، مع الأخذ في الاعتبار تحسينات AVX2 ، زاد أداء pipapo في هذه الاختبارات بنسبة 766٪ و 168٪ و 269٪ على التوالي. الخصائص التي تم الحصول عليها للمقارنات المعقدة تسبق اختبارات الحقول الفردية في com.rbtree (باستثناء اختبار المنفذ + البروتوكول) ، لكنهم حتى الآن يتخلفون عن الاختبارات المباشرة باستخدام تجزئات وإسقاط المعالجات القائمة على netdev.

سيتم تسريع مطابقة قائمة NetFilter المعقدة في نواة Linux 5.7

المصدر: opennet.ru

إضافة تعليق