مدونة بي بي نتوركس

أشياء كنت أتمنى لو كنت أعرفها قبل العمل مع SONiC NOS - وجهة نظر CCIE

عندما تقضي سنوات في إتقان أنظمة تشغيل الشبكات التقليدية - Cisco IOS وNX-OS وJunos - فإن الانتقال إلى منصة مفصّلة مثل سونيك (برنامج للشبكات المفتوحة في السحابة) تجربة مزعجة. كخبير في CCIE، كنت أعتقد أنني أمتلك الكفاءات الأساسية لالتقاط أي نظام تشغيل للشبكة. لكن SONiC جعلني أشعر بالتواضع. إنها منصة قوية، ولكنها منصة تتطلب عقلية ومجموعة مهارات مختلفة تمامًا. إذا كنت على وشك البدء في رحلة SONiC، فإليك المهارات الأساسية التي كنت أتمنى لو كنت قد طورتها مسبقًا.

1. أساسيات لينكس ما بعد الأساسيات

SONiC مبنية على نظام لينكس، وأعني أنها مبنية عليه بالفعل. على عكس أنظمة التشغيل غير التقليدية التقليدية، حيث يتم إخفاء نظام التشغيل الأساسي، فإن SONiC يعرضك لكل شيء - النظام، والحاويات، ونصوص bash، والمزيد. لينكس الأساسي ليس كافياً. يجب أن تكون مرتاحًا مع:

  • التنقل في نظام الملفات
  • قراءة السجلات في /var/log/
  • استكشاف أخطاء خدمات Systemd وإصلاحها (حالة النظام، دفتر اليومية)
  • إدارة الخدمات المعبأة في حاويات عبر Docker (docker exec، سجلات docker)

إذا لم تكن قد لمست واجهة برمجة لينكس CLI خارج نطاق تمكين SSH أو ping، فستضيع بسرعة.

2. فهم بنية الحاويات

تعتمد SONiC على الخدمات المصغرة. تعمل كل وظيفة من وظائف الشبكات (BGP، وLLDP، وترحيل DHCP) في حاوية Docker الخاصة بها. وهذا يعني:

  • السجلات خاصة بالحاويات.
  • يمكن لمساحات أسماء الشبكات عزل حركة المرور.
  • يمكن عزل الأعطال في حاوية معينة دون التأثير على بقية النظام.


كان عليّ أن أتخلى عن غريزة "نظام التشغيل المتجانس"، فقد نشأت مع نظام Cisco IOS حيث كل شيء مركزي. يختلف استكشاف الأخطاء وإصلاحها اختلافًا كبيرًا عندما يتم اتخاذ قرارات التوجيه في حاوية واحدة وتتم إدارة الواجهات في حاوية أخرى.

3. العمل مع Redis ونموذج قاعدة بيانات SONiC

تستخدم SONiC قاعدة بيانات Redis DB كوسيط بين التكوين والحالة وطبقة تجريد الأجهزة الأساسية. هناك العديد من قواعد بيانات منطقية متعددة - CONFIG_DB، STATE_DB، APPL_DB - كل منها يخدم غرضًا مميزًا. عليك أن تعرف:

  • كيفية الاستعلام عن إدخالات قاعدة البيانات (redis-cli -n المفاتيح *)
  • المخطط (تعليمات نماذج SONiC YANG المساعدة)
  • كيفية استهلاك عمليات swss للبيانات من ريديس


كنت أتمنى لو أنني استغرقت المزيد من الوقت مقدمًا لفهم مخطط قاعدة بيانات SONiC وخط أنابيب التنسيق الخاص ب SONiC، كان ذلك سيوفر علي الكثير من الحيرة.

4. التنقل عبر بوابة Git وشفرة المصدر

سونيك مفتوحة المصدر. عندما يتعطل شيء ما أو لا يتصرف كما هو متوقع، هناك فرصة جيدة أن تشير عمليات البحث إلى مشكلات GitHub العامة، وقد تقرأ الكود المصدري، أو إذا كنت جريئًا، قم ببناء/استكشاف النظام بنفسك. من المفيد أن يكون لديك فهم قوي لـ

  • أساسيات Git (الاستنساخ، الفرق، الفرع)
  • قراءة شيفرة Python/C+++P (خاصة في swss وSwss وSyncd وOrchagent)
  • بناء الصور عبر نظام البناء SONiC


بالمناسبة، إذا كنت تتلقى دعمًا على SONiC من شركة مصنعة أو شركة تكامل أو شريك، فمن المحتمل ألا تضطر أبدًا إلى ما سبق، لكنني أحاول دائمًا تعلم أشياء جديدة.

5. عقلية التطوير والأتمتة

تم تصميم SONiC في الأصل لمشغلي السحابة. لا يُنصح بالتهيئة اليدوية. احتضان

  • كتل موارد Terraform
  • دفاتر تشغيل أنسيبل
  • إدارة التهيئة من خلال config_db.json
  • إدارة الصور و ZTP
  • خطوط أنابيب CI/CDD لتغييرات الشبكة


إذا كنت لا تزال تحرر التكوينات عبر CLI سطرًا بسطر، فأنت تقوم بذلك بشكل خاطئ.

الخاتمة

إن SONiC ليست مجرد نظام تشغيل غير متصل بالشبكة، بل هي في الحقيقة منصة تتيح إمكانات الشبكة المستقبلية. إنه يكافئ المهندسين الذين يفكرون مثل SONiC ويعاقب أولئك الذين يتشبثون بسير العمل القديم. لقد تعلمت الكثير من تجربتي مع SONiC، ولكن لو كان بإمكاني العودة إلى الوراء، لكنت أعددت المزيد من لينكس والحاويات والأتمتة. إن SONiC هو مستقبل الشبكات المفتوحة - فقط كن مستعدًا للارتقاء إلى مستوى أعلى عندما تصل إلى هناك.

صورة Josh Saul

جوش سول

نائب رئيس تسويق المنتجات

كان جوش سول رائداً في مجال حلول الشبكات مفتوحة المصدر لأكثر من 25 عاماً. كمهندس معماري، قام ببناء شبكات أساسية لشركات جنرال إلكتريك، وفايزر، وإن بي سي يونيفرسال. كمهندس في شركة Cisco، قدم جوش المشورة للعملاء في القطاع المالي المدرجة في قائمة Fortune 100، وبشّر بالتقنيات الجديدة للعملاء. وفي الآونة الأخيرة، قاد جوش فرق التسويق والمنتجات في VMware (استحوذت عليها Broadcom)، وCumulus Networks (استحوذت عليها Nvidia)، وApstra (استحوذت عليها Juniper).

ar
اتصل بنا
نحن نحب حقاً التحدث عن الشبكات!