nftables 0.9.9 پیکٹ فلٹر جاری کر دیا گیا ہے۔ یہ IPv4، IPv6، ARP، اور نیٹ ورک پلوں کے لیے پیکٹ فلٹرنگ انٹرفیس کو متحد کرتا ہے (iptables، ip6table، arptables، اور ebtables کے متبادل کے طور پر ہدف بنایا گیا ہے)۔ ساتھ والی libnftnl 1.2.0 لائبریری، جو کہ nf_tables سب سسٹم کے ساتھ تعامل کے لیے ایک نچلی سطح کا API فراہم کرتی ہے، بیک وقت جاری کی گئی ہے۔ nftables 0.9.9 کے لیے درکار تبدیلیاں کرنل میں شامل کر دی گئی ہیں۔ Linux 5.13-rc1۔
nftables پیکیج میں پیکٹ فلٹر کے اجزاء ہوتے ہیں جو صارف کی جگہ پر کام کرتے ہیں، جبکہ کرنل لیول کا کام nf_tables سب سسٹم کے ذریعے فراہم کیا جاتا ہے، جو کہ کرنل کا حصہ ہے۔ Linux ریلیز 3.13 کے بعد سے، کرنل کی سطح پر صرف ایک عام پروٹوکول سے آزاد انٹرفیس فراہم کیا جاتا ہے، جو پیکٹوں سے ڈیٹا نکالنے، ڈیٹا آپریشنز کرنے، اور فلو کنٹرول کے لیے بنیادی فعالیت فراہم کرتا ہے۔
فلٹرنگ کے قواعد خود اور پروٹوکول کے مخصوص ہینڈلرز کو صارف کی جگہ میں بائیک کوڈ میں مرتب کیا جاتا ہے، جس کے بعد اس بائی کوڈ کو نیٹ لنک انٹرفیس کا استعمال کرتے ہوئے کرنل میں لوڈ کیا جاتا ہے اور کرنل میں خصوصی طور پر عمل میں لایا جاتا ہے۔ مجازی مشین، بی پی ایف (برکلے پیکٹ فلٹرز) کی یاد دلانے والا۔ یہ نقطہ نظر کرنل کی سطح پر چلنے والے فلٹرنگ کوڈ کے سائز میں نمایاں کمی کی اجازت دیتا ہے اور تمام اصول پارسنگ اور پروٹوکول منطق کو صارف کی جگہ میں منتقل کرتا ہے۔
اہم اختراعات:
- فلو ٹیبل پروسیسنگ کو نیٹ ورک اڈاپٹر کی طرف منتقل کرنے کی اہلیت کو لاگو کیا گیا ہے، 'آف لوڈ' پرچم کا استعمال کرتے ہوئے فعال کیا گیا ہے۔ فلو ٹیبل پیکٹ ری ڈائریکشن کے راستے کو بہتر بنانے کا ایک طریقہ کار ہے، جس میں تمام رول پروسیسنگ چینز کا مکمل گزر صرف پہلے پیکٹ پر لاگو ہوتا ہے، اور فلو میں موجود دیگر تمام پیکٹوں کو براہ راست فارورڈ کیا جاتا ہے۔ ٹیبل آئی پی گلوبل { فلو ٹیبل ایف { ہک انگریس ترجیحی فلٹر + 1 ڈیوائسز = { lan3، lan0، وان } فلیگ آف لوڈ } چین فارورڈ { ٹائپ فلٹر ہک فارورڈ ترجیحی فلٹر؛ پالیسی قبول کریں؛ ip پروٹوکول { tcp, udp } فلو ایڈ @f } چین پوسٹ { ٹائپ نیٹ ہک پوسٹ روٹنگ ترجیحی فلٹر؛ پالیسی قبول کریں؛ oifname "وان" بہانا } }
- کسی عمل کے ذریعے ٹیبل کے خصوصی استعمال کو یقینی بنانے کے لیے ٹیبل پر مالک کے جھنڈے کو منسلک کرنے کے لیے معاونت شامل کی گئی۔ جب کوئی عمل ختم ہوجاتا ہے، تو اس سے وابستہ جدول خود بخود حذف ہوجاتا ہے۔ عمل کے بارے میں معلومات کو رولز ڈمپ میں تبصرے کی شکل میں ظاہر کیا جاتا ہے: ٹیبل ip x { # progname nft flags owner chain y { type filter hook input priority filter; پالیسی قبول کریں؛ کاؤنٹر پیکٹ 1 بائٹس 309 } }
- IEEE 802.1ad تصریح (VLAN stacking یا QinQ) کے لیے معاونت شامل کی گئی ہے، جو ایک ایتھرنیٹ فریم میں متعدد VLAN ٹیگز کو تبدیل کرنے کے لیے ایک ذریعہ کی وضاحت کرتا ہے۔ مثال کے طور پر، بیرونی ایتھرنیٹ فریم 8021ad اور vlan id=342 کی قسم چیک کرنے کے لیے، آپ کنسٹرکشن استعمال کر سکتے ہیں... ایتھر ٹائپ 802.1ad vlan id 342 ایتھرنیٹ فریم 8021ad/vlan id=1، nested 802.1 کی بیرونی قسم کو چیک کرنے کے لیے q/vlan id=2 اور مزید آئی پی پیکٹ انکیپسولیشن: ... ایتھر ٹائپ 8021ad vlan id 1 vlan type 8021q vlan id 2 vlan type ip counter
- متحد درجہ بندی cgroups v2 کا استعمال کرتے ہوئے وسائل کے انتظام کے لیے معاونت شامل کی گئی۔ cgroups v2 اور v1 کے درمیان اہم فرق CPU وسائل مختص کرنے، میموری کی کھپت کو ریگولیٹ کرنے اور I/O کے لیے الگ الگ درجہ بندی کے بجائے تمام قسم کے وسائل کے لیے مشترکہ cgroups کے درجہ بندی کا استعمال ہے۔ مثال کے طور پر، یہ جانچنے کے لیے کہ آیا پہلی سطح پر کسی ساکٹ کا آباؤ اجداد cgroupv2 "system.slice" کے ماسک سے میل کھاتا ہے، آپ کنسٹرکشن استعمال کر سکتے ہیں: ... ساکٹ cgroupv2 لیول 1 "system.slice"
- ایس سی ٹی پی پیکٹ کے اجزاء کو چیک کرنے کی صلاحیت شامل کی گئی (آپریشن کے لیے درکار فعالیت دانا میں ظاہر ہوگی Linux 5.14)۔ مثال کے طور پر، یہ چیک کرنے کے لیے کہ آیا ایک پیکٹ میں 'ڈیٹا' کی قسم اور 'ٹائپ' فیلڈ کے ساتھ ایک حصہ ہے: … sctp chunk data موجود ہے … sctp chunk data type 0
- رول لوڈنگ آپریشن پر عمل درآمد کو "-f" پرچم کا استعمال کرتے ہوئے تقریبا دو بار تیز کیا گیا ہے۔ قواعد کی فہرست کی پیداوار میں بھی تیزی لائی گئی ہے۔
- یہ چیک کرنے کے لیے ایک کمپیکٹ فارم فراہم کیا گیا ہے کہ آیا فلیگ بٹس سیٹ ہیں یا نہیں۔ مثال کے طور پر، یہ چیک کرنے کے لیے کہ snat اور dnat اسٹیٹس بٹس سیٹ نہیں ہیں، آپ وضاحت کر سکتے ہیں: ... ct status ! snat,dnat یہ چیک کرنے کے لیے کہ Syn بٹ بٹ ماسک میں سیٹ ہے syn,ack: ... tcp فلیگز syn/syn,ack یہ چیک کرنے کے لیے کہ fin اور rst بٹس bitmask syn,ack,fin,rst میں سیٹ نہیں ہیں: ... tcp پرچم! = fin,rst/syn,ack,fin,rst
- سیٹ/نقشہ کی قسم کی تعریف میں "فیصلہ" کلیدی لفظ کی اجازت دیں: نقشہ xm { typeof iifname شامل کریں۔ آئی پی پروٹوکول th dport : فیصلہ؛}
ماخذ: opennet.ru
