FreeBSD از پروتکل Netlink مورد استفاده در هسته لینوکس پشتیبانی می کند

پایگاه کد FreeBSD از پروتکل ارتباطی Netlink (RFC 3549) استفاده می کند که در لینوکس برای سازماندهی تعامل بین هسته و فرآیندها در فضای کاربر استفاده می شود. این پروژه محدود به پشتیبانی از خانواده NETLINK_ROUTE از عملیات برای مدیریت وضعیت زیرسیستم شبکه در هسته است.

در شکل فعلی، لایه پشتیبانی Netlink به FreeBSD اجازه می‌دهد تا از ابزار آی‌پی لینوکس از بسته iproute2 برای مدیریت رابط‌های شبکه، تنظیم آدرس‌های IP، پیکربندی مسیریابی و دستکاری اشیاء nexthop استفاده کند که وضعیت مورد استفاده برای ارسال یک بسته را به مقصد مورد نظر ذخیره می‌کند. پس از کمی تغییر فایل های هدر، امکان استفاده از Netlink در بسته مسیریابی Bird وجود دارد.

پیاده سازی Netlink برای FreeBSD به عنوان یک ماژول هسته قابل بارگذاری بسته بندی شده است که در صورت امکان، روی سایر زیرسیستم های هسته تأثیر نمی گذارد و صف های وظیفه جداگانه (tasqueue) برای پردازش پیام های دریافتی از طریق پروتکل و انجام عملیات در حالت ناهمزمان ایجاد می کند. دلیل پورت کردن نت‌لینک نبود مکانیزم استاندارد برای تعامل با زیرسیستم‌های هسته است که منجر به اختراع پروتکل‌های زیرسیستم‌ها و درایورهای مختلف می‌شود.

Netlink یک لایه ارتباطی یکپارچه و یک قالب پیام قابل توسعه را ارائه می دهد که می تواند به عنوان یک واسطه عمل کند که به طور خودکار داده های متفاوت از منابع مختلف را در یک درخواست واحد ترکیب می کند. به عنوان مثال، زیرسیستم های FreeBSD مانند devd، jail و pfilctl را می توان به Netlink منتقل کرد، اکنون با استفاده از فراخوانی ioctl خود، که ایجاد برنامه های کاربردی برای کار با این زیرسیستم ها را بسیار ساده می کند. علاوه بر این، استفاده از Netlink برای اصلاح اشیاء و گروه های nexthop در پشته مسیریابی، امکان تعامل کارآمدتر با فرآیندهای مسیریابی فضای کاربر را فراهم می کند.

ویژگی هایی که در حال حاضر پیاده سازی شده اند:

  • دریافت اطلاعات در مورد مسیرها، اشیاء و گروه های nexthops، رابط های شبکه، آدرس ها و میزبان های همسایه (arp/ndp).
  • ایجاد اعلان در مورد ظاهر و قطع رابط های شبکه، تنظیم و حذف آدرس ها، افزودن و حذف مسیرها.
  • اضافه کردن و حذف مسیرها، اشیاء و گروه های nexthops، دروازه ها، رابط های شبکه.
  • ادغام با رابط Rtsock برای مدیریت جدول مسیریابی.

منبع: opennet.ru

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