الشبكات المعرّفة برمجيًّا (SDN (Software-Defined Networking
المعلوماتية >>>> اتصالات وشبكات
تعد SDN من الناحية التقنية منهجًا جديدًا في إدارة الشبكات؛ إذ يستطيع مسؤول الشبكة إدارة الشبكة بطريقة مجرّدة بعيدًا عن معرفة التفاصيل التقنية في الطبقات الدنيا (1).
في هذا السياق لا بد لنا من أن نتعرف أولًا إلى البنية التحتية للشبكات التقليدية لنستطيع فهم التغيير الذي أحدثته شبكات SDN.
من الجدير بالذكر أنه في الشبكات التقليدية، تعمل أجهزة الشبكة من مبدلات (switches) وموجهات (routers) -كما موضّح في الشكل (1)- كمركز تحكم في الشبكة ومركز تنفيذ للأوامر في الوقت نفسه؛ أي تعمل على إصدار الأوامر وتنظيم حركة نقل البيانات بما في ذلك رسم أفضل مسار لمرور البيانات وتحديد الوجهات، كذلك يقع عليهم مسؤولية تنفيذ هذه الأوامر والتعليمات، وبذلك تنفّذ أجهزة الشبكة هذه عمل الدماغ والعضلات سويًّا؛ مما يؤدي إلى حدوث بعض الأخطاء والتأخير في عملية النقل في الشبكات التقليدية (1).
السمات الأساسية لشبكات SDN:
إنّ شبكات SDN هي بنية شبكية قابلة للبرمجة تتيح التحكم البرمجي والديناميكي بالشبكة؛ إذ يكون التحكم فيها مركزيًّا عن طريق ما يسمى متحكم الشبكة (SDN controller). ولذلك؛ هي ترتكز على نحو أساسي على الفصل بين ركني الشبكة الرئيسيين: التحكم وتنفيذ الأوامر. وبناءً عليه تتصف SDN بثلاث سمات رئيسية:
السمة الأولى هي فصل مستوى التنفيذ عن مستوى التحكم.
السمة الثانية: مركزية التحكم بالأجهزة الموجودة ضمن الشبكة.
السمة الثالثة: برمجة المتحكمات المركزية.
أي إنه أصبح لدينا ضمن هذه الشبكات -كما في الشكل (2)- جزءًا مسؤولًا عن اتخاذ القرار وإدارة الأجهزة، وهو بمثابة العقل المدبر للشبكة (متحكمات خاصة). وأجهزة تستجيب لأوامر المتحكمات فقط، ويمكن تشبيهها بالعضلات وتسميتها بالقوة الجسمانية للشبكة (مثل المبدلات والموجهات) (1).
Image: https://www.commsbusiness.co.uk/features/software-defined-networking-sdn-explained/
معمارية شبكات SDN:
قُسّمت بنية شبكات SDN إلى ثلاث طبقات موضحة في الشكل (3)، وفيما يأتي شرح لكل طبقة على حدى:
1- طبقة التطبيقات (Application Layer)
هي الطبقة الأولى في البنية المعمارية لشبكات SDN، وتتكون من الخدمات والتطبيقات التي تقدّمها إلى المستخدم، وتتواصل هذه الطبقة مع الطبقة التي تليها عن طريق واجهة برمجة التطبيقات الشمالية* (2) (Northbound API) (Northbound Application Programming Interface).
2- طبقة التحكم (Control Layer)
هي الطبقة الثانية في البنية المعمارية، وتتكون هذه الطبقة من المتحكمات المركزية المفصولة عن البنية التحتية للشبكة؛ التي تؤدي وظيفة التحكم والإدارة وإعطاء الأوامر لأجهزة الشبكة جميعها من موجهات ومبدلات، والتي تشمل صلاحية تمرير البيانات فقط.
والجدير ذكره أنّ طبقة التحكم تتواصل مع الطبقة التي تليها -أي طبقة البنية التحتية- عن طريق واجهة برمجة التطبيقات الجنوبية** Southbound API (Southbound Application Programming Interface)، وتَستخدم هذه الطبقة بروتوكول التدفق المفتوح Open Flow*** للتخاطب مع أجهزة الشبكة (2).
3- طبقة المعطيات (Data Layer) أو البنية التحتية (infrastructure)
هي الطبقة الثالثة والأخيرة ضمن البينة المعمارية لشبكات SDN، وتتكون من أجهزة الشبكة الافتراضية (virtual) والفيزيائية مثل المبدلات أو الموجهات. تتلقى الأجهزة الموجودة في هذه الطبقة الأوامر من الطبقة الثانية وتنفّذها، ولذلك؛ يجب أن تدعم أجهزة هذه الطبقة البروتوكول Open Flow.
Image: https://link.springer.com/chapter/10.1007/978-3-030-22277-2_14
(2) SDN الشكل (3): معمارية شبكات
لفهمٍ أعمق لآلية عمل SDN؛ نورد مثالًا توضيحيًّا كما يأتي:
عندما يطلب المستخدم الاتصال بجهة ما، يتواصل جهاز الشبكة مع المتحكم الذي يحدد بدوره المسار المخصص لرزم البيانات وتطبيق القيود عليها، ثم تُنجَز عملية الاتصال (2).
أخيرًا، بعد أن استعرضنا تقنية SDN والمفهومات الأساسية المرتبطة بها؛ أصبح الآن بمقدورنا مقارنة شبكات SDN مع الشبكات التقليدية.
يمكن التفريق بين النوعين بأنّ شبكات SDN يمكن ضبطها في أثناء عمل الشبكة على نحو أسهل. إضافةً إلى أنّ ميزة المركزية في التحكم تساعد على تقليل تكلفة تشغيل وإدارة الشبكة. وعند تصميم الشبكة، يجب التركيز على الخدمات التي يقدمها مركز التحكم، بصرف النظر عن مصنّعي المبدلات وأنوعها المستخدمة في الشبكة، وذلك لأن الشبكة تعمل بالاعتماد على بروتوكول OpenFlow الذي يتفق عليه المصنّعون.
في المقابل إنّ الشبكات التقليدية يصعب إعادة ضبطها في أثناء عملها؛ إذ لا بدّ من إيقاف الشبكة لتُضبَط من جديد. وعلى صعيد التحكم، يجب ضبط كل جهاز على حدة في الشبكات التقليدية. أما من ناحية اكتشاف الأخطاء؛ يتطلب اكتشاف الأخطاء وقتًا طويلًا في الشبكات التقليدية (1). ولكن لا بد من الإشارة هنا إلى أنّ المزايا التي تتسم بها شبكات SDN لا تعني بالضرورة أنها خالية تمامًا من الثغرات وأنها لا تملك أية نقاط ضعف يمكن أن تعانيها في أثناء العمل (2).
*** واجهة برمجة التطبيقات الشمالية Northbound API (Northbound Application Programming Interface):
هي واجهة برمجية تسمح لطبقة التطبيقات الموجودة في الأعلى ضمن بنية شبكة SDN بأخذ نظرة عامة إلى الشبكة وإدارة عمل المتحكمات والشبكة ككل (3).
** واجهة برمجة التطبيقات الجنوبية Southbound API (Southbound Application Programming Interface):
هي جسور ما بين عناصر طبقة التحكم وعناصر التوجيه الموجودة في البنية التحتية، ويُعدّ البروتوكول OpenFlow واجهة برمجة تطبيقات SDN الجنوبية (3).
*** بروتوكول OpenFlow:
إنّ الفصل بين طبقتي التحكم والتنفيذ (طبقة البينة التحتية) استدعى وجود بروتوكول ينظّم التواصل بين الطبقتين، فكان الاتفاق على بروتوكول OpenFlow؛ إذ يُعدّ بمثابة العصب الرئيس في شبكات SDN، وتكمن وظيفته الأساسية في تحديد مسار الرزم بناءً على قواعد محددة مسبقًا عن طريق مهندس الشبكة. إضافة إلى ذلك، يحدد البروتوكول الوظيفة المناسبة (Action)، كأن يمرر المبدل رزمةَ البيانات أو تجاهله (1).
--------------------------------------------------------
المصادر:
2. Shaghaghi A, Kaafar M, Buyya R, Jha S. Software-Defined Network (SDN) Data Plane Security: Issues, Solutions, and Future Directions. In: Gupta B, Perez G, Agrawal D, Gupta D, ed. by. Handbook of Computer Networks and Cyber Security [Internet]. Cham: Springer; 2020 [cited 29 March 2021]. p. 341-387. Available from: هنا
3. Kreutz D, Ramos F, Esteves Verissimo P, Esteve Rothenberg C, Azodolmolky S, Uhlig S. Software-Defined Networking: A Comprehensive Survey. Proceedings of the IEEE [Internet]. 2015 [cited 29 March 2021];103(1):14-76. Available from: هنا