الشبكات المعرفة برمجيًّا – Software-Defined Network (SDN)
تعتبر الشبكات المعرفة برمجيًّا، وهو ما يطلق عليها باللغة الإنجليزية (Software-Defined Networking)، واختصاراً (SDN) أنها طريقة للتحكم بالشبكة مركزيًا. وحتى نفهم عمل هذه الشبكات، فإننا نبدأ بتعريف بعض المصطلحات التي تُساعد في فهم هذه الشبكات وهي:
- التوجيه (Routing): تحديد اتجاه رزمة البيانات من نقطة الإرسال (Source) إلى نقطة النهاية (Destination).
- قوائم الوصول (Access lists): وهي التي تحدد ما إن كان المستخدِم مصرح له بنقل رزم البيانات عن طريق نقطة ما، أو الوصول إلى الوجهة المطلوبة.
- طبقة التحكم (ِControl plane): وهي الطبقة التي تعمل على تحديد اتجاه الرزمة من الرسائل (Packets) للنقطة التالية في مسارها، والتي تكون فيها العمليات الحسابية للمسارات وقوائم الوصول (Access lists).
- طبقة التنفيذ (Data plane): وهي الطبقة التي تقوم بتمرير رزمة الرسائل إلى النقطة التالية بحسب الاتجاه الذي تم تحديده في الطبقة المتخذة للقرار.
في أنظمة الشبكات التقليدية، تتطلب أجهزة الشبكة عتاد قوي لمعالجة واتخاذ القرارات، وحفظ جداول التوجيه وقوائم الوصول، بالإضافة إلى
عتاد قوي لتمرير الرزم كما هو موضح في الشكل رقم 1؛ مما يجعل ثمن أجهزة الشبكة مرتفع.
من جهة أخرى – وكما ذُكِر آنفاً – فإن أجهزة الشبكة تحوي على جداول التوجيه وقوائم الوصول في كل جهاز على حده؛ مما يقود إلى اللامركزية في الشبكة (Decentralization) والتي تعني أن كل جهاز يتم تهيئته على حدة.
عندما يزيد عدد أجهزة الشبكات على نطاق الشبكات الكبرى فإن يصعب اكتشاف الأخطاء والمشاكل. بالإضافة إلى ذلك، عند إضافة جهاز في الشبكة يجب أن تُهَيَّأ جميع أجهزة الشبكة مع الجهاز الجديد حتى تعمل بتناغم.
في دراسة سابقة، ذُكر أن عدد أجهزة الشبكة إلى عدد مهندسي الشبكات يعادل 37 جهاز إلى مهندس واحد في عام 2014، وارتفعت هذه النسبة في 2015 إلى 59 جهاز شبكي إلى مهندس شبكات واحد! مما يعني زيادة بمقدار 60%، وهذا الارتفاع في عدد الأجهزة يؤدي إلى الحاجة إلى عدد هائل من مهندسي الشبكات، مما يحد من تطور الشبكة.
توفر الشبكات المعرفة برمجيًّا مزايا للشبكة مما يسهل تهيئتها وإدارتها بتكلفة أقل وكفاءة أعلى، لتتواكب مع متطلبات العصر الحالي للتقنية الذي يتطلب عدد أكبر بكثير من السابق من أجهزة الشبكة.
الشبكات المعرفة برمجيًّا تفصل الطبقة المتخذة للقرار والتي تعّد بمثابة العقل المدبر للشبكة، وطبقة التنفيذ والتي تعّد بمثابة القوى الجسمانية للشبكة، عن طريق إضافة مركز تحكم للشبكة (Controller) يعطي رؤية كاملة لأجهزة الشبكة والقيود المفروضة عليها كما هو موضح في الشكل رقم 2.
تتكون الشبكات المعرفة برمجيًّا من ثلاث طبقات (من الأعلى للأسفل): طبقة التطبيقات (Application plane)، طبقة التحكم (Control Plane)، طبقة البنية التحتية (Infrastructure plane) والتي تحتوي على طبقة التنفيذ.
- طبقة التطبيقات: هي المسؤولة عن استعراض حالة الشبكة وإعطاء تقارير عنها.
- طبقة التحكم: المسؤولة عن تحديد المسار لرزم البيانات وتطبيق القيود عليها، والتي يتم التحكم بها بواسطة مهندس الشبكة.
- طبقة البنية التحتية: والتي تحتوي أجهزة الشبكة المرتبطة بطبقة التنفيذ.
حين يطلب المستخدم الاتصال بجهة ما، يقوم جهاز الشبكة بالتواصل مع جهاز التحكم لتحديد المسار المخصص لرزم البيانات وتطبيق القيود عليها، ثم تتم عملية الاتصال.
الفصل بين طبقتي التحكم والتنفيذ استدعى وجود بروتوكول ينظم التواصل بين الطبقتين، ولأن الشبكات المعرفة برمجياًّ تم اعتمادها من قبل منظمة Open Networking Forum (ONF) والتي تتكون من مجموعة من الشركات؛ كان لزاماً أن يتم الاتفاق على بروتوكول يتعامل مع طبقة التحكم وطبقة البنية التحتية.
يقوم بروتوكول (OpenFlow) بتحديد مسار الرزم بناء على قواعد محددة مسبقاً بواسطة مهندس الشبكة. إضافة إلى ذلك، يحدد البروتوكول الوظيفة المناسبة (Action) كأن يقوم المُبَدّل (Switch) بتمرير رزمة البيانات (Forward)، أو تجاهلها (Drop).
ولأن الشبكات المعرفة برمجيًا هي نموذج حديث من الشبكات، فأبرز الصعوبات هي الانتقال إلى استخدامها بسبب وجود أجهزة تعمل في الوقت الحالي على النظام التقليدي. أيضاً انتقال رزم البيانات من المبدّلات إلى المتحكم ينشأ عنه بطء (Delay) بسبب المركزية في اتخاذ القرارات.
بمقارنة الشبكة المعرفة برمجياً بالشبكات التقليدية: يمكن أن يتم التفريق بين النوعين في أن الشبكات المعرفة برمجيًا يمكن تهيئتها أثناء عمل الشبكة بشكل أسهل. إضافة إلى ذلك فإن ميزة المركزية في التحكم (والتي تعتبر من مقومات نجاح هذا النوع من الشبكات) تساعد على تقليل تكلفة تشغيل وإدارة الشبكة. أيضًا عند تصميم الشبكة، يستلزم التركيز على الخدمات التي يقدمها مركز التحكم بالشبكة، بصرف النظر عن أنواع ومصنّعي المبدلات المستخدمة في الشبكة؛ وذلك بسبب أن الشبكة تعمل على بروتوكول (OpenFlow) المتّفَق عليه من قِبَل المصنّعين.
أما في الشبكات التقليدية: فيصعب تهيئتها وقت عملها، وذلك يتطلب إيقاف الشبكة وقت التهيئة. أيضاً على صعيد التحكم، فالشبكات التقليدية يجب تهيئة كل جهاز على حدة. ومن ناحية اكتشاف الأخطاء، فهذه معضلة الشبكات التقليدية؛ حيث أن اكتشاف الأخطاء يتطلب وقتاً طويلاً.
هذا المقال هو بالتعاون مع الدكتور باسل السدحان أستاذ مقرر شبكات الاتصالات بقسم الهندسة الكهربائية بكلية الهندسة بجامعة الملك سعود في نشر مقالات الطلاب في الموقع
المراجع:
- موقع COMM BUSINEES: Software Defined Networking (SDN) Explained
www.commsbusiness.co.uk، تمت الزيارة بتاريخ 17/3/1440 هـ.
- موقع Network Computing: Why The Business Needs SDN
www.networkcomputing.com، تمت الزيارة بتاريخ 17/3/1440 هـ.
- موقع IEEE software Defined Networking: Overview of RFC7426: SDN Layers and Architecture Terminology
www.sdn.ieee.org، تمت الزيارة بتاريخ: 17/3/1440 هـ
- موقع How to Forge: Software Defined Networking (SDN) – Architecture and role of OpenFlow
www.howtoforge.com، تمت الزيارة بتاريخ: 17/3/1440 هـ