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

تم نشر إصدار nftables لتصفية الحزم 0.9.9، لتوحيد واجهات تصفية الحزم لـ IPv4 وIPv6 وARP وجسور الشبكة (التي تهدف إلى استبدال iptables وip6table وarptables وebtables). في الوقت نفسه، تم نشر إصدار المكتبة المصاحبة libnftnl 1.2.0، مما يوفر واجهة برمجة تطبيقات منخفضة المستوى للتفاعل مع النظام الفرعي nf_tables. تم تضمين التغييرات المطلوبة لتشغيل إصدار nftables 0.9.9 في Linux kernel 5.13-rc1.

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

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

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

  • تم تنفيذ القدرة على نقل المعالجة الانسيابية إلى جانب محول الشبكة، وتم تمكينها باستخدام علامة "إلغاء التحميل". Flowtable هي آلية لتحسين مسار إعادة توجيه الحزمة، حيث يتم تطبيق المرور الكامل لجميع سلاسل معالجة القواعد على الحزمة الأولى فقط، ويتم إعادة توجيه جميع الحزم الأخرى في التدفق مباشرة. الجدول ip العالمي {flowtable f {مرشح أولوية دخول الخطاف + 1 جهاز = {lan3، lan0، wan} تفريغ الأعلام} سلسلة للأمام {نوع مرشح مرشح أولوية ربط الأمام ؛ قبول السياسة؛ بروتوكول IP { tcp، udp } تدفق إضافة @f } سلسلة منشور { نوع nat هوك postrouting الأولوية التصفية؛ قبول السياسة؛ oifname "wan" حفلة تنكرية } }
  • تمت إضافة دعم لإرفاق علامة المالك بالجدول لضمان الاستخدام الحصري للجدول من خلال العملية. عند انتهاء العملية، يتم حذف الجدول المرتبط بها تلقائيًا. يتم عرض معلومات حول العملية في تفريغ القواعد في شكل تعليق: table ip x { # progname nft flags Owner chain y { type filter Hook input Priority filter; قبول السياسة؛ حزم العداد 1 بايت 309 } }
  • تمت إضافة دعم لمواصفات IEEE 802.1ad (تكديس VLAN أو QinQ)، والتي تحدد وسيلة لاستبدال علامات VLAN المتعددة في إطار Ethernet واحد. على سبيل المثال، للتحقق من نوع إطار Ethernet الخارجي 8021ad ومعرف vlan = 342، يمكنك استخدام البناء ... ether type 802.1ad vlan id 342 للتحقق من النوع الخارجي لإطار Ethernet 8021ad/vlan id=1، المتداخل 802.1 q/vlan id=2 وتغليف حزم IP الإضافية: ... نوع الأثير 8021ad vlan id 1 vlan type 8021q vlan id 2 vlan type ip counter
  • تمت إضافة دعم لإدارة الموارد باستخدام مجموعات cgroups الهرمية الموحدة v2. يتمثل الاختلاف الرئيسي بين cgroups v2 وv1 في استخدام تسلسل هرمي مشترك لمجموعات cgroups لجميع أنواع الموارد، بدلاً من التسلسلات الهرمية المنفصلة لتخصيص موارد وحدة المعالجة المركزية، وتنظيم استهلاك الذاكرة، والإدخال/الإخراج. على سبيل المثال، للتحقق مما إذا كان سلف المقبس في المستوى الأول cgroupv2 يتطابق مع قناع "system.slice"، يمكنك استخدام البناء: ... مقبس cgroupv2 المستوى 1 "system.slice"
  • تمت إضافة القدرة على التحقق من مكونات حزم SCTP (ستظهر الوظيفة المطلوبة لذلك في Linux kernel 5.14). على سبيل المثال، للتحقق مما إذا كانت الحزمة تحتوي على قطعة من النوع "بيانات" والحقل "نوع": ... توجد بيانات قطعة sctp ... نوع بيانات قطعة sctp 0
  • تم تسريع تنفيذ عملية تحميل القاعدة بمقدار الضعف تقريبًا باستخدام العلامة "-f". كما تم تسريع إخراج قائمة القواعد.
  • يتم توفير نموذج مضغوط للتحقق من تعيين بتات العلم. على سبيل المثال، للتحقق من عدم تعيين بتات الحالة snat وdnat، يمكنك تحديد: ... ct Status ! snat,dnat للتحقق من تعيين بت Syn في قناع البت Syn,ack: ... إشارات TCP Syn / Syn,ack للتحقق من عدم تعيين بتات الزعنفة والأولى في قناع البت Syn,ack,fin,rst: ... أعلام TCP ! = fin,rst / Syn,ack,fin,rst
  • السماح بالكلمة الأساسية "الحكم" في تعريفات نوع المجموعة/الخريطة: إضافة خريطة xm { typeof iifname . بروتوكول الملكية الفكرية المنفذ الرابع : الحكم ;}

المصدر: opennet.ru

إضافة تعليق