نقشه راه شبکه نرم افزار محور (SDN)

نقشه راه شبکه نرم افزار محور (SDN)

مراحل پیش رو جهت ورود به بحث پیاده سازی شبکه نرم افزار محور

با سلام خدمت همراهان سایت SDNCentral

فکر می‌کنم زمان آن فرا رسیده باشد که یک مقاله جامع در مورد کار با شبکه‌های نرم افزار محور در سایت قرار دهیم. هدف از این مقاله ارائه یک دید کلی نسبت به شبکه SDN و نمایش نقشه راهی برای علاقه‌مندان و پژوهشگران عرصه فناوری اطلاعات در جهت پیاده‌سازی شبکه‌های SDN می‌باشد.

ظهور شبکه‌های SDN مزایای بسیاری را با خود به همراه داشته است. از جمله این مزیت ها امکان جداسازی سطح کنترل از سطح داده می‌باشد که منجر به مدیریت آسان شبکه‌ها شده و در نتیجه هزینه پیاده‌سازی شبکه‌ها و زمان اجرای آن‌ها به شدت کاهش می‌یابد. از دیگر مزایای آن می‌توان به نوآوری و انعطاف‌پذیری و همچنین تطبیق‌پذیری شبکه در برابر انواع ترافیک اشاره کرد.

اکثر شبکه‌های SDN مبتنی بر پروتکل OpenFlow می‌باشند. پروتکل OpenFlow واسطی برای ارتباط بین سطح کنترل (کنترلر(ها)) و سطح داده (تجهیزات شبکه از جمله سوئیچ‌ها) می‌باشد. (برای مشاهده جزییات نسخه‌های مختلف پروتکل اوپن فلو به این لینک مراجعه کنید.) برای پیاده‌سازی چنین شبکه‌هایی شما می‌بایست حداقل با یک کنترلر و یک سوئیچ کار کنید و برای بخش کنترلی نیز شما انتخاب‌های متفاوتی خواهید داشت. از جمله کنترلرهای مطرح SDN می‌توان به Floodlight، OpenDaylight، RYU، ONOS، POX و Beehive اشاره کرد که شما می‌توانید با توجه به زبان برنامه‌نویسی، توزیع‌شدگی، ورژن OpenFlow، واسط REST و همچنین مقیاس شبکه مدنظرتان به انتخاب کنترلر بپردازید. به خاطر داشته باشید که اغلب برنامه‌های فوق و برنامه‌هایی که در ادامه معرفی می‌شوند باید در لینوکس نصب شوند (در این لینک می‌توانید آموزش نصب اوبونتو بر روی ماشین مجازی ملاحظه کنید.)

در بخش سطح داده نیز می‌توانید از Mininet که محبوبترین بستر پیاده‌سازی شبکه نرم افزار محور می‌باشد استفاده نمایید. شما می‌توانید در Mininet از میزبان‌های مجازی (Virtual Hosts)، لینک‌های مجازی (Virtual Links) و همچنین سوئیچ‌های مجازی (Open vSwitch، LINC و غیره)  ارائه شده استفاده نمایید و با یک اسکریپت ساده یک شبکه تا سقف ۱۰۰۰ گره ایجاد نمایید. پس توجه داشته باشید که Mininet یک بستر برای ایجاد Hostها، Linkها و سوئیچ‌ها می‌باشد. شما می‌توانید در اسکریپت Mininet، آدرس آی پی کنترلر و پورت آن را مشخص نمایید تا پس از اجرای کد به طور خودکار اتصال بین سوئیچ‌ها و کنترلر(ها) برقرار شود.

پس از گذراندن مراحل فوق نوبت به توسعه کد و ایجاد ماژول در کنترلر فرا می‌رسد. مرحله جالب و دشوار کار اینجاست. چراکه شما می‌بایست با مفاهیمی از جمله شبکه نرم افزار محور، پروتکل OpenFlow، واسط REST و سوئیچ‌های مجازی آشنایی کامل داشته باشید و پس از درک کامل موارد فوق، می‌توانید وارد بحث تخصصی پیاده‌سازی شبکه نرم افزار محور شوید.

کنترلر Floodlight

برای توسعه بخش کنترلر شما گزینه‌های زیادی در پیش روی خود دارید. کنترلر Floodlight با Mailing list بسیار فعال خود و واسط گرافیکی کاربرپسند و همچنین مستندات کاملی که دارد، می‌تواند انتخاب مناسبی باشد. در نسخه جدید این کنترلر، امکان تنظیم نقش کنترلر و استفاده از چندین کنترلر توزیعی نیز فراهم شده که شما می‌توانید یک توپولوژی با چندین کنترلر که امکان Sync بین آن‌ها وجود دارد، ایجاد کنید.

شرکت‌های معتبر بسیاری از جمله Arista, Brocade, Citrix, Dell, Extreme Networks, Fujitsu, Google, HP, IBM, Intel, Juniper Networks and Microsoft از کنترلر Floodlight استفاده نموده‌اند.

از جمله موسسات معتبر دنیا که از این کنترلر در شبکه پروداکشن خود استفاده نموده‌اند، می‌توان به SRI International، Caltech / CERN، Radware، Firemon، WIND6 و Overture اشاره کرد که جالب است بدانید که موسسه CERN با استفاده از کنترلر Floodlight توانسته است صدها پتابایت (!!) دیتا را توزیع و پردازش کند. هسته اصلی کنترلر Floodlight و کنترلر قدرتمند شرکت Big Switch Networks مشابه می‌باشد و در واقع کنترلر Floodlight نسخه متن‌باز کنترلر Big Network Controller می‌باشد.

در شکل زیر شمای گرافیکی کنترلر Floodlight که با استفاده از REST API کار می‌کند را می‌بینید.

رابط گرافیکی کنترلر Floodlight

رابط گرافیکی کنترلر Floodlight

کنترلر OpenDaylight یا ODL

کنترلر ODL نیز در صنعت بسیار مورد توجه قرار گرفته و پروژه OpenDaylight توسط شرکت‌های معتبر حوزه IT و شبکه پشتیبانی می‌شود. جالب است که بدانید پایه کنترلرهای Cisco، HP، NEC و بسیاری از کنترلرهای تجاری دنیا همین کنترلر ODL می‌باشد.

شکل زیر بیانگر ارتباطات بین مولفه‌های مختلف کنترلر OpenDaylight می‌باشد که پیچیدگی ساختاری آن به وضوح مشخص شده است.

وابستگی مولفه‌های مختلف کنترلر ODL نسخه Beryllium

وابستگی مولفه‌های مختلف کنترلر ODL نسخه Beryllium

در شکل زیر شمای واسط گرافیکی OpenDaylight را تحت عنوان DLUX مشاهده می‌کنید که در این قسمت توپولوژی شبکه نمایش داده شده است.

رابط گرافیکی کنترلر ODL

رابط گرافیکی کنترلر ODL

همچنین می‌توانید بخشی از اعضای پروژه OpenDaylight را در ذیل مشاهده کنید.

اعضای پروژه ODL

اعضای پروژه ODL

کنترلرهای POX و RYU

کنترلرهای POX و RYU نیز که به زبان پایتون نوشته شده اند گزینه‌های دیگر می‌باشند. متاسفانه کنترلر POX تا این زمان وعده ای در مورد فراهم نمودن نسخه‌های OpenFlow بالاتر از ورژن 1.0 نداده است و این کمی جای نگرانی برای برنامه نویسان شبکه دارد اما نکته قابل تامل در زمینه استفاده از این کنترلر سادگی آن می‌باشد و برای شروع کار استفاده از این کنترلر توصیه می‌شود. کنترلر RYU مشابه با Floodlight و OpenDaylight از ورژن‌های بالاتر OpenFlow و همچنین OpenStack پشتیبانی می‌کند ولی تاکنون گزارشی مبنی بر استفاده از این کنترلر در شبکه های پروداکشن ندیده‌ام و از نظر کارایی عملکرد بهینه‌ای ندارد.

کنترلر توزیعی چیست؟

همانطور که می دانید، ساده ­سازی یکی از مهم­ترین مزایای شبکه نرم­ افزار محور است و اغلب با مفهوم پیاده­ سازی یک بخش کنترلری منطقا پیچیده به صورت یک برنامه کنترلی ساده در یک کنترلر مرکزی عنوان می­‌شود.­ اما در عمل، کنترلرهای SDN به علت محدودیت­‌های کارایی و قابلیت اطمینان به سیستم­ های توزیع شده تبدیل شده‌­اند و ظاهرا برنامه‌­های کنترلی ساده به منطقی پیچیده تبدیل می­‌شوند که این منطق نیازمند توجه ویژه در بخش طراحی و بهینه­ سازی است. با این مقدمه به معرفی چند کنترلر توزیعی در ادامه می‌پردازیم.

کنترلر Beehive یک پلتفرم کنترل توزیعی است که هدف آن ساده­ سازی فرآیند فوق الذکر است. اساس این طرح بر پایه یک انتزاع برنامه­ نویسی است که تقریبا با مفهوم کنترلر متمرکز برابری می ­کند و در عین حال، این پلت­فرم به صورت اتوماتیک استنتاج می­ کند که چگونه برنامه ­های کاربردی، وضعیت خود و وابستگی­ شان به یکدیگر را حفظ کنند. به کمک این انتزاع، پلت­فرم به صورت خودکار نسخه­ ای توزیعی از هر برنامه کنترلی تولید می­‌کند و در عین حال رفتار برنامه کاربردی را زیر نظر دارد. با ابزار زمان اجرا، این پلتفرم به صورت خودکار برنامه­ ها را با هدف بهینه­‌سازی کلی کنترل، بین کنترلرها مهاجرت می‌­دهد. Beehive همچنین بازخوردی را فراهم می­‌کند تا گلوگاه ­(bottleneck) های طراحی در برنامه کنترلری مشخص شود و به توسعه دهندگان کمک می­کند تا کارایی بخش کنترلی را افزایش دهند. کنترلر ONOS یکی دیگر از نمونه های کنترلر توزیعی است که با هدف برآوردن نیازهای کارایی، مقیاس­ پذیری و در دسترس بودن برای اپراتورهای شبکه ­های بزرگ طراحی شده است.

در این مقاله سعی بر آن بود تا با ارائه یک دید کلی از SDN شما عزیزان را بیشتر با دنیای جدید SDN آشنا کنیم. مزایای SDN در این بخش مورد بررسی قرار گرفت و سطح داده و کنترل، و نیز نحوه توسعه هریک از این بخش ها بصورت اجمالی بررسی شد. کنترلرهای مختلف مورد بررسی قرار گرفت و ویژگی های هریک از آن ها ذکر شد تا علاقمندان با توجه به فیلد کاری و حوزه مطالعاتی خود، دیدگاهی کلی را بدست آورند. امید است این مقاله توانسته باشد بابی جدید پیش روی شما پژوهشگر گرامی گشوده باشد.

نظرات خود را با ما در میان بگذارید و نیز می توانید سوالات خود را از طریق انجمن  پرسیده و پاسخ خود را دریافت نمایید. همچنین از طریق فرم تماس سایت و یا @SDNCentral_Admin می‌توانید همراه درخواست‌های آموزشی خود را مطرح فرمایید تا در اسرع وقت به آن‌ها رسیدگی شود.

در ضمن یک ویدیوی آموزشی معرفی SDN برایتان آماده کردم که میتونید در این لینک آن را مشاهده نمایید.

(4) دیدگاه

  • رشادی پاسخ

    با سلام و خداقوت
    ممنون از تلاشهای مثمر ثمرتون
    ممکنه تفاوت روتر با کنترلر sdn توضیح بدید؟
    قبلا از همکاریتون ممنونم

    ۱۵ آبان ۱۳۹۵ در ۱:۳۴ ق.ظ
  • محمد پاسخ

    سلام . به نظرم این مقاله با عنوان آن یعنی «نقشه ی راه شبکه ی نرم افزار محور» به طور کامل همخوانی دارد و توانست در چند دقیقه افقی را فرارویم ترسیم کند و مرا تشویق و ترغیب به سرمایه گذاری برای یاد گیری آن نموده و اشتیاق مرا برای به کار گیری آن صد چندان افزایش داد. به پایگاه شما باز هم سر می زنم و آن را به دوستان و همکارانم نیز معرفی می کنم. بیش از ده سال است که در زمینه ی فناوری اطلاعات مشغول به کار هستم و در این زمینه تحصیلات آکادمیک نیز دارم. اما هنوز فکر می کنم که در این راه همواره دانشجو و دانش پژوه باقی بمانم.
    پیروز باشید.

    ۲۱ دی ۱۳۹۵ در ۱۲:۴۷ ب.ظ
    • سید حسام قاسمی
      سید حسام قاسمی پاسخ

      سلام محمد جان. ممنون از لطفتون امیدوارم که با کمک هم بتونیم رشد پیدا کنیم و من هم از حضور شما استفاده ببرم.
      قطعا با همراهی هم و پشتکار میتونیم به موفقیت میرسیم. خیلی خوشحال میشم وقتی میبینم بزرگوارانی با تجربه مثل شما در جمع ما وجود دارن.
      موفق باشید

      ۲۲ دی ۱۳۹۵ در ۱۲:۴۴ ق.ظ

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *