nftables حزمة مرشح 1.0.1 الإصدار

تم نشر إصدار nftables 1.0.1 لتصفية الحزم، لتوحيد واجهات تصفية الحزم لـ IPv4 وIPv6 وARP وجسور الشبكة (التي تهدف إلى استبدال iptables وip6table وarptables وebtables). تم تضمين التغييرات المطلوبة لتشغيل إصدار nftables 1.0.1 في Linux kernel 5.16-rc1.

تتضمن حزمة nftables مكونات مرشح الحزمة التي تعمل في مساحة المستخدم ، بينما يتم توفير مستوى kernel بواسطة النظام الفرعي nf_tables ، والذي كان جزءًا من Linux kernel منذ الإصدار 3.13. على مستوى النواة ، يتم توفير واجهة عامة مستقلة عن البروتوكول توفر الوظائف الأساسية لاستخراج البيانات من الحزم ، وتنفيذ العمليات على البيانات ، والتحكم في التدفق.

يتم تجميع قواعد التصفية نفسها والمعالجات الخاصة بالبروتوكول في رمز بايت مساحة المستخدم ، وبعد ذلك يتم تحميل هذا الرمز الثانوي في النواة باستخدام واجهة Netlink ويتم تنفيذه في النواة في جهاز ظاهري خاص يشبه BPF (مرشحات Berkeley Packet). هذا النهج يجعل من الممكن تقليل حجم كود التصفية الذي يعمل على مستوى النواة بشكل كبير ونقل جميع وظائف قواعد الإعراب ومنطق العمل مع البروتوكولات إلى مساحة المستخدم.

الابتكارات الرئيسية:

  • تقليل استهلاك الذاكرة عند تحميل مجموعة كبيرة وقوائم الخرائط.
  • تم تسريع عملية إعادة تحميل قوائم المجموعة والخريطة.
  • تم تسريع إخراج الجداول والسلاسل المحددة في مجموعات القواعد الكبيرة. على سبيل المثال، وقت تنفيذ أمر "nft list Ruleset" لعرض مجموعة من القواعد بـ 100 ألف صف هو 3.049 ثانية، وعند إخراج جداول nat وfilter فقط ("nft list table nat"، "nft list table filter" ") تم تقليله إلى 1.969 و0.697 ثانية.
  • تم تسريع تنفيذ الاستعلامات باستخدام خيار "--terse" عند معالجة القواعد ذات قوائم المجموعات والخرائط الكبيرة.
  • من الممكن تصفية حركة المرور من سلسلة "الخروج"، والتي تتم معالجتها على نفس مستوى معالج الخروج في سلسلة netdev (خطاف الخروج)، أي. في المرحلة التي يتلقى فيها برنامج التشغيل حزمة من مكدس شبكة kernel. جدول مرشح netdev {خروج السلسلة {نوع أجهزة خروج خطاف المرشح = {eth0، eth1} الأولوية 0؛ مجموعة الأولوية الفوقية IP خريطة الصدر { 192.168.10.2 : abcd:2، 192.168.10.3 : abcd:3 } } }
  • يسمح بمطابقة وتعديل البايتات في رأس الحزمة ومحتوياتها عند إزاحة معينة. # nft إضافة القاعدة xy @ih,32,32 0x14000000 عداد # nft إضافة القاعدة xy @ih,32,32 مجموعة 0x14000000 العداد

المصدر: opennet.ru

إضافة تعليق