شبکه مبتنی بر نرمافزار (SDN) روشی نوین در شبکهسازی است. در این روش، از کنترلکنندههای نرمافزاری یا رابطهای برنامهنویسی کاربردی (API) برای ارتباط با زیرساخت سختافزاری شبکه و هدایت ترافیک استفاده میشود.
این مدل با شبکههای سنتی تفاوت اساسی دارد. در شبکههای قدیمی، دستگاههای سختافزاری اختصاصی مانند روترها و سوئیچها وظیفه کنترل ترافیک شبکه را بر عهده داشتند. اما SDN این امکان را فراهم میکند که یک شبکه مجازی ایجاد شود یا حتی سختافزارهای سنتی از طریق نرمافزار کنترل گردند.
در حالی که مجازیسازی شبکه به سازمانها اجازه میدهد تا شبکههای مجازی مختلفی را در یک شبکه فیزیکی ایجاد کنند یا دستگاههای موجود در شبکههای فیزیکی جداگانه را به هم متصل کرده و یک شبکه مجازی واحد بسازند، شبکه مبتنی بر نرمافزار روش جدیدی را برای کنترل مسیردهی بستههای داده از طریق یک سرور مرکزی ارائه میدهد.
به عبارت دیگر، SDN مغز شبکه (کنترلکننده نرمافزاری) را از ماهیچههای آن (سختافزار) جدا میکند و به مدیران شبکه این امکان را میدهد تا شبکه را به صورت متمرکز و از طریق نرمافزار مدیریت و پیکربندی کنند.
چرا شبکه مبتنی بر نرمافزار (SDN) مهم است؟
SDN یک پیشرفت چشمگیر نسبت به شبکههای سنتی محسوب میشود و امکانات زیر را فراهم میکند:
کنترل بیشتر با سرعت و انعطافپذیری بالاتر: به جای برنامهریزی دستی چندین دستگاه سختافزاری با برندهای مختلف، توسعهدهندگان میتوانند جریان ترافیک را در شبکه به سادگی و از طریق برنامهریزی یک کنترلکننده نرمافزاری با استاندارد باز کنترل کنند. همچنین، مدیران شبکه در انتخاب تجهیزات شبکه انعطاف بیشتری دارند، زیرا میتوانند از یک پروتکل واحد برای ارتباط با هر تعداد دستگاه سختافزاری از طریق یک کنترلکننده مرکزی استفاده کنند.
- زیرساخت شبکه قابل تنظیم: با یک شبکه مبتنی بر نرمافزار، مدیران میتوانند خدمات شبکه را پیکربندی کرده و منابع مجازی را تخصیص دهند تا زیرساخت شبکه را به صورت لحظهای و از طریق یک مکان متمرکز تغییر دهند. این امر به مدیران شبکه اجازه میدهد تا جریان داده را در شبکه بهینه کرده و برنامههایی را که به دسترسی بیشتری نیاز دارند، اولویتبندی کنند.
- امنیت قوی: یک شبکه مبتنی بر نرمافزار دید کاملی از کل شبکه ارائه میدهد و در نتیجه، دیدگاه جامعتری نسبت به تهدیدات امنیتی فراهم میکند. با گسترش دستگاههای هوشمند متصل به اینترنت، SDN مزایای آشکاری نسبت به شبکههای سنتی دارد. اپراتورها میتوانند مناطق جداگانهای برای دستگاههایی که به سطوح امنیتی مختلف نیاز دارند ایجاد کنند یا فوراً دستگاههای آلوده را قرنطینه کنند تا از آلوده شدن بقیه شبکه جلوگیری شود.
- تفاوت کلیدی بین SDN و شبکههای سنتی در زیرساخت آنهاست: SDN مبتنی بر نرمافزار است، در حالی که شبکههای سنتی مبتنی بر سختافزار هستند. از آنجایی که لایه کنترل در SDN نرمافزاری است، این نوع شبکه بسیار انعطافپذیرتر از شبکههای سنتی است. SDN به مدیران اجازه میدهد تا شبکه را کنترل کنند، تنظیمات پیکربندی را تغییر دهند، منابع را تخصیص دهند و ظرفیت شبکه را افزایش دهند – همه اینها از طریق یک رابط کاربری متمرکز و بدون نیاز به سختافزار بیشتر انجام میشود.
- همچنین تفاوتهای امنیتی بین SDN و شبکههای سنتی وجود دارد. به لطف دید بیشتر و توانایی تعریف مسیرهای امن، SDN از بسیاری جهات امنیت بهتری را ارائه میدهد. با این حال، از آنجایی که شبکههای مبتنی بر نرمافزار از یک کنترلکننده مرکزی استفاده میکنند، ایمنسازی این کنترلکننده برای حفظ امنیت کل شبکه حیاتی است.
شبکه مبتنی بر نرمافزار چگونه کار میکند؟
در اصول اولیه SDN، مانند هر چیز مجازیسازی شده دیگری، نرمافزار از سختافزار جدا میشود. لایه کنترل را که تعیین میکند ترافیک به کجا ارسال شود، به نرمافزار منتقل میکند و لایه داده را که در واقع ترافیک را ارسال میکند، در سختافزار باقی میگذارد. این امر به مدیران شبکه که از SDN استفاده میکنند، امکان میدهد تا کل شبکه را از طریق یک رابط کاربری واحد به جای پیکربندی دستگاه به دستگاه، برنامهریزی و کنترل کنند.
یک معماری شبکه مبتنی بر نرم افزار از سه بخش تشکیل شده است که ممکن است در مکانهای فیزیکی مختلف قرار داشته باشند:
- برنامهها (Applications): این بخش شامل نرمافزارهایی است که درخواستهای مربوط به منابع یا اطلاعات کلی شبکه را به کنترلکنندهها ارسال میکنند.
- کنترلکنندهها (Controllers): کنترلکنندهها از اطلاعات دریافتی از برنامهها استفاده میکنند تا تصمیم بگیرند که چگونه یک بسته داده را مسیریابی کنند. این بخش، مغز متفکر شبکه SDN است.
- دستگاههای شبکه (Networking devices): این بخش شامل دستگاههای فیزیکی یا مجازی شبکه است که دستورالعملهای مربوط به نحوه جابجایی دادهها را از کنترلکننده دریافت میکنند و در واقع دادهها را در شبکه منتقل میکنند.

دستگاههای شبکه، چه فیزیکی و چه مجازی، دادهها را در طول شبکه جابجا میکنند. در برخی موارد، سوئیچهای مجازی که ممکن است در نرمافزار یا سختافزار تعبیه شده باشند، وظایف سوئیچهای فیزیکی را بر عهده میگیرند و عملکردهای آنها را در یک سوئیچ هوشمند واحد ادغام میکنند. این سوئیچ، یکپارچگی بستههای داده و همچنین مقصد ماشینهای مجازی آنها را بررسی کرده و بستهها را در مسیر درست هدایت میکند.
مزایای شبکه مبتنی بر نرمافزار
بسیاری از خدمات و برنامههای امروزی، به ویژه آنهایی که با فضای ابری مرتبط هستند، بدون SDN قادر به کارکردن نیستند. SDN امکان جابجایی آسان دادهها بین مکانهای مختلف را فراهم میکند که برای برنامههای ابری بسیار حیاتی است.
علاوه بر این، SDN از جابجایی سریع حجمهای کاری در سراسر شبکه پشتیبانی میکند. برای مثال، تقسیم یک شبکه مجازی به بخشهای مختلف، با استفاده از تکنیکی به نام مجازیسازی عملکردهای شبکه (NFV)، به ارائهدهندگان خدمات مخابراتی این امکان را میدهد تا خدمات مشتری را به سرورهای ارزانتر یا حتی به سرورهای خود مشتری منتقل کنند. ارائهدهندگان خدمات میتوانند از یک زیرساخت شبکه مجازی برای انتقال حجمهای کاری از زیرساختهای ابری خصوصی به عمومی در صورت نیاز و همچنین ارائه فوری خدمات جدید به مشتریان استفاده کنند. SDN همچنین مقیاسپذیری و انعطافپذیری شبکه را با افزودن یا حذف ماشینهای مجازی توسط مدیران شبکه، چه در محل و چه در فضای ابری، آسانتر میکند.
در نهایت، به دلیل سرعت و انعطافپذیری که SDN ارائه میدهد، قادر به پشتیبانی از روندهای نوظهور و فناوریهایی مانند محاسبات لبهای و اینترنت اشیا است که نیازمند انتقال سریع و آسان دادهها بین سایتهای راه دور هستند.
تفاوت SDN با شبکههای سنتی
تفاوت اصلی بین SDN و شبکههای سنتی در زیرساخت آنهاست:
- SDN مبتنی بر نرمافزار است، در حالی که شبکههای سنتی مبتنی بر سختافزار هستند.
به دلیل اینکه لایه کنترل در SDN مبتنی بر نرمافزار است، این نوع شبکه بسیار انعطافپذیرتر از شبکههای سنتی است. شبکه مبتنی بر نرم افزار به مدیران این امکان را میدهد تا:
- شبکه را کنترل کنند.
- تنظیمات پیکربندی را تغییر دهند.
- منابع را تخصیص دهند.
- ظرفیت شبکه را افزایش دهند.
همه این کارها از طریق یک رابط کاربری متمرکز و بدون نیاز به افزودن سختافزار بیشتر انجام میشود.
همچنین تفاوتهایی در امنیت بین شبکه مبتنی بر نرم افزار و شبکههای سنتی وجود دارد:
به لطف دید بیشتر و توانایی تعریف مسیرهای امن، SDN از بسیاری جهات امنیت بهتری را ارائه میدهد. با این حال، از آنجایی که شبکههای مبتنی بر نرمافزار از یک کنترلکننده مرکزی استفاده میکنند، ایمنسازی این کنترلکننده برای حفظ امنیت کل شبکه بسیار مهم است. این نقطه واحد خرابی میتواند یک آسیبپذیری بالقوه برای Software Defined Networking باشد.
مدلهای مختلف SDN چیست؟
اگرچه ایده اصلی SDN، یعنی کنترل متمرکز جریان داده در سوئیچها و روترها توسط نرمافزار، در تمام انواع آن یکسان است، اما مدلهای مختلفی برای پیادهسازی شبکههای مبتنی بر نرم افزار وجود دارد:
- SDN باز(Open SDN) : در این مدل، مدیران شبکه از یک پروتکل استاندارد مانند OpenFlow برای کنترل رفتار سوئیچهای مجازی و فیزیکی در لایه داده استفاده میکنند. 1 به عبارت دیگر، یک زبان مشترک برای صحبت کردن با سختافزار شبکه وجود دارد.
- SDN از طریق APIها: به جای استفاده از یک پروتکل باز، در این مدل از رابطهای برنامهنویسی کاربردی (API) برای کنترل نحوه حرکت دادهها در شبکه و در هر دستگاه استفاده میشود. هر دستگاه شبکه APIهای خاص خود را دارد که نرمافزار کنترلکننده با آنها ارتباط برقرار میکند.
- مدل پوششی (SDN Overlay Model) این نوع، یک شبکه مجازی را بر روی زیرساخت سختافزاری موجود اجرا میکند. این کار از طریق ایجاد تونلهای پویا به مراکز داده مختلف (چه در محل و چه از راه دور) انجام میشود. شبکه مجازی پهنای باند را روی کانالهای مختلف تخصیص میدهد و دستگاهها را به هر کانال اختصاص میدهد، در حالی که شبکه فیزیکی دست نخورده باقی میماند. این مانند ساختن جادههای مجازی روی جادههای فیزیکی موجود است.
- SDN ترکیبی (Hybrid SDN) این مدل، SDN را با پروتکلهای شبکه سنتی در یک محیط ترکیب میکند تا از عملکردهای مختلف در شبکه پشتیبانی کند. پروتکلهای شبکه استاندارد همچنان برخی از ترافیک را هدایت میکنند، در حالی که SDN مسئولیت ترافیک دیگر را بر عهده میگیرد. این به مدیران شبکه اجازه میدهد تا SDN را به صورت مرحلهای در یک محیط قدیمی پیادهسازی کنند، بدون اینکه نیاز به جایگزینی کامل زیرساخت موجود باشد. این مانند استفاده همزمان از جادههای قدیمی و جادههای جدید برای مدیریت ترافیک است.
