OpenFlow امکان پیکربندی سویچها و مسیریابهای شبکه را از راه دور امکانپذیر میکند. سویچهای رایج از دو بخش کنترل و انتقال به وجود آمدهاند. بخش کنترل با بهکارگیری پروتکلهای مسیریابی، درگاه خروجی را به ازای آدرس مقصد برای بستههای ورودی تعیین و در جدول مسیریابی ثبت میکند. بخش انتقال، انتقال بستهها از درگاه ورودی به درگاه خروجی بر اساس اطلاعات به وجود آمده توسط بخش کنترل در جدول مسیریابی را انجام میدهد.
پروتکل OPENFLOW چیست؟
پروتکل OpenFlow به عنوان رایج ترین پروتکل ارتباطی بین کنترلر و سوییچ در شبکه نرمافزارمحور مطرح میشود. سویچی که از پروتکل اوپن فلو پشتیبانی میکند، به اصطلاح سوئیچ OpenFlow نام دارد. هر سوییچ اوپن فلو شامل یک یا چند جدول مسیریابی و یک جدول گروه است که عمل یافتن درگاه خروجی برای بستههای ورودی و انتقال بستهها به درگاه خروجی را انجام میدهد.
پروتکل OpenFlow یک واسط برای ارتباط سوئیچهای SDN و کنترلر SDN است. کنترلری که از پروتکل OpenFlow پشتیبانی میکند، همواره بر روی پورت پیشفرض 6633 (در نسخههای بالاتر بر روی پورت 6653) گوش میدهد و منتظر اتصال سوئیچهای OpenFlow از طریق این پورت میماند. سوئیچ OpenFlow با یک اتصال TCP که ممکن از SSL نیز باشد. به کنترلر وصل میشود. ازاینپس تمامی اختیارات این سوئیچ در دست کنترلر SDN قرار میگیرد.
در معماری شبکه نرمافزار محور، بخش کنترل از سویچ حذفشده و سویچ تنها وظیفه انتقال بستهها از درگاه ورودی به درگاه خروجی بر اساس اطلاعات درجشده در جدول مسیریابی را بر عهده دارد. وظیفه فراهم کردن اطلاعات مسیریابی در شبکه به عهده کنترلر شبکه است که بهصورت مستقل از سویچ در شبکه قرار میگیرد و معمولاً تعدادی سویچ در شبکه را تحت کنترل خود قرار میدهد.
یک کنترلر در شبکه با استفاده از پروتکل OpenFlow میتواند به سویچ وصل شود و اطلاعات مسیریابی را در جدول مسیریابی سویچ اضافه یا حذف کند یا آنها را تغییر دهد. هر ردیف از جدول مسیریابی دارای دو قسمت اصلی است، قسمت شرط و قسمت دستورالعمل. سویچ بستههای ورودی را با شروط هر ردیف جدول مسیریابی مقایسه میکند و در صورت تطابق، دستورالعمل تعریفشده در قسمت دوم آن ردیف از جدول مسیریابی را اجرا میکند. دستورالعمل امکان دارد شامل انتقال به بک درگاه خروجی، حذف بسته، فرستادن بسته به کنترلر و غیره باشد.
عمل تطابق بسته با شرط یا شروط تعریفشده در هر ردیف از جدول مسیریابی از جدول اول شروع میشود و امکان دارد در جدولهای اضافی دیگر هم انجام گردد. کمپانیهای بزرگی از قبیل سیسکو، ایبیام، اچ پی ، جونیپر و غیره اعلام کردند که از OpenFlow در محصولات خود پشتیبانی میکنند.
در Match Field یا فیلد انطباق میتوان ویژگیهای سرآیند جریانی که میخواهیم برای آن اعمال سیاست کنیم را مشخص نماییم. بهطور مثال بستههای IP و با پروتکل لایه انتقال TCP و پروتکل FTP را میتوان با فیلد انطباق فوق مشخص نمود.
Actions شامل اقدام و یا اقداماتی است که میخواهیم برای این جریان خاص اعمال شود. بهطور مثال میخواهیم تمامی بستههای FTP ورودی به این سوئیچ دور ریخته شوند. که بدین منظور میتوان از drop استفاده نمود.
جزییات پروتکل OPENFLOW
هر پیام OpenFlow با ساختار هدر مشابهی شروع میشود. ساختار ثابت آن دارای سه قسمت اصلی هست که در همه ورژنهای OpenFlow برابر است. قسمت اول، فیلد version است که نشاندهنده ورژن OpenFlow مورداستفاده در این پیام است. دوم، فیلد length است که نمایانگر محل اتمام پیام در byte stream است (از اولین بایت هدر). سوم،xid یا شناسه تراکنش، که یک مقدار منحصربهفرد است که برای مشخص نمودن ارتباط بین درخواستها و پاسخها استفاده میشود. فیلد type که نشاندهنده نوع پیام و چگونگی تفسیر پیلود است وابسته به ورژن هست.
نقاط قوت و نقاط ضعف OpenFlow
شرکت سیسکو به OpenFlow خوشبین است. سیسکو یک کنترلر کامل و آمادهی OpenFlow به نام “کنترلر شبکهی بسط پذیر سیسکو” یا Cisco Extensible Network Controller ابداع نموده است. برخی از سوئیچهای سیسکو دارای Agentهای OpenFlow هستند و نقشهی راه مستلزم وجود Agent های تحت پشتیبانی، روی اکثر محصولات روتینگ و سوئیچینگ سیسکو هستند.
OpenFlow بهگونهای طراحیشده که میتواند از روند مدیریت مبتنی بر Policy، در داخل شبکه پشتیبانی کند. بهویژه OpenFlow مناسب موارد کاربردی است که بهپیش بردن سیاستهای ازپیشتعریفشده، برای تفکیک سازی شبکه، اکتفا مینمایند. علاوه بر قابلیتهای سادهی تطبیق گردش و Forwarding، محصولات بعدی با خصوصیات OpenFlow، روشهای جدیدی برای پیادهسازی سادهی کیفیت خدمات (QoS) و اندازهگیری گردش معرفی کردهاند.
باوجوداین قابلیتها، چند حوزهی برنامهنویسی شبکه همچنان خارج از مقیاس فعلی OpenFlow میباشند:
تسهیلات برای مدیریت و مانیتورینگ عناصر پایه تجهیزات
مدیریت Image سیستمعامل، مدیریت سختافزار، بهکارگیری Zero-Touch، راهاندازی رویداد، اطلاعات مکان المان و غیره
قابلیت تأثیر مستقیم بر رفتار Forwarding یک المان شبکه
بهرهگیری از پایگاه “مسیریابیِ اطلاعات/پایگاه ارسال اطلاعات” یا بهاختصار “RIB/FIB”، وضعیت مسیر، اعلانهای پروتکل مسیریابی، مسیرهای Add/Delete و پشتیبانی از درخت پوشای وسیع
بهرهگیری از ظرفیت Packet داده
رمزنگاری On-Box و VPN، الگوریتمهای رمزنگاری سفارشیسازیشده، بازرسی دقیق Packet، آگاهی برنامه در صورت نیاز به بررسی ظرفیت، قابلیت تزریق Packetها به جریان شبکه
بهکارگیری خدمات:
OpenFlow توانایی معرفی مستقیم سرویس روی یک المان شبکه را ندارد. نمونهای از این سرویسها عبارتاند از Firewall، خدمات برنامهای حوزههای وسیع (WAAS)، نرمافزار سیستم حفاظت در برابر ورود غیرمجاز یا Broadband Network Gate ،IPS یا بهاختصار BNG باقابلیت SDN، مانیتورینگ نمودن ویدئو و غیره.
صفحه کنترل توزیعی و APIها:
اتکای OpenFlow به یک صفحه کنترل مرکزی، گزینههای زمان اجرای برنامه را محدود مینماید.
بهترین مقیاس OpenFlow در یک مدل کنترلی فعال هست، که گردشها بهصورت آماری تعریفشده و سیاستها به المانهای شبکه تحمیل میشود. مقیاسپذیری کنترلر، زمانی که نیاز به اصلاح پویای Policy در واکنش به شرایط پویای شبکه باشد (مانند خطاهای سختافزاری دستگاه یا سایر رخدادهایی که روی دسترسپذیری لینک یا خدمات اثر میگذارند) تبدیل به یک دغدغه میشود.
رویایی بزرگتر برای برنامهنویسی شبکه
رویای سیسکو برای فناوری (Software Defined Networking (SDN، ایجاد برنامهنویسی حقیقی شبکه است، تا برای توسعهدهندگان، امکان نوشتن برنامههایی را فراهم سازد که اطلاعات را در لحظه از شبکه استخراج کرده و اطلاعات و تحلیلها را در تعیین سیاست مناسب اعمال نمایند. سپس این سیاست از طریق OpenFlow ،onePK یا سایر ابزارها به المانهای شبکه تحمیل میشود.
این مدل Closed-loop منجر به اتصال مستحکم برنامههای “شبکه به کسبوکار” شده و برای برنامهها این امکان را فراهم میسازد تا منابع شبکه را هماهنگ کنند. این امر سناریویی را ممکن میسازد که در آن دستگاههای شبکه خود به ارائهی تجزیهوتحلیل برای تشخیص تغییرات ترافیک میپردازند، تغییراتی که نشاندهندهی موجی در ترافیک یک برنامهی خاص باشد. برنامهی Orchestration سپس میتواند بهصورت خودکار Policy را اصلاح نماید تا شبکه بهگونهای مجدداً پیکربندی شود که به بهینهسازی همزمان تجربهی کاربر و عملکرد برنامه بیانجامد.
بررسی دیدگاه سیسکو به فناوری SDN
با توجه به اینکه اکثر سازمانهای بخش عمومی در حال آمادهسازی برای Big Data، موج ترافیک ویدئویی، محیطهای BYOD و محاسبات Cloud هستند، برنامهنویسی رفتار شبکه قابلیتی ارزشمند برای آنها محسوب میشود.
محققان دانشگاهی و علمی با موفقیت توانستهاند قابلیت برنامهنویسی شبکه را در تسهیل نمودن اشتراک داده در مؤسسات و همچنین در بهکارگیری انواع جدید برنامههای محاسبات توزیعی اعمال نمایند. علاوه بر آن، در چندین مورد نیز پروتکل OpenFlow جایگزین روشهای سنتیِ پشتیبانی شده است.
برخی محصولات سیسکو علاوه بر آنکه Imageهایی باقابلیت OpenFlow دارند؛ از یک نقشهی راه تعریفشده جهت بسط و گسترش پشتیبانی از OpenFlow نیز برخوردار میباشند.
جهت افزایش احتمال برنامهنویسی شبکه و رسیدگی به طیف وسیعی از موارد کاربرد آن، نگاه وسیعتر به برنامهنویسی شبکه، امری ضروری است. شرکت سیسکو معماری “محیط شبکهی باز یا (Open Network Environment (ONE” خود را بهعنوان یک رویکرد چندوجهی به برنامهنویسی شبکه ارائه نموده که بر سه ستون زیر استوار است:
۱- بستهای از محصولات، جهت ارائهی پوشش مجازی، سرویسهای مجازی و قابلیتهای Orchestration منبع در DataCenter
۲- کنترلر و Agentهای OpenFlow که آمادهی استفاده میباشند.
۳- مجموعهای از واسطهای کاربری برنامهنویسی (APIها) که مستقیماً روی سوئیچها و روترها قرار میگیرند تا خصوصیات موجود OpenFlow را ارتقا دهند.
منبع:نوران