SDN چیست ؟ پروتکل اوپن فلو چیست ؟


SDN چیست

SDN چیست ؟

SDN چیست ؟ با مراجعه به وبسایت بنیاد ONF، به چنین تعریفی از شبکه نرم افزار محور (SDN) خواهیم رسید:

 

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

این معماری با جداسازی کنترل شبکه از بخش هدایت، این امکان را فراهم می‌کند که کنترل شبکه به طور مستقیم قابل برنامه‌ریزی شود و زیرساخت شبکه برای اپلیکیشن‌ها و خدمات شبکه انتزاعی شود. پروتکل OpenFlow یک المان اصلی برای ایجاد راهکارهای SDN می‌باشد.

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

ویژگی‌های معماری SDN

با توجه به مطالب مندرج در وبسایت بنیاد ONF، معماری SDN دارای ویژگی‌های زیر می‌باشد:

«از آنجایی که سطح کنترل از سطح داده جدا شده است، می‌توان با برنامه‌نویسی شبکه را کنترل نمود». فرض کنید می‌خواهید تصمیم بگیرید بسته‌ای بجای پورت ۲ از پورت ۳ خارج شود و برای این کار کدنویسی کنید.

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

به طور مثال در نظر بگیرید ترافیک جدیدی وارد شبکه شده است؛ کنترلر می‌تواند تشخیص دهد این ترافیک بسیار حیاتی است ؛ سپس نرخ سایر ترافیک‌ها را کاهش دهد و یا حتی سایر جریان‌ها را بین لینک‌های دیگر تقسیم کند تا یک لینک اختصاصی به این ترافیک جدید تخصیص داده شود و هر سناریوی دیگری که فکرش را بکنید! فقط کافی است بتوانید کد مدنظرتان را در کنترلر بنویسید.

«هوش شبکه در کنترلرهای SDN (به صورت منطقی) متمرکز است که این امر موجب دستیابی به دید کلی نسبت به شبکه می‌شود. با این اوصاف، از دید اپلیکیشن‌ها و موتورهای سیاست، کل زیرساخت شبکه به عنوان یک سوئیچ منطقی واحد به نظر می‌رسد». با استفاده از یک کنترلر، شما دیگر کار زیادی با بستر زیرساخت فیزیکی شبکه نخواهید داشت و برای اعمال سیاست و تنظیم جریان، کافی است تصمیم مورد نظرتان را به صورت برنامه به کنترلر بدهید و ببینید که چگونه در همان لحظه آن تغییرات اعمال می‌شود. شگفت انگیز است مگر نه؟

«SDN مدیران شبکه را قادر به پیکربندی، مدیریت، امن‌سازی و بهینه‌سازی منابع شبکه با سرعت زیاد و از طریق برنامه‌های خودکار و پویا می‌کند؛ این برنامه‌ها می‌توانند توسط مدیران شبکه نیز نوشته شوند؛ زیرا به هیچ نرم‌افزار اختصاصی دیگری وابسته نیستند».

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

«زمانی که SDN با استفاده از استانداردهای آزاد پیاده‌سازی شود، طراحی و عملیات شبکه ساده می‌شود؛ زیرا به جای اینکه دستورات توسط چندین تجهیز و پروتکل مخصوص فروشنده ارائه شود، از طریق کنترلر SDN این دستورات صادر می‌شوند». این به معنای رهایی از نزاع همیشگی مدیران شبکه بر سر انتخاب فروشنده و پایان نگرانی در مورد همکاری متقابل پروتکل‌های فروشندگان مختلف در کنار یکدیگر می‌باشد. همچنین مانبع بوجود آمدن Vendor lock-in خواهد شد.

تشریح کوتاه و کاربردی معماری SDN

در این معماری  بخش کنترل از بخش داده جدا شده است. در یک معماری SDN/OpenFlow، دو مولفه اصلی وجود دارد:

در ادامه به بررسی این دو قسمت اصلی معماری SDN می‌پردازیم.

تجهیزات زیرساخت یا سوئیچ‌های SDN

یک زیرساخت SDN همانند شبکه‌های سنتی دارای مجموعه‌ای از تجهیزات شبکه (از جمله سوئیچ‌ها،‌ مسیریاب‌ها و جعبه‌های میانی (Middlebox Appliances)) می‌باشد. تنها تفاوتی که در این بین وجود دارد، تبدیل تجهیزات فیزیکی سنتی به عناصر ساده روانه‌سازی می‌باشد که این عناصر فاقد بخش کنترلی و یا نرم‌افزاری جهت تصمیم‌گیری‌های خودکار می‌باشد.

هوش شبکه از تجهیزات بخش داده به یک سیستم کنترلی به طور منطقی متمرکز انتقال یافته است که آن را کنترلر می‌نامند. این سیستم کنترلی شامل سیستم عامل شبکه و برنامه‌های کاربردی آن می‌باشد.

OpenFlow چیست؟

به منظور اطمینان از قابلیت همکاری و سازگاری بین کنترلرها و تجهیزات مختلف SDN، می‌بایست این شبکه‌ها بر روی واسط‌های باز و استانداردی (از جمله OpenFlow) ایجاد شوند. این واسط‌ها برای ارتباط بین کنترلر و سوئیچ‌های SDN ضروری می‌باشند و در صورت وجود چنین واسطی، کنترلر قادر به برنامه‌ریزی تجهیزات شبکه از برند‌های مختلف خواهد بود.

لازم به ذکر است که در شبکه‌های سنتی برای برنامه‌ریزی و پیکربندی تجهیزات باید زمان و انرژی زیادی صرف می‌شد و همچنین تجهیزات بصورت تک تک باید توسط مدیر شبکه تنظیم می‌شدند.

خط لوله یا پایپ لاین OpenFlow چیست؟

یک دستگاه روانه‌سازی مبتنی بر پروتکل OpenFlow دارای خط لوله‌ای از جداول جریان (Flow Tables) است که هر مدخل (Entry) از این جداول شامل سه بخش می‌باشد:

  • یک قاعده انطباق (Matching Rule)؛
  • یک اقدام (Action) که برای بسته‌های انطباق‌یافته صورت می‌پذیرد؛
  • و شمارنده‌هایی که آمار بسته‌های انطباق‌یافته را نگهداری می‌کنند.

این مدل سطح بالا از OpenFlow در حال حاضر در ساخت و پیاده‌سازی بسیاری از دستگاه‌های بخش داده‌ی SDN، بکارگرفته شده است.

شکل ۱ ساختار مدخل جریان (Flow Entry) در سوئیچ SDN
شکل ۱ ساختار مدخل جریان (Flow Entry) در سوئیچ SDN

مدخل جریان یا Flow Entry چیست؟

همانگونه که در شکل ‏فوق نیز نشان داده شده است، یک مدخل جریان می‌تواند به شکل‌های مختلفی تعریف شود. اگر هیچ قاعده‌ی پیش‌فرضی بر روی سوئیچ نصب نشده باشد آن‌گاه بسته دور ریخته خواهد شد. اگرچه به طور متداول، یک قاعده پیش‌فرض بر روی سوئیچ نصب خواهد شد که به سوئیچ دستور می‌دهد تمامی بسته‌های دریافتی را به سمت کنترلر ارسال نماید و یا به خط لوله معمولی غیر OpenFlow موجود در سوئیچ ارسال کند. الویت‌های این قواعد بر اساس شماره جداول و ترتیب سطرهای جداول جریان می‌باشد؛ یعنی ابتدا قواعد موجود در جدول ۰ و سپس قواعد موجود در جدول ۱ و الی آخر.

توضیح: در سوئیچ‌های هیبرید با استفاده از خط لوله Normal، این قابلیت وجود دارد که به طور پیش‌فرض می‌توان بسته‌ها را بدون استفاده از پروتکل OpenFlow هدایت نمود.

اقدام یا action چیست؟

پس از روی دادن یک انطباق می‌بایست اقداماتی برای آن جریان صورت پذیرد. اقدام‌ها (Actions) شامل موارد زیر می‌باشند:

  • هدایت بسته به سمت پورت(های) خروجی تعیین شده
  • کپسوله (Encapsulate) و سپس هدایت کردن بسته به سمت کنترلر
  • دور ریختن بسته (Drop)
  • ارسال آن به سمت خط لوله عادی (Normal pipeline)
  • ارسال آن به جدول جریان بعدی و یا به جداول خاص (مانند جداول گروه (Group Tables) و یا جداول اندازه‌گیری (Metering Tables))

کنترلر SDN چیست ؟

کنترلر همانند یک سیستم عامل شبکه می‌باشد که کنترل سخت‌افزار را برعهده گرفته و هم‌چنین مدیریت خودکار شبکه را تسهیل می‌کند. این سیستم عامل، یک واسط قابل برنامه‌ریزی متمرکز و یکپارچه را برای تمام شبکه فراهم می‌سازد.

همانگونه که سیستم عامل موجود بر روی یک رایانه، امکان خواندن و نوشتن را برای برنامه‌های کاربردی فراهم می‌کند، سیستم عامل شبکه نیز قابلیت مشاهده و کنترل شبکه را فراهم می‌سازد؛ بنابراین کنترلر، به تنهایی عمل مدیریت شبکه را انجام نمی‌دهد بلکه صرفا به عنوان یک واسط قابل برنامه‌ریزی می‌باشد که امکان مدیریت شبکه را برای نرم‌افزارهای کاربر فراهم می‌کند.

t.me/SDNCentral
 

(5) دیدگاه

  • Avatar
    مریم پاسخ

    سلام .اگه امکانش هست .مرجع این نوشته هارو برام بگین .بهش نباز دارم واقعا.

     
    ۱۸ شهریور ۱۳۹۶ در ۱۲:۱۵ ب.ظ
    • نفیسه دانشگر مقدم
      نفیسه دانشگر مقدم پاسخ

      سلام.
      از مجموع چند مقاله گردآوری شده است اما یکی از منابع مطلب فوق مقاله “Software-Defined Networking: A Comprehensive Survey” مرحوم سیامک عضد الملکی است.

       
      ۱۸ شهریور ۱۳۹۶ در ۱۰:۲۵ ب.ظ
  • Avatar
    یه همچین پاسخ

    موفق باشید . مطالب بسیار خوبی دارید

     
    ۴ اردیبهشت ۱۳۹۷ در ۵:۴۱ ق.ظ
  • Avatar
    سید ابوالقاسم شمندی پاسخ

    اگر میشود یک منبع از اینرا برای بنده بفرستید
    با عرض تشکر

     
    ۱۲ تیر ۱۳۹۷ در ۲:۵۷ ب.ظ
  • Avatar
    marzieh پاسخ

    با سلام

    چند تا مقاله 2017 یا 2018 در مورد مهندسی ترافیک در SDN میخواستم.

     
    ۹ اسفند ۱۳۹۷ در ۱۰:۲۷ ق.ظ

پاسخی بگذارید

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