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

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

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

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

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

  • تمت إضافة وضع تحسين القواعد، وتم تمكينه باستخدام خيار "-o" ("--optimize") الجديد، والذي يمكن دمجه مع خيار "--check" للتحقق من التغييرات في ملف مجموعة القواعد وتحسينها دون تحميله فعليًا . يسمح لك التحسين بدمج قواعد متشابهة، على سبيل المثال، القواعد: meta iifname eth1 ip Saddr 1.1.1.1 ip adddr 2.2.2.3 قبول meta iifname eth1 ip Saddr 1.1.1.2 ip adddr 2.2.2.5 قبول ip Saddr 1.1.1.1 ip Daddr 2.2.2.2 .2.2.2.2 قبول IP Saddr 3.3.3.3 IP Daddr XNUMX قطرة

    سيتم دمجها في meta iifname . ايب صدر. إب دادر { eth1 . 1.1.1.1. 2.2.2.3, eth1 . 1.1.1.2. 2.2.2.5 } قبول IP Saddr . IP Daddr VMAP { 1.1.1.1 . 2.2.2.2 : قبول، 2.2.2.2 . 3.3.3.3 : إسقاط }

    مثال للاستخدام: # nft -c -o -f Ruleset.test الدمج: Ruleset.nft:16:3-37: ip Daddr 192.168.0.1 قبول العداد Ruleset.nft:17:3-37: ip Daddr 192.168.0.2 قبول العداد Ruleset.nft:18:3-37: ip adddr 192.168.0.3 قبول العداد في: ip adddr { 192.168.0.1, 192.168.0.2, 192.168.0.3 } حزم العداد 0 بايت 0 قبول

  • تنفذ قوائم المجموعة القدرة على تحديد خيارات ip وtcp، بالإضافة إلى قطع sctp: set s5 { typeof ip option ra value items = { 1, 1024 } } set s7 { typeof sctpunkt init num-inbound-streams items = { 1, 4 } } chain c5 { ip option ra value @s5 Accept } chain c7 { sctp Chunk init num-inbound-streams @s7 Accept }
  • تمت إضافة دعم لخيارات TCP fastopen وmd5sig وmptcp.
  • تمت إضافة دعم لاستخدام النوع الفرعي mp-tcp في التعيينات: خيار tcp النوع الفرعي mptcp 1
  • تحسين كود التصفية من جانب النواة.
  • يتمتع Flowtable الآن بدعم كامل لتنسيق JSON.
  • تم توفير القدرة على استخدام إجراء "الرفض" في عمليات مطابقة إطار Ethernet. الأثير صدر aa:bb:cc:dd:ee:ff ip adddr 192.168.0.1 رفض

المصدر: opennet.ru

إضافة تعليق