في FreeBSD أضافوا دعمًا لبروتوكول Netlink المستخدم في Linux

فري

يعد FreeBSD نظامًا راسخًا لبناء خوادم الإنترنت والإنترانت. يوفر خدمات شبكة موثوقة إلى حد ما وإدارة ذاكرة فعالة.

قبل عدة أيام تم إصدار الخبر أن الكود الأساسي لـ اعتمد FreeBSD تطبيق جديد لبروتوكول الاتصال نتلينك (RFC 3549) والذي يستخدم في لينكس للتواصل بين النواة والعمليات في مساحة المستخدم.

عائلة المقبس نتلينك هي واجهة Linux kernel التي تستخدم للاتصال بين العمليات (IPC) بين عمليات kernel و userpace وبين عمليات مساحة المستخدم المختلفة ، على غرار مآخذ مجال Unix.

على غرار مآخذ مجال Unix وعلى عكس مآخذ INET ، لا يمكن لاتصالات Netlink اجتياز حدود المضيف. ومع ذلك ، بينما تستخدم مآخذ مجال Unix مساحة اسم نظام الملفات ، تتم معالجة عمليات Netlink بشكل عام بواسطة معرفات العمليات (PIDs).

تم تصميم Netlink واستخدامه لنقل معلومات الشبكة المتنوعة بين مساحة kernel وعمليات مساحة المستخدم. تستخدم أدوات الشبكة ، مثل عائلة iproute2 والأدوات المساعدة المستخدمة لتكوين برامج التشغيل اللاسلكية المستندة إلى mac80211 ، Netlink للتواصل مع Linux kernel من مساحة المستخدم. يوفر Netlink واجهة قياسية قائمة على مأخذ التوصيل لعمليات مساحة المستخدم وواجهة برمجة تطبيقات من جانب kernel للاستخدام الداخلي بواسطة وحدات kernel النمطية. استخدم Netlink في الأصل عائلة AF_NETLINK من المقابس.

حتى الآن في شكله الحالي ، تسمح طبقة دعم Netlink لـ FreeBSD باستخدام أداة Linux ip المساعدة حزمة iproute2 لإدارة واجهات الشبكة ، وتعيين عناوين IP ، وتكوين التوجيه ، ومعالجة كائنات nexthop التي تخزن الحالة المستخدمة لإعادة توجيه الحزمة إلى الوجهة المطلوبة. بعد إجراء تغيير طفيف لملفات الرأس ، من الممكن استخدام Netlink في حزمة توجيه Bird.

تطبيق Netlink لـ FreeBSD يتم تعبئتها كوحدة نواة قابلة للتحميل هذا ، إذا أمكن ، لا يؤثر على أنظمة kernel الفرعية الأخرى ويقوم بإنشاء قوائم انتظار مهام منفصلة (tasqueue) لمعالجة الرسائل الواردة من خلال البروتوكول وإجراء العمليات في الوضع غير المتزامن. سبب نقل Netlink هو عدم وجود آلية قياسية للتفاعل مع أنظمة kernel الفرعية ، مما يؤدي إلى اختراع أنظمة فرعية وسائقين مختلفين لبروتوكولاتهم الخاصة.

نتلينك يقدم طبقة اتصال موحدة وتنسيق رسالة قابل للتوسيع والتي يمكن أن تعمل كوسيط يجمع تلقائيًا البيانات المتباينة من مصادر مختلفة في طلب واحد. على سبيل المثال ، يمكن نقل أنظمة FreeBSD الفرعية مثل devd و jail و pfilctl إلى Netlink ، باستخدام استدعاءات ioctl الخاصة بها ، والتي ستعمل على تبسيط إنشاء التطبيقات للعمل مع هذه الأنظمة الفرعية. بالإضافة إلى ذلك ، فإن استخدام Netlink لتعديل كائنات ومجموعات nexthop في مكدس التوجيه سيسمح بتفاعل أكثر كفاءة مع عمليات توجيه مساحة المستخدم.

الواجهات ، العناوين ، المسارات ، جدار الحماية ، الألياف ، الشبكات الافتراضية ، إلخ. يتم التحكم فيها عبر netlink. إنه بروتوكول غير متزامن قائم على TLV يوفر اتصالات 1-1 و 1-عدة. يدعم التطبيق الحالي المجموعة الفرعية من عائلة NETLINK_ROUTE. يتوافق التطبيق أيضًا مع إطار عمل عائلة NETLINK_GENERIC.

الميزات المطبقة حاليًا:

  • احصل على معلومات حول المسارات وكائنات ومجموعات nexthops وواجهات الشبكة والعناوين والمضيفين المجاورين (ARP / ndp).
  • تشكيل إخطارات حول ظهور وفصل واجهات الشبكة ، وتكوين وإزالة العناوين ، وإضافة وإزالة المسارات.
  • إضافة وإزالة المسارات وكائنات القفزة التالية والمجموعات والبوابات وواجهات الشبكة.
  • التكامل مع واجهة Rtsock لإدارة جدول التوجيه.

ومن الجدير بالذكر أن المشروع حتى الآن يقتصر على دعم مجموعة عمليات NETLINK_ROUTE لإدارة حالة النظام الفرعي للشبكة في النواة.

أخيرًا ، إذا كنت مهتمًا بأن تكون قادرًا على معرفة المزيد عنها ، فيمكنك الرجوع إلى التفاصيل في الرابط التالي.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: ميغيل أنخيل جاتون
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.