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

یکی از ویژگی‌های مهم SDN جداسازی صفحه کنترل از صفحه دیتا است. اگر از امولاتور mininet برای پیاده‌سازی استفاده می‌کنید دقت کنید که از این امولاتور فقط برای پیاده‌سازی data plane معماری SDN استفاده می‌شود (اگرچه mininet دارای یک کنترلر basic می‌باشد که می‌تواند موجب خروجی درست pingall شود) و برای پیاده‌سازی فانکشن‌های شبکه از لایه ۱ تا ۴ می‌توانید از کنترلرهای SDN (کنترلر‌های OpenFlow) استفاده نمایید (پیاده‌سازی control plane). پس مثلا در mininet دنبال روتر یا فایروال یا … نگردید بلکه این قابلیت‌ها را باید در کنترلری که استفاده می‌کنید بیابید و درصورتی‌که در کنترلر قابلیت مورد نظرتان پیاده‌سازی نشده است دو راه دارید؛ یا اینکه کنترلرتان را تغییر دهید و یا خودتان دست به کد شوید و فانکشن (اپلیکیشن یا قابلیت) مورد نظر را ایجاد کنید.

چرا لایه ۱ تا ۴؟

پیش‌تر گفته شد که با استفاده کنترلرهای اوپن فلو می‌توان فانکشن‌های لایه ۱ تا ۴ را پیاده سازی نمود؛ مثلا L2Switching یا L3Routing یا فایروال لایه ۴. دلیلش این است که در پروتکل OpenFlow نمی‌توان برای لایه اپلیکیشن (لایه ۷) فیلتر انطباق (Matching Filter) تعریف کرد. در شکل زیر می‌توانید Match Fieldهای مختلفی که می‌تواند در Flow Table یک سوئیچ OpenFlow تعریف کرد را مشاهده کنید. برای مطالعه بیشتر در زمینه اوپن فلو به این لینک مراجعه کنید.

Image result for openflow match fields

برای لایه ۷ چکار کنیم؟

برای پیاده‌سازی قابلیت‌های لایه ۷ بهتر است یک VNF پیاده‌سازی کنید (VNF (مخفف Virtual Network Function) یک ماشین مجازی (یا کانتینر) است که یک فانکشن شبکه در آن پیاده‌سازی شده است؛ مثلا فانکشن فایروال لایه ۷) و سپس ترافیک‌هایی که قرار است بر روی آن‌ها عملیات لایه ۷ اجرا شود را به این VNF ارسال نمایید. اگر بخواهیم چند VNF داشته باشیم می‌توانیم با استفاده از Service Function Chaining زنجیره‌ای از فانکشن‌ها داشته باشیم. به شکل زیر توجه کنید:

Related image

در این شکل دو زنجیره سرویس (SF) با رنگ‌های قرمز و سبز مشخص شده اند. مثلا زنجیره سبز رنگ عبور ترافیک از Firewall و Video Optimizer را تعیین می‌کند.

جمع بندی

در این مقاله آموختیم که نوع عملکردی که از شبکه SDN می‌خواهیم بسته به اپلیکیشن، VNF …. دارد که باید در کنترلر و یا یک VM بصورت مجزایی برنامه نویسی شود و این عملکرد مجزا از محیط mininet (که یکسری هاست و سوئیچ مجازی در اختیارمان قرار می‌دهد) می‌باشد. توجه به این نکته و تشخیص لایه کارکرد فانکشن مورد نظر کمک شایانی در زمینه یافتن روشی برای پیاده‌سازی آن خواهد نمود.

 

پیاده سازی فانکشن های شبکه در کنترلر انجام می‌شود یا در مینینت؟
میانگین 5 امتیاز از 1 رای

(7) دیدگاه

  • padideh پاسخ

    سپاس از مقاله ی مفیدتون
    چرا باید اپلیکیشن بر روی یک VM مجزا اجرا شود؟ نمیتونیم این اپلیکیشن رو به عنوان یک ماژول به کنترل کننده اضافه کنیم؟ مگر اصولا یکی قابلیت های SDN همین ماژول نویسی برای کنترل نیست؟

    ۲۲ آذر ۱۳۹۶ در ۱:۴۰ ب.ظ
    • سید حسام قاسمی
      سید حسام قاسمی پاسخ

      ممنون از توجهتون.
      به جهت اینکه سربار کنترلر خیلی بالا نره بهتره که VM جدا براش تعبیه بشه (یک VNF). درواقع از تکنولوژی NFV برای ایجاد فانکشن‌ها و از تکنولوژی SDN برای ایجاد SFC استفاده بشه

      ۲۶ آذر ۱۳۹۶ در ۳:۱۹ ب.ظ
  • ناشناس پاسخ

    درود برشما وب سایت خیلی خوبییی بود
    ممنون از اشتراک گذاریتون
    موفق و پیروز باشید دوست عزیز

    ۱۹ بهمن ۱۳۹۶ در ۹:۴۳ ق.ظ
  • ناشناس پاسخ

    سلام وقت بخیر سایت خیلی خوبی دارید ممنون

    ۲۶ بهمن ۱۳۹۶ در ۳:۴۲ ب.ظ
  • فاطمه پاسخ

    سلام و عرض خسته نباشید و تشکر بابت سایت و مطالب مفیدتون…
    من دانشجوی کارشناسی نرم افزار هستم و موضوع پایان نامه ام امنیت در SDN هست ، میخاستم بدونم که الان بحث امنیت رو می تونم با Mininet پیاده سازی کنم؟

    ۸ اسفند ۱۳۹۶ در ۳:۵۷ ب.ظ
    • سید حسام قاسمی
      سید حسام قاسمی پاسخ

      سلام. چه نوع امنیتی؟ منظورتون از امنیت چی هست؟ چی رو میخواهید بررسی کنید؟ چون خود امنیت گستره وسیعی رو شامل میشه

      ۱۱ اسفند ۱۳۹۶ در ۳:۱۴ ب.ظ
  • ناشناس پاسخ

    سلام به جرات می تونم بگم تو زمینه ی فعالیتتون بهترین هستید سپاس فراوان

    ۱۲ اسفند ۱۳۹۶ در ۶:۲۷ ب.ظ

دیدگاهتان را بنویسید

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