انتشار فیلتر بسته nftables 1.0.1

انتشار فیلتر بسته nftables 1.0.1 منتشر شده است که رابط های فیلتر بسته را برای IPv4، IPv6، ARP و پل های شبکه یکپارچه می کند (با هدف جایگزینی iptables، ip6table، arptables و ebtables). تغییرات مورد نیاز برای اجرای nftables 1.0.1 در هسته لینوکس 5.16-rc1 گنجانده شده است.

بسته nftables شامل اجزای فیلتر بسته است که در فضای کاربر اجرا می شود، در حالی که کار در سطح هسته توسط زیرسیستم nf_tables ارائه می شود که از زمان انتشار 3.13 بخشی از هسته لینوکس بوده است. سطح هسته تنها یک رابط عمومی مستقل از پروتکل ارائه می دهد که عملکردهای اساسی را برای استخراج داده ها از بسته ها، انجام عملیات داده و کنترل جریان ارائه می دهد.

قوانین فیلتر و کنترل کننده های خاص پروتکل در بایت کد در فضای کاربر کامپایل می شوند، پس از آن این بایت کد با استفاده از رابط Netlink در هسته بارگذاری می شود و در هسته در یک ماشین مجازی ویژه که یادآور BPF (فیلترهای بسته برکلی) است، اجرا می شود. این رویکرد به شما این امکان را می دهد که اندازه کدهای فیلترینگ در حال اجرا در سطح هسته را به میزان قابل توجهی کاهش دهید و تمام عملکردهای تجزیه قوانین و منطق کار با پروتکل ها را به فضای کاربر منتقل کنید.

نوآوری های اصلی:

  • کاهش مصرف حافظه هنگام بارگیری لیست های بزرگ مجموعه و نقشه.
  • بارگیری مجدد لیست های مجموعه و نقشه تسریع شده است.
  • خروجی میزها و زنجیرهای انتخاب شده در مجموعه قوانین بزرگ تسریع شده است. به عنوان مثال، زمان اجرای دستور "nft list ruleset" برای نمایش مجموعه ای از قوانین با 100 هزار ردیف 3.049 ثانیه است و هنگام خروجی فقط جداول nat و filter ("nft list table nat"، "nft list table filter" ”) به 1.969 و 0.697 ثانیه کاهش می یابد.
  • اجرای پرس‌و‌جوها با گزینه «--trese» هنگام پردازش قوانین با فهرست‌های مجموعه و نقشه‌های بزرگ تسریع شده است.
  • امکان فیلتر کردن ترافیک از زنجیره "خروج" وجود دارد که در همان سطح کنترل کننده خروج در زنجیره netdev (قلاب خروج) پردازش می شود. در مرحله ای که راننده یک بسته از پشته شبکه هسته دریافت می کند. جدول netdev filter { chain egress { type filter hook egress devices = { eth0, eth1 } priority 0; تنظیم اولویت متا ip sadr map { 192.168.10.2 : abcd:2, 192.168.10.3 : abcd:3 } }
  • تطبیق و اصلاح بایت‌ها در سرصفحه و محتویات یک بسته را در یک آفست مشخص می‌دهد. # nft add rule xy @ih,32,32 0x14000000 counter # nft add rule xy @ih,32,32 set 0x14000000 counter

منبع: opennet.ru

اضافه کردن نظر