Software Defined Networking

  • الشبكات الحاسوبية التقليدية:

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

وكما تتكون الشبكات في الأنظمة التقليدية من:

  1. (Routing) التوجيه: وهو تحديد اتجاه رزمة البيانات من نقطة الإرسال Source”” إلى نقطة النهاية “Destination”.
  2. (Access lists) قوائم الوصول: وهي التي تحدد ما إن كان المستخدِم مصرح له بنقل رزم البيانات عن طريق نقطة ما، أو الوصول إلى الوجهة المطلوبة. 
  3. (Control plane) طبقة التحكم: وهي الطبقة التي تعمل على تحديد اتجاه الرزمة من الرسائل”Packets”  للنقطة التالية في  مسارها، والتي تكون فيها العمليات الحسابية للمسارات وقوائم الوصول “Access lists”.
  4. (Data plane) طبقة التنفيذ: وهي الطبقة التي تقوم بتمرير رزمة الرسائل إلى النقطة التالية بحسب الاتجاه الذي تم تحديده في الطبقة المتخذة للقرار. 

وبالتالي إذا فرضنا أننا نريد زيادة عدد أجهزة الشبكات على نطاق الشبكات الكبرى فإنه يصعب علينا اكتشاف الأخطاء والمشاكل. بالإضافة إلى ذلك، إضاقة جهاز في الشبكة يتطلب منا تهيئة جميع أجهزة الشبكة مع الجهاز الجديد حتى تعمل جميع الأجهزة بتناغم. كل ذلك يقود إلى اللامركزية في الشبكة (Decentralization) والتي تعني أن كل جهاز يتم تهيئته على حدى. 

في دراسة سابقة، ُذكر أن عدد أجهزة الشبكة إلى عدد مهندسي الشبكات يعادل 37 جهاز إلى مهندس واحد في عام 2014، وارتفعت هذه النسبة في 2015 إلى 59 جهاز شبكي إلى مهندس شبكات واحد! مما يعني زيادة بمقدار 60%، وهذا الارتفاع في عدد الأجهزة يؤدي إلى الحاجة إلى عدد هائل من مهندسي الشبكات، مما يحد من تطور الشبكة.

  • الفرق ما بين بيئة الحاسوب وبيئة الشبكات: بيئة الحاسوب مؤلفة من 3 أقسام أساسية:  
  1. Hardware: مثل كرت الشاشة، كرت الصوت، ….
  2. Operating system: وهو نظام التشغيل بحيث يتم تنزيله على الhardware أو على بيئة افتراضية و يمثل الدماغ في الحاسوب.  
  3. Application: وهي التطبيقات التي يتم تثبيتها على الحاسوب.
  • أما بالنسبة لبيئة الشبكة فهي جهاز واحد فيه hardware& operating system &application سوياً بحيث لا يمكن الفصل ما بين الأقسام الثلاث كما في الحاسب ومن هنا جاءت فكرة فصل الأقسام عن بعضها البعض. 

 لذلك كان من الأفضل فصل الأجهزة عن دماغها المتحكم بها لتصبح عبارة عن أجهزة hardwareمجردة تتواصل مع متحكم يديرها عن طريق بروتوكول open flow اعتماداً علي table openflow.

وبذلك نستطيع إدارة المتحكم وإضافة بروتوكولات وتطبيقات باستخدام الكود البرمجي باستخدام لغات برمجية مثل pythonأو java   وإضافته الى المتحكم عن طريق API ثم يتواصل المتحكم مع الأجهزة عن طريق بروتوكول open flow.   

  • تعريف الشبكات المعرفة برمجياًSDN:

هي بنية شبكة اتصالات، توفر تحسينات كبيرة في أداء الشبكة وباستخدام هذه التقنية من الممكن جعل الشبكة أكثر ديناميكية وقابلة للإدارة وفعالة من حيث التكلفة وقابلية التكيُّف، كما أنّ معماريات “SDN” تفصل وظائف التحكم في الشبكة وإعادة التوجيه، حيث يتيح ذلك التحكم في الشبكة ليصبح قابلاً للبرمجة مباشرةً إذ يكون فيها التحكم في الشبكة مركزياً “عن طريق متحكم في الشبكة”، كما يمكن استخراج البنية التحتية للشبكة الأساسية من التطبيقات وخدمات الشبكة. وبذلك يمكننا القول إن شبكات SDN تعتمد على فصل الدماغ عن الجسد. أي يصبح لدينا جزء مسؤول عن اتخاذ القرار وإدارة الأجهزة وهو بمثابة العقل المدبر للشبكة كمتحكمات خاصة، وأجهزة تستجيب لأوامر هذه المتحكمات فقط ويمكن تشبيهها بالعضلات وتسميتها بالقوة الجسمانية للشبكة.

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

  • بدايات الشبكات المعرفة برمجياً:

بدأت شركة Nacira بحيث بدأت الفكرة باستخدام شبكات افتراضية وبدأت بتطوير أول مبدل وهمي OVS (open virtual switch) يعمل على تقنية open flow حيث يتلقى هذا المبدل جدول من المتحكم ليقوم بالعمل الواجب عليه، فيما بعد قامت شركة VMware بشراء شركة Nicira في عام 2012.

تم إدخال بروتوكول openflow الذي يعتبر صلة وصل ما بين المتحكم والأجهزة المادية ليستطيع التعامل معها وإعطائها الأوامر. 

أول الشركات التي استخدمت التقنية هذه هي google بحيث استطاعت الشركة توفير الكثير من التخزين وضبط الإعدادات عن طريق الضبط من جهاز واحد كونها شركة توسعية كما أنها استطاعت استغلال الشبكة 100%. 

كما أن شركة Facebook تبنت فكرة الشبكات المعرفة برمجياً إضافة إلى أنها تصنع switch يدعم openflow مثل 6_pack switch، wedge switch وذلك من أجل جعل جميع الأجهزة تدار من قبل جهاز واحد وهو المتحكم. 

أما شركة Microsoft سعت الى التحكم الكامل من نقطة مركزية لجميع الأجهزة وذلك أدى لسهولة توقع الخطأ وتصحيحه وبالإضافة إلى أنها أصبحت قابلة للتوسع. 

مما سبق نجد أن الشبكات المعرفة برمجياً واقع وبدأت تظهر بقوة لتقود شبكات المستقبل بفكر جديد.

  • أساسيات الشبكات المعرفة برمجياً:
  1. فصل وظائف التوجيه والتحكم Forwarding and control functions separated:

من خلال فصل هذه الوظائف، من الممكن التحكم في جانب إعادة التوجيه من الشبكة لتلبية متطلبات تدفق حركة البيانات المتغيرة.

  1. قابلة للبرمجة Programmable:

ليست الشبكة قابلة للبرمجة فحسب، بل يمكن برمجة التحكم في الشبكة بشكل مباشر؛ لأنّ عنصر التحكم منفصل عن وظائف إعادة التوجيه.

  1. الإدارة المركزية Central management:

أحد المفاهيم الأساسية للشبكات المعرفة بالبرمجيات، هو أنّ الشبكة يمكن التحكم فيها وتحديد البرمجيات، حيث لا يمكن تحقيق ذلك إلّا إذا تم تحقيق الإدارة باستخدام نواة إدارة مركزية.

  1. التكوين البرمجي Programmatic configuration:

تتيح الشبكات المعرفة بالبرمجيات للمديرين تكوين موارد الشبكة وإدارتها وتأمينها وتحسينها، حيث يمكن تحقيق ذلك بسرعة كبيرة باستخدام البرامج الآلية التي تراقب أداء الشبكة وتنفذ التغييرات المطلوبة وبهذه الطريقة، يمكن لشبكة البيانات تلبية المطالب المتغيرة باستمرار والمفروضة عليها.

  1. استخدام المعايير المفتوحة Open standards usage:

أحد المتطلبات الأساسية للشبكات المعرفة بالبرمجيات هو استخدام المعايير المفتوحة، مع شبكات البيانات التي تستخدم عادةً مكونات الشبكة من مجموعة متنوعة من البائعين، من الضروري أن تعمل كل هذه العناصر معاً، حيث لا يمكن تحقيق ذلك إلّا إذا تم استخدام معايير مفتوحة مشتركة، أمّا إذا لم يتم استخدام المعايير المفتوحة، فسيكون هناك مجموعة من واجهات البائع المختلفة المحددة التي لن تعمل معاً، وأحد المعايير الرئيسية المفتوحة المستخدمة داخل الشبكات المعرفة بالبرمجيات هو معيار”OpenFlow”.

  • تكنولوجيا الشبكة المعرفة برمجياً:

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

يعمل هذا النهج على تبسيط الأجهزة المستخدمة؛ لأنّها لم تعد بحاجة إلى التفاعل مع العديد من معايير البروتوكولات المختلفة ومعالجتها، ولكن بدلاً من ذلك يحتاجون فقط إلى قبول التعليمات من الشبكة المعرفة بالبرمجيات ووحدات تحكم “SDN” وعادةً ما يتم احتواء ذكاء الشبكة ضمن وحدات تحكم الشبكات المعرفة بالبرمجيات والتي تكون قادرة على التحكم في الشبكة الكاملة، حيث يمكن التعامل مع الشبكة بالكامل بواسطة كيانات التطبيقات والسياسة على أنّها مفتاح منطقي واحد كبير.

من خلال اعتماد نهج الشبكات المحدد بالبرمجيات، يمكن التحكم في الشبكة بالكامل من نقطة واحدة ممّا يُبسط بشكل كبير التصميم والتشغيل والتحديثات، حيث تعمل “SDN” على تبسيط أجهزة الشبكة نفسها؛ لأنّها تحتاج فقط إلى التفاعل مع معيار تحكم واحد وليس معايير البروتوكول العديدة التي قد يحتاجون إلى معالجتها.

كما أنّ مؤسسة “ONF” هي منظمة صناعية تم إنشاؤها بهدف تعزيز واعتماد الشبكات المعرفة بالبرمجيات من خلال تطوير معايير مفتوحة، حيث يجذب “ONF” أعضائه من الصناعة وينسق أنشطة توحيد الشبكات المحددة بالبرمجيات، كما قد طور بروتوكول “OpenFlow” الذي يبني الاتصال بين وحدات التحكم ومستويات البيانات لشبكة محددة بالبرمجيات، حيث يُستخدم بروتوكول “OpenFlow” على نطاق واسع للشبكات المعرفة بالبرمجيات؛ لأنّه يوفر واجهة مشتركة تسمح للمشغلين باستخدام عناصر شبكة مختلفة بنجاح من مزودين مختلفين.

  • نماذج SDN:
  1. نموذج Open SDN: يستخدم مسؤولو الشبكات بروتوكولاً مثل “OpenFlow” للتحكم في سلوك المحولات الافتراضية والمادية على مستوى البيانات.
  2. نموذج SDN by APIs: بدلاً من استخدام بروتوكول مفتوح، تتحكم واجهات برمجة التطبيقات في كيفية انتقال البيانات عبر الشبكة على كل جهاز.
  3. نموذج تراكب SDN: يدير شبكة افتراضية فوق البنية التحتية الحالية للأجهزة، ممّا يؤدي إلى إنشاء أنفاق ديناميكية لمراكز بيانات مختلفة داخل الشركة وعن بعد، حيث تخصص الشبكة الافتراضية عرض النطاق الترددي عبر مجموعة متنوعة من القنوات وتخصص الأجهزة لكل قناة، مع ترك الشبكة المادية دون تغيير.
  4. نموذج Hybrid SDN: يجمع هذا النموذج بين الشبكات المعرفة بالبرمجيات وبروتوكولات الشبكات التقليدية في بيئة واحدة لدعم الوظائف المختلفة على الشبكة، حيث تستمر بروتوكولات الشبكات القياسية في توجيه بعض حركة البيانات، بينما تتحمل “SDN” المسؤولية عن حركة لبيانات الأخرى، ممّا يسمح لمسؤولي الشبكة بتقديم “SDN” على مراحل إلى بيئة قديمة.
  • الفرق بين الشبكات المعرفة بالبرمجيات ومحاكاة وظائف الشبكة الافتراضية:

الشبكات المعرفة بالبرمجيات “SDN”: تفصل “SDN” التحكم في الشبكة ومستويات إعادة التوجيه وتوفر وجهة مركزية لتفعيل وتشغيل خدمات الشبكة بشكل أكثر كفاءة.

محاكاة وظائف الشبكة الافتراضية “NFV”: هي اختصار لـ “Network Functions Virtualizations” وهي تركز على تحسين خدمات الشبكة نفسها حيث تقوم هذه التقنية بفصل وظائف الشبكة عن الأجهزة الاحتكارية، ودمجها مع خوادم أو أجهزة كمبيوتر أكثر عمومية بحيث يمكن تشغيل هذه الوظائف في البرامج؛ لتوفير المزيد من المرونة للتشغيل والتغييرات والتحديثات.

  • خصائص ومميزات تقنية SDN:
  1. قابلة للبرمجة بشكل مباشر، والتحكم في الشبكة بشكل مباشر أيضاً.
  2. يستطيع مهندس الشبكة التحكم في الشبكة بشكل كامل من مكان واحد حيث يقوم بعمل ادارة وتحكم وصيانة من مكان واحد لي انه يوجد شروط في تقنية ال SDN تقوم بتحكم في الشبكة، حيث يقوم مهندس الشبكة بوضع هذه الشروط.
  3. تحسين عملية ارسال البيانات في الشبكة حيث من ناحية التوجيه وتوزيع ال Traffic في الشبكة.
  4. سهولة صيانة الشبكة ومراقبة الشبكة بشكل اوسع وأسهل، حيث انه يتواجد وحدة مركزية للتحكم الكامل في الشبكة كلها.
  5. توفير عدد كبير من أجهزة الشبكة حيث انه نستطيع عمل أجهزة شبكة افتراضية ولكن وهمية وغير موجودة في الواقع.
  6. سيتواجد شبكات افتراضية برمجية وستكون أسهل بكثير من أن يكون عدة شبكات موجودة في الواقع الحقيقي، حيث أنه سيوفر لنا الكثير من الوقت وتوفير من ناحية التكلفة وسهولة في الادارة.
  7. تعمل هذه التقنية مع التقنية التالية مثلGMPLS، MPLS.
  8. يستطيع مهندس الشبكة توسيع الشبكة بكل سهولة لي انه بشكل افتراضي ووهمي وهذا يسهل الكثير من العمل على مهندس الشبكة ويكون أفضل من أن تكون الشبكة موجودة بشكل حقيقي.
  9. الحماية ستكون من أعلى مستويات الحماية والامن، حيث يستطيع مهندس الشبكة عمل تطبيق أمني موحد ودقيق لكل الشبكة والتحكم فيه ايضا من مكان واحد.
  • الطبقات الرئيسية التي يتكون منها SDN:

في SDN هناك ثلاث طبقات أساسية:

  1. طبقة التطبيقات: هذه الطبقة مسؤولة عن إدارة منطق الشبكة، أي الطريقة التي يتم بها توجيه حزم البيانات وسياسات الأمان المطبقة. توجد في هذه الطبقة التطبيقات التي تعمل على الشبكة، مثل جدران الحماية، وموازنات التحميل، وما إلى ذلك.
  2. طبقة التحكم: طبقة التحكم هي المسؤولة عن إدارة منطق الشبكة. في هذه الطبقة توجد وحدة تحكم SDN، المسؤولة عن برمجة الشبكة بناءً على السياسات المحددة في طبقة التطبيق. تتواصل وحدة تحكم SDN مع أجهزة الشبكة من خلال بروتوكولOpenFlow، وهو المعيار المستخدم في SDN.
  3. طبقة البيانات: طبقة البيانات هي المسؤولة عن نقل حزم البيانات عبر الشبكة. توجد في هذه الطبقة أجهزة الشبكة، مثل المحولات وأجهزة التوجيه، والتي تتم برمجتها بواسطة وحدة تحكم SDN لتوجيه حزم البيانات وفقًا للسياسات المحددة في طبقة التطبيق.
  • بروتوكولOpenFlow:

البروتوكول OpenFlow هو بروتوكول التواصل بين طبقة التحكم Control Layer والطبقة التي تليها طبقة البنية التحتية Infrastructure Layer، والذي تم تطويره ومازال حتى الآن يطور من قبل منظمة ONF ليتناسب مع جميع المصنعين. 

بمعنى آخر، يتم استخدام Open Flow للاتصال بين وحدة التحكم وأجهزة الشبكة من خلال تمكين عمليات أجهزة الشبكة وإدارتها باستخدام واجهة Open Flow. وهو معيار مستوى تحكم شائع يُستخدم في عمليات SDN، بالتالي هو بروتوكول اتصال الطبقة الثانية يتم استخدامه في SDN بين وحدة التحكم ومحول الشبكة.

عرّفته مؤسسة الشبكات المفتوحة (ONF) بأنه معيار متعدد البائعين لنشر SDN في معدات الشبكات. يسمح بروتوكول OpenFlow لوحدة تحكم OpenFlow بتوجيه كيفية تعامل مفتاح OpenFlow مع حزم البيانات الواردة. “التدفقات” هي تعليمات OpenFlow المرسلة من وحدة تحكم OpenFlow إلى محول OpenFlow. يتكون كل تدفق من حقول مطابقة الحزمة، وأولوية التدفق، والعدادات المتنوعة، وتعليمات معالجة الحزمة، وملفات تعريف الارتباط. يتم استخدام الجداول لتنظيم التدفقات. قبل الخروج من منفذ الخروج، يمكن التعامل مع الحزمة الواردة من خلال التدفقات في العديد من الجداول ” pipelined”.

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

  • واجهة برمجة التطبيقات أو API Application Programming Interface:

وبعيد عن المصطلحات التقنية هو غلاف لتغليف شيء صعب من الداخل وجعله سهل من الخارج ويطلق على كل ما يتم تحويله من أوامر معقدة إلى أوامر بسيطة يستطيع أي شخص استخدامها بـ(API) وهو ليس لغة برمجة. 

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

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

  • أنواع API في الشبكات المعرفة برمجياً: 
  1. the southbound interface: تكون الواجهة الجنوبية هي مواصفات بروتوكول OpenFlow أو البديل. وتتمثل مهمتها الرئيسية في تمكين الاتصال بين وحدة التحكم وعقد الشبكة (المحولات وأجهزة التوجيه المادية والظاهرية) بحيث يمكن لجهاز التوجيه اكتشاف طوبولوجيا الشبكة وتحديد تدفقات الشبكة وتنفيذ الطلبات التي تم ترحيلها إليها عبر واجهات برمجة التطبيقات المتجهة شمالاً.
  2. : The northbound interface: تصف الواجهة الشمالية منطقة الاتصال المدعوم بالبروتوكول بين وحدة التحكم والتطبيقات أو برامج التحكم في الطبقة العليا.  
  • وفي نهاية هذا المقال يمكننا القول إن شبكات SDN عبارة عن قطار التغيير في مجال الشبكات تعطي مرونة كبيرة للشبكة المعقدة بحيث تعتمد على فصل الدماغ عن الجسد. أي يصبح لدينا جزء مسؤول عن اتخاذ القرار وإدارة الأجهزة وهو بمثابة العقل المدبر للشبكة كمتحكمات خاصة، وأجهزة تستجيب لأوامر هذه المتحكمات فقط ويمكن تشبيهها بالعضلات وتسميتها بالقوة الجسمانية للشبكة.

المراجع:

  1. موقع e3arabi.
  2. موقع كونكت للتقنية.
  3. كتاب SDN ببساطة.
  4. موقع ruijienetworks.
Facebook
Twitter
YouTube
LinkedIn