البروتوكول OpenFlow العصب الرئيس في شبكات SDN
المعلوماتية >>>> اتصالات وشبكات
يُعدّ البروتوكول (OpenFlow (OF الناظمَ لعمليات الاتصال كلها ما بين أجهزة الشبكة والمتحكم في شبكات SDN.
هو بروتوكول مفتوح المصدر، وكانت بداية ظهوره في عام 2009 من قبل منظمة ONF (Open Network Foundation)
(1).
يعتمد OF على بروتوكول التحكم بالنقل (Transport Control Protocol (TCP، ويخزّن قواعد التوجيه لدى أجهزة الشبكة في جداول التدفق (Flow Tables) على شكل مداخل التدفق (Flow Entries). علمًا أنّ التدفق (Flow) يعرف بأنه الرِّزَم (Packets) الواردة إلى منفذ معين، ويعرف مدخل التدفق بأنه الحدث أو التعليمة الواجب تنفيذها على الرزم الواردة، وتشمل إما إضافة وإما تعديل وإما حذف مسار موجود وذلك وفقًا لما يقرره المتحكم (2).
آلية عمل البروتوكول OpenFlow
يعرض لنا الشكل (1) أنموذجًا مبسّطًا لشبكة SDN، فقد بدأت العديد من الشركات المصنّعة بتصنيع مبدلات (OpenFlow switch)؛ إذ تمتلك هذه المبدلات جدولَ تدفق أو أكثر وقناةً آمنة للاتصال مع المتحكم.
تتضمن جداول التدفق مسارات الدخول والخروج للطرود جميعها الخاصة بهذا المبدل، ويجعل بروتوكول OpenFlow هذه الجداول متاحةً أمام المتحكم؛ إذ يستقبل المبدل OpenFlow مدخلات الجدول الخاص به وعمليات التعديل من المتحكم وذلك عن طريق قناة آمنة* (3).
الشكل (1): أنموذج مبسّط لشبكة SDN
Image: http://www.sharetechnote.com/html/IP_Network_SDN_OpenFlow.html
عندما يصل طرد جديد إلى مبدل OpenFlow، يبحث ضمن جدول التدفق عن تطابق؛ إذ يُطابَق هذا التدفق مع مجموعة القواعد أو المداخل الموجودة في جدول التدفق، ومن ثم يُعامَل هذا التدفق وفق الحالات الآتية:
- في حال حدوث مطابقة: يُتصَرَّف بالرزمة وفقًا للقاعدة الموجودة وتُعدَّل البيانات الموجودة في عمود الإحصائيات.
- في حال عدم وجود مطابقة: تُرسَل هذه الرزمة على نحو كامل أو تُروَّس إلى المتحكم وذلك لاتخاذ القرار المناسب.
- بعد أن يُتخَذ القرار، يرسل المتحكم الرزمةَ إلى المبدل الذي بدوره يحدّث جدول التدفق الخاص به (3).
رسائل البروتوكول OpenFlow
يكون تأسيس الاتصال بين المتحكم والمبدل بتبادل عدة رسائل أهمها:
OFPT_HELLO -1: هي رسالة ترحيبية عند بدء تأسيس الاتصال بين المتحكم والمبدل؛ إذ تُتبادَل بكلا الاتجاهين، وتتضمن رقم إصدار البروتوكول (OpenFlow Protocol Version).
OFPT_ECHO_REQUEST -2: تُتبادَل بكلا الاتجاهين لمعرفة مدى صلاحية الاتصال.
3- OFPT_FEATURES_REQUEST: تُرسَل من المتحكم إلى المبدل، وعن طريقها يستعلم المتحكم عن حالة المبدل وميزاته.
4-OFPT_FEATURES_REPLY: تمثّل الرد من المبدل إلى المتحكم للطلب (OFPT_FEATURES_REQUEST)، وتتضمن خصائص المبدل ولا سيما الإعدادات.
بعد أن يُؤسَّس الاتصال بين المبدل والمتحكم؛ تُرسَل عدة رسائل بهدف تنظيم التدفقات والتعامل معها بما يضمن إدارة الشبكة من قبل المتحكم على نحو فعال، ومن أهم هذه الرسائل:
OFPT_PACKET_IN -1: في حال استُقبِلت رزمة معينة على أحد منافذ المبدل ولا توجد قاعدة مطابقة لهذا التدفق في جدول التدفق، عندها يرسل المبدل هذه الرزمة إلى المتحكم الذي يتخذ القرار المناسب بشأن التعامل معها.
2-OFPT_PORT_STATUS: عند إضافة المنافذ أو تعديلها أو إزالتها من مسار البيانات (datapath)، عندها يُعلَم المتحكم برسالة OFPT_PORT_STATUS.
OFPT_BARRIER_REQUEST -3: يرسلها المتحكم إلى المبدل كي يتأكد من أنّ المبدل قد تعامل مع الطلبات كافة الواردة قبل هذه الرسالة.
OFPT_ERROR_MSG -4: يرسلها المبدل في حال حدوث خطأ ما ليعلمَ المتحكم به.
OFPT_SET_CONFIG -5: يرسلها المتحكم لضبط معاملات الإعداد في المبدل، علمًا أنّ المبدل بدوره لا يرسل ردًّا.
6-OFPT_GET_CONFIG_REQUEST: يرسلها المتحكم للاستعلام عن معاملات الإعداد في المبدل، ويرسل المبدل بدوره استجابةً متمثلة بالرسالة (OFPT_GET_CONFIG_REPLY (4.
القناة الآمنة*
تُعدّ هذه القناة الممرَّ الوحيد لعمليات التخاطب بين طبقة المعطيات وطبقة التحكم في شبكات SDN، ويُؤسَّس الاتصال في هذه القناة إما باستخدام بروتوكول (TLS (Transport Layer Security وإما بـ TCP connection بين المتحكم والمبدل. وإذا فُقِد الاتصال، يحاول المبدل الاتصال بالمتحكم الاحتياطي في حال وجوده.
المصادر: