FBOSS عبارة عن حزمة برامج Facebook للتحكم في محولات الشبكة وإدارتها.
يتكون FBOSS من عدد من تطبيقات مساحة المستخدم والمكتبات والمرافق.
يتكون الإصدار الأولي مفتوح المصدر لـ FBOSS بشكل أساسي من الوكيل الخفي، ولكننا نعمل على إصدار أجزاء ووظائف إضافية أيضًا.
إحدى الأجزاء المركزية لـ FBOSS هي الوكيل الخفي، الذي يعمل على كل محول، ويتحكم في ASIC لإعادة توجيه الأجهزة. يرسل البرنامج الخفي للوكيل المعلومات إلى الأجهزة، وينفذ بعض بروتوكولات مستوى التحكم مثل ARP وNDP. يوفر الوكيل واجهات برمجة التطبيقات (APIs) لإدارة المسارات، للسماح لعمليات التحكم في التوجيه الخارجية ببرمجة معلومات التوجيه الخاصة بها في جداول إعادة توجيه الأجهزة.
يمكن العثور على رمز الوكيل في fboss/agent
يتطلب الوكيل ملف تكوين JSON لتحديد المنفذ وتكوين VLAN الخاص به. يمكن العثور على بعض نماذج ملفات التكوين ضمن fboss/agent/configs. هذه الملفات ليست مخصصة حقًا للاستهلاك البشري - في Facebook لدينا أدوات تقوم بإنشاء هذه الملفات لنا.
يدير وكيل FBOSS جداول إعادة التوجيه في ASIC للأجهزة، ولكن يجب أن يكون على علم بالمسارات الحالية عبر واجهات برمجة تطبيقات التوفير.
إصدارنا الأولي مفتوح المصدر لا يحتوي حتى الآن على برنامج خفي لبروتوكول التوجيه قادر على التحدث إلى الوكيل. يعد برنامج بروتوكول التوجيه الذي نستخدمه في Facebook خاصًا ببيئتنا، ومن المحتمل ألا يكون مفيدًا لمجتمع المصادر المفتوحة. لمزيد من الاستخدام العام خارج فيسبوك، يجب أن يكون من الممكن تعديل أدوات التوجيه مفتوحة المصدر الحالية للتحدث مع وكيل FBOSS، لكننا لم ننفذ ذلك بعد. في هذه الأثناء، قمنا بتضمين نموذج صغير لنص بايثون في fboss/agent/tools الذي يمكنه إضافة المسارات وإزالتها يدويًا.
من الواضح أن هناك حاجة إلى أدوات وأدوات مساعدة إضافية للتفاعل مع وكيل FBOSS، والإبلاغ عن حالته، وإنشاء ملفات التكوين، وتصحيح الأخطاء.
في الوقت الحالي، ليس لدينا العديد من أدواتنا جاهزة للإصدار مفتوح المصدر، ولكننا نأمل في توفير المزيد منها في الأسابيع المقبلة. في هذه الأثناء، يمكن لمترجم التوفير أن يقوم تلقائيًا بإنشاء برنامج نصي عن بعد لـ python للسماح بالاستدعاء اليدوي لواجهات التوفير المختلفة للوكيل.
راجع مستند BUILD.md للحصول على إرشادات حول كيفية إنشاء FBOSS.
لقد تم تصميم FBOSS خصيصًا للتعامل مع احتياجات شبكات مركز بيانات Facebook، ولكننا نأمل أن يكون مفيدًا للمجتمع الأوسع أيضًا. ومع ذلك، لاحظ أن هذا الإصدار الأولي من FBOSS سيتطلب على الأرجح تعديلاً وتطويرًا إضافيًا لدعم تكوينات الشبكة الأخرى بما يتجاوز الميزات التي يستخدمها Facebook. وإلى أن تنضج أكثر، من المرجح أن يكون نظام FBOSS موضع اهتمام في المقام الأول لمطوري برامج الشبكات، وليس لمسؤولي الشبكات الذين يأملون في استخدامه كحل متكامل.
نحن نتطلع إلى الحصول على تعليقات من المجتمع، ونأمل أن يكون FBOSS بمثابة نقطة انطلاق للمستخدمين الآخرين الذين يرغبون في برمجة محولات الشبكة.
يستمر تطوير FBOSS في Facebook، ونخطط لمواصلة إصدار المزيد من المكونات والميزات الإضافية والتحسينات على الأدوات الحالية.
انظر الترخيص.