FreeBSD 13.2 با پشتیبانی Netlink و WireGuard منتشر شد

پس از 11 ماه توسعه، FreeBSD 13.2 منتشر شد. تصاویر نصب برای معماری‌های amd64، i386، powerpc، powerpc64، powerpc64le، powerpcspe، armv6، armv7، aarch64 و riscv64 تولید می‌شوند. علاوه بر این، مجموعه‌هایی برای سیستم‌های مجازی‌سازی (QCOW2، VHD، VMDK، خام) و محیط‌های ابری Amazon EC2، Google Compute Engine و Vagrant آماده شده‌اند.

تغییرات کلیدی:

  • قابلیت ایجاد عکس های فوری از سیستم های فایل UFS و FFS با فعال بودن لاگ (به روز رسانی نرم افزاری) پیاده سازی شده است. همچنین پشتیبانی از ذخیره پس‌زمینه dump‌ها (در حال اجرا با پرچم «-L») با محتویات سیستم‌های فایل UFS نصب‌شده در زمان فعال بودن ژورنال اضافه شده است. یکی از ویژگی هایی که هنگام استفاده از لاگ در دسترس نیست، اجرای پس زمینه بررسی یکپارچگی با استفاده از ابزار fsck است.
  • ترکیب اصلی شامل یک درایور wg است که در سطح هسته با اجرای یک رابط شبکه برای VPN WireGuard کار می کند. برای استفاده از الگوریتم‌های رمزنگاری مورد نیاز درایور، API زیرسیستم رمزنگاری هسته FreeBSD گسترش داده شد، که به آن یک مهار اضافه شد که امکان استفاده از الگوریتم‌های کتابخانه libsodium را می‌دهد که در FreeBSD از طریق API استاندارد رمزنگاری پشتیبانی نمی‌شوند. . در طول فرآیند توسعه، بهینه‌سازی نیز انجام شد تا به طور مساوی بین وظایف رمزگذاری و رمزگشایی بسته‌ها به هسته‌های CPU تعادل برقرار کند، که باعث کاهش هزینه‌های اضافی هنگام پردازش بسته‌های WireGuard شد.

    آخرین تلاش برای گنجاندن WireGuard در FreeBSD در سال 2020 انجام شد، اما با رسوایی به پایان رسید، در نتیجه کد اضافه شده قبلی به دلیل کیفیت پایین، کار بی دقت با بافرها، استفاده از خرد به جای چک، اجرای ناقص حذف شد. پروتکل و نقض مجوز GPL. پیاده سازی جدید به طور مشترک توسط تیم های اصلی توسعه FreeBSD و WireGuard با مشارکت Jason A. Donenfeld، نویسنده VPN WireGuard، و John H. Baldwin، یک توسعه دهنده مشهور FreeBSD، آماده شده است. قبل از پذیرش کد جدید، بررسی کامل تغییرات با پشتیبانی بنیاد FreeBSD انجام شد.

  • پشتیبانی از پروتکل ارتباطی Netlink (RFC 3549)، که در لینوکس برای سازماندهی تعامل هسته با فرآیندهای موجود در فضای کاربر استفاده می‌شود، پیاده‌سازی شده است. این پروژه محدود به پشتیبانی از خانواده NETLINK_ROUTE از عملیات برای مدیریت وضعیت زیرسیستم شبکه در هسته است، که به FreeBSD اجازه می دهد تا از ابزار آی پی لینوکس از بسته iproute2 برای مدیریت رابط های شبکه، تنظیم آدرس های IP، پیکربندی مسیریابی و دستکاری nexthop استفاده کند. اشیایی که داده های حالت مورد استفاده برای انتقال بسته به مقصد مورد نظر را ذخیره می کنند.
  • همه فایل‌های اجرایی سیستم پایه در پلتفرم‌های 64 بیتی به‌طور پیش‌فرض دارای طرح‌بندی فضای آدرس (ASLR) هستند. برای غیرفعال کردن انتخابی ASLR، می توانید از دستورات "proccontrol -m aslr -s disable" یا "elfctl -e +noaslr" استفاده کنید.
  • در ipfw از جداول radix برای جستجوی آدرس های MAC استفاده می شود که به شما امکان می دهد جدول هایی با آدرس های مک ایجاد کنید و از آنها برای فیلتر کردن ترافیک استفاده کنید. به عنوان مثال: جدول ipfw 1 نوع mac ipfw جدول 1 را اضافه کنید 11:22:33:44:55:66/48 ipfw اضافه کنید skipto tablearg src-mac 'table(1)' ipfw اضافه کنید deny src-mac 'table(1, 100 )' ipfw add deny lookup dst-mac 1
  • ماژول‌های هسته dpdk_lpm4 و dpdk_lpm6 اضافه شده‌اند و برای بارگیری از طریق loader.conf با پیاده‌سازی الگوریتم جستجوی مسیر DIR-24-8 برای IPv4/IPv6 در دسترس هستند، که به شما امکان می‌دهد توابع مسیریابی را برای میزبان‌هایی با جداول مسیریابی بسیار بزرگ بهینه کنید. در تست ها افزایش سرعت 25 درصد مشاهده می شود. برای پیکربندی ماژول ها، می توان از ابزار استاندارد مسیر استفاده کرد (گزینه FIB_ALGO اضافه شده است).
  • اجرای سیستم فایل ZFS برای انتشار OpenZFS 2.1.9 به روز شده است. اسکریپت راه اندازی zfskeys بارگیری خودکار کلیدهای ذخیره شده در سیستم فایل ZFS را فراهم می کند. اضافه شده zpoolreguid RC جدید برای اختصاص یک GUID به یک یا چند zpool (به عنوان مثال برای محیط های مجازی سازی داده های مشترک مفید است).
  • Hypervisor Bhyve و ماژول vmm از اتصال بیش از 15 CPU مجازی به سیستم مهمان پشتیبانی می کنند (تنظیم شده از طریق sysctl hw.vmm.maxcpu). ابزار bhyve شبیه سازی دستگاه ورودی virtio را پیاده سازی می کند، که با آن می توانید رویدادهای ورودی صفحه کلید و ماوس را در سیستم مهمان جایگزین کنید.
  • در KTLS، اجرای پروتکل TLS که در سطح هسته FreeBSD اجرا می شود، پشتیبانی از شتاب سخت افزاری TLS 1.3 با بارگذاری برخی عملیات مربوط به پردازش بسته های ورودی رمزگذاری شده به کارت شبکه اضافه شده است. پیش از این، ویژگی مشابهی برای TLS 1.1 و TLS 1.2 در دسترس بود.
  • در اسکریپت راه اندازی growfs، هنگام گسترش سیستم فایل ریشه، می توان یک پارتیشن swap اضافه کرد، اگر چنین پارتیشنی در ابتدا وجود نداشته باشد (به عنوان مثال، هنگام نصب یک تصویر سیستم آماده بر روی کارت SD مفید است). برای کنترل اندازه swap، یک پارامتر جدید growfs_swap_size به rc.conf اضافه شده است.
  • اسکریپت راه‌اندازی میزبان تضمین می‌کند که اگر فایل /etc/hostid موجود نباشد و UUID از سخت‌افزار قابل دریافت نباشد، یک UUID تصادفی ایجاد می‌شود. همچنین یک فایل /etc/machine-id با نمایشی فشرده از شناسه میزبان (بدون خط فاصله) اضافه شده است.
  • متغیرهای defaultrouter_fibN و ipv6_defaultrouter_fibN به rc.conf اضافه شده اند که از طریق آن می توانید مسیرهای پیش فرض را به جداول FIB غیر از جدول اصلی اضافه کنید.
  • پشتیبانی از هش SHA-512/224 به کتابخانه libmd اضافه شده است.
  • کتابخانه pthread از معنای توابع مورد استفاده در لینوکس پشتیبانی می کند.
  • پشتیبانی برای رمزگشایی تماس های سیستم لینوکس به kdump اضافه شده است. پشتیبانی از ردیابی تماس سیستم به سبک لینوکس به kdump و sysdecode اضافه شده است.
  • ابزار killall اکنون توانایی ارسال سیگنال به فرآیندهای متصل به یک ترمینال خاص را دارد (به عنوان مثال، "killall -t pts/1").
  • ابزار nproc برای نمایش تعداد بلوک های محاسباتی موجود در فرآیند فعلی اضافه شده است.
  • پشتیبانی از رمزگشایی پارامترهای ACS (خدمات کنترل دسترسی) به ابزار pciconf اضافه شده است.
  • تنظیمات SPLIT_KERNEL_DEBUG به هسته اضافه شده است که به شما امکان می دهد اطلاعات اشکال زدایی هسته و ماژول های هسته را در فایل های جداگانه ذخیره کنید.
  • ABI لینوکس تقریباً با پشتیبانی از مکانیزم vDSO (اشیاء مشترک پویا مجازی) کامل شده است، که مجموعه محدودی از تماس های سیستمی را بدون تغییر زمینه در فضای کاربر در دسترس است. ABI لینوکس در سیستم‌های ARM64 با پیاده‌سازی معماری AMD64 برابری کرده است.
  • پشتیبانی سخت افزاری بهبود یافته اضافه شدن پشتیبانی از نظارت بر عملکرد (hwpmc) برای پردازنده های Intel Alder Lake. درایور iwlwifi برای کارت های بی سیم اینتل با پشتیبانی از تراشه های جدید و استاندارد 802.11ac به روز شده است. درایور rtw88 برای کارت های بی سیم Realtek با رابط PCI اضافه شد. قابلیت های لایه linuxkpi برای استفاده با درایورهای لینوکس در FreeBSD گسترش یافته است.
  • کتابخانه OpenSSL به نسخه 1.1.1t، LLVM/Сlang به نسخه 14.0.5، و سرور SSH و سرویس گیرنده به OpenSSH 9.2p1 به روز شده است (نسخه قبلی از OpenSSH 8.8p1 استفاده می کرد). همچنین نسخه های bc 6.2.4، expat 2.5.0، file 5.43، less 608، libarchive 3.6.2، sendmail 8.17.1، sqlite 3.40.1، unbound 1.17.1، zlib 1.2.13 به روز شده اند.

علاوه بر این، اعلام شده است که با شروع شعبه FreeBSD 14.0، رمزهای عبور یکبار مصرف OPIE، درایورهای ce و cp، درایورهای کارت های ISA، ابزارهای mergemaster و minigzip، اجزای ATM در نتگراف (NgATM)، فرآیند پس زمینه telnetd و کلاس VINUM در ژئوم.

منبع: opennet.ru

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