شبکه مبتنی بر نرم افزار یا Software-Defined Networking که به اختصار SDN نامیده میشود، یک رویکرد انقلابی در معماری و مدیریت شبکه محسوب میشود که هدف آن سادهسازی و بهینهسازی عملیات شبکه است.SDN از کنترلکنندههای مبتنی بر نرمافزار یا رابطهای برنامهنویسی کاربردی (API) برای ارتباط با زیرساختهای سختافزاری و ترافیک در شبکه استفاده میکند.
شبکه SDN چیست؟
شبکه مبتنی بر نرمافزار شامل سطح داده (در لایه زیرساخت شبکه)، سطح کنترل و سطح اپلیکیشن است.
اگر پیش از این با واژه شبکه مبتنی بر نرم افزار مواجه شده باشید، احتمالا این سوال برایتان پیش آمده که سطوح کنترل، داده و اپلیکیشن در SDN چیست؟ معماری SDN این اجزا را شامل میشود: سطح کنترلکننده SDN، سطح داده و سطح اپلیکیشن. کنترلکننده SDN به عنوان مغز شبکه عمل میکند و نمای متمرکزی از کل زیرساخت را ارائه میکند. علاوه بر این، سیاستهای سطح بالا را به دستورالعملهای خاص برای سوییچها یا روترها تبدیل مینماید. سطح داده در شبکههای مبتنی بر نرمافزار یک لایه در معماری شبکه است که به صورت فیزیکی، ترافیک را بر اساس تنظیمات ارائهشده از سطح کنترل، مدیریت مینماید. به طور سادهتر میتوان گفت که سطح کنترل، تعیین میکند که بستههای داده چگونه باید ارسال شوند؛ اما سطح داده وظیفه ارسال این دادهها را به عهده دارد. سطح اپلیکیشن نیز درخواستهای مرتبط با اپلیکیشنهای کسبوکار را به سطوح کنترل و داده ارائه میکند.
این مدل، با شبکههای سنتی که از دستگاههای سختافزاری اختصاصی مانند روترها و سوییچها برای کنترل ترافیک شبکه استفاده میکنند، متفاوت است. SDN هم میتواند یک شبکه مجازی را ایجاد و هدایت کند، یا میتواند یک سختافزار سنتی را از طریق نرمافزار تحت کنترل بگیرد. در روش سنتی، دستگاههای شبکه مانند روترها و سوییچها، سطح داده و سطح کنترل را مدیریت میکنند؛ اما با SDN این دو به طور کامل از هم جدا میشوند. سطح کنترل به یک هدایتکننده مبتنی بر نرمافزار منتقل میشود که میتواند با تمام دستگاههای شبکه از طریق APIها ارتباط برقرار کند.
این جداسازی سطح کنترل از زیر ساخت سختافزاری زیربنایی، مزایای متعددی را به همراه دارد. در مرحله اول، به مدیران این امکان را میدهد که با تعریف خط مشیها و قوانین از طریق یک رابط نرمافزاری متمرکز، از فرایند مدیریت شبکه سادهتری بهرهمند شوند. این امر، نیاز به پیکربندی دستی دستگاههای جداگانه را که میتواند زمانبر و مستعد خطا باشد، از بین میبرد.
از سوی دیگر، شبکه مبتنی بر نرم افزار انعطافپذیری و چابکی بیشتری را در عملیات شبکه فراهم میسازد. مدیران میتوانند به صورت پویا منابع را تخصیص دهند، الگوهای جریان ترافیک را تنظیم کنند و تغییرات را بدون نیاز به پیکربندی مجدد فیزیکی دستگاههای سختافزاری، اجرا کنند. این انعطافپذیری به ویژه در محیطهای تجاری که به سرعت در حال تغییر هستند و مقیاسپذیری و سازگاری ضروری را طلب میکنند، ارزش بالایی دارد.
علاوه بر این، شبکه مبتنی بر نرم افزار از طریق ابزارهای نظارت متمرکز و تجزیه و تحلیل، دید بهتری را در ترافیک شبکه و عملکرد فراهم میکند. مدیران شبکه میتوانند نظارت لحظهای روی الگوهای ترافیک داشته باشند، گلوگاهها یا تهدیدات امنیتی را به سرعت شناسایی کنند و اقدامات پیشگیرانهای را برای بهینهسازی عملکرد یا کاهش خطرات انجام دهند.
همچنین با استفاده از فناوریهای مجازیسازی در معماریهای شبکه مبتنی بر نرم افزار مانند NFV (Network functions virtualization) مجازیسازی عملکردهای شبکه، سازمانها میتوانند وابستگی خود را به تجهیزات سختافزاری اختصاصی کاهش دهند. علاوه بر آن، میتوان توابع شبکه مجازی را حتی در محیطهای ابری هم مستقر کرد، هزینهها را کاهش داد و در عین حال مقیاسپذیری را به حداکثر رساند.
یکی از فناوریهای کلیدی مورد استفاده در SDN، پروتکل OpenFlow است که ارتباط بین کنترلر و سوییچها یا روترها را امکانپذیر میکند. این امکان کنترل جریان پویا، مهندسی ترافیک و مجازیسازی شبکه را فراهم میسازد.
علاوه بر این،SDN با فعال کردن کنترل دقیق بر جریانهای ترافیک و اجرای سیاستهای امنیتی در سطح متمرکز، امنیت را افزایش میدهد. اتوماسیون شبکه میتواند خطاهای انسانی در تغییرات پیکربندی را به شدت کاهش دهد و در عین حال، قابلیت اطمینان کلی شبکه را بهبود ببخشد.
شبکه گسترده با تعریف نرمافزار که به اختصار SD-WAN (یا Software-defined Wide Area Network) نامیده میشود، نسخهای از SDN است که بر بهینهسازی شبکههای WAN با استفاده از اصول تعریف شده توسط نرمافزار برای بهبود عملکرد، کارایی و صرفهجویی در هزینه تمرکز دارد.
موارد استفاده متعددی برای شبکه مبتنی بر نرم افزار در صنایع مختلف مانند مراکز داده، محیطهای محاسبات ابری، ارائهدهندگان ارتباطات راه دور و شبکههای سازمانی با چندین شعبه وجود داد. در ادامه به طور دقیق در مورد نحوه کارکرد SDN، مدلهای آن، تفاوتاش با شبکههای سنتی، مزایا، معایب و اجزای شبکه SDN صحبت کنیم.
شبکه SDN چگونه کار میکند؟
تا اینجا به این موضوع پرداختیم که شبکه SDN چیست. شبکه مبتنی بر نرم افزار انواع مختلفی از فناوریها را شامل میشود؛ از جمله جداسازی عملکردی، مجازیسازی شبکه و اتوماسیون از طریق قابلیت برنامهریزی. در ابتدا، هدف اصلی شبکه مبتنی بر نرم افزار جداسازی سطح کنترل شبکه از سطح داده بود.
در راهاندازی معمول شبکه مبتنی بر نرم افزار، زمانی که یک بسته به یک سوئیچ شبکه میرسد، قوانین از پیش تعریف شده سیستمعامل سوئیچ تعیین میکند بسته چگونه باید ارسال شود. این قوانین معمولا توسط یک کنترلکننده متمرکز در سوییچ برنامهریزی میشوند که با سوییچ ارتباط برقرار میکند و دستورالعملهای لازم را به آن ارائه میدهد.
در راهاندازی شبکه، سوییچ، مسئول برقراری ارتباط با کنترلکننده برای جستجوی راهنمایی در صورت لزوم است. علاوه بر این، اطلاعات مربوط به ترافیکی که مدیریت میکند را هم با کنترلر به اشتراک میگذارد. هنگام هدایت بستهها، سوییچ اطمینان حاصل میکند که همه بستههای مقصد در یک مکان و در یک مسیر ثابت ارسال میشوند. علاوه بر این، با همه بستهها بدون در نظر گرفتن محتوا یا منشا آنها به طور یکسان رفتار میشود.
شبکههای مبتنی بر نرمافزار معمولا از یک حالت عملیاتی به نام تطبیقی یا پویا استفاده میکنند که در آن یک سوییچ برای یک بسته که مسیر خاصی ندارد، یک درخواست مسیر را به یک کنترلکننده ارسال میکند. این فرآیند، جدا از مسیریابی تطبیقی است که درخواستهای مسیر را از طریق روترها و الگوریتمهای مبتنی بر توپولوژی شبکه صادر میکند و به این منظور از یک کنترل کننده بهره نمیبرند.
در شبکههای مبتنی بر نرمافزار، مجازیسازی نقش مهمی ایفا میکند. با استفاده از مجازیسازی، یک شبکه منطقی مجزا در بالای شبکه فیزیکی ایجاد میکنند. همین مسئله به کاربران اجازه میدهد تا پوششهای سرتاسری را پیادهسازی کنند که شبکه زیربنایی را جدا کرده و ترافیک شبکه را برای مدیریت و کنترل بهتر تقسیم میکند. این راهکار، یک روش انعطافپذیر و کارآمد برای بهینهسازی منابع شبکه فراهم میکند. چنین راهکارهایی در ارائهدهندگان سرور ابری که نیاز دارند شبکههای مجازی جداگانه و با سیاستهای خاص را برای مشتریان پیادهسازی کنند میتواند بسیار مفید باشد.
مدلهای مختلف SDN چیست؟
وقتی صحبت از شبکه مبتنی بر نرم افزار میشود، این موضوع مطرح میشود که انواع مدلهای SDN چیست؟ این مدلها به عنوان پایهای برای معماری شبکه مبتنی بر نرم افزار عمل میکنند و به انعطافپذیری، مقیاسپذیری و کنترل بیشتر بر زیرساخت شبکه کمک میکنند. در ادامه به انواع مدلهای SDN میپردازیم.
1.مدل کنترلکننده متمرکز (Centralized Controller Model)
در این مدل، معماری SDN شامل یک کنترلکننده متمرکز است که به عنوان هوش مرکزی شبکه عمل میکند. کنترلر وظیفه مدیریت و به دستگیری کلیه عملکردهای شبکه، سادهسازی اجرای سیاستها و مدیریت منابع شبکه را برعهده دارد.
2.مدل کنترلکننده توزیع شده(Distributed Controller Model)
این مدل سطح کنترل را بین چندین کنترلکننده توزیع میکند و امکان افزایش مقیاسپذیری و تحمل خطا را فراهم میسازد. کنترلکنندههای توزیع شده برای مدیریت بخشهای مختلف شبکه با هم کار میکنند و راهحل SDN قویتر و انعطافپذیرتری را ارائه میدهند.
3.مدل کنترلکننده ترکیبی (هیبریدی) (Hybrid Controller Model)
همانطور که از نام آن پیداست، این مدل عناصر کنترل متمرکز و توزیع شده را با هم ترکیب میکند. با این رویکرد، میتوان برخی از بخشهای شبکه توسط یک کنترلکننده مرکزی و برخی دیگر توسط کنترلکنندههای توزیع شده مدیریت شود.
4.مدل OpenFlow
OpenFlow یک پروتکل پرکاربرد در فناوری شبکه مبتنی بر نرم افزار است. در این مدل، سوییچها با استفاده از پروتکل OpenFlow با یک کنترلکننده خارجی ارتباط برقرار میکنند و امکان کنترل متمرکز بر تصمیمهای ارسال در شبکه SDN را فراهم میکنند.
5.مدل پوشش مجازی (Virtual Overlay Model)
این مدل شبکههای مجازی را در بالای شبکههای فیزیکی موجود پوشش میدهد و راهحلهای SDN انعطافپذیر و مقیاسپذیر را بدون نیاز به تغییرات قابل توجه در زیرساختهای زیربنایی ارائه میکند.
هر یک از این مدلهای شبکه مبتنی بر نرم افزار، بسته به نیازهای خاص مانند امنیت، مدیریت، استقرار یا پروتکلهای مورد استفاده در زیرساخت شبکه یک سازمان، مزایا و موارد استفاده خاص خود را دارند. برای انتخاب هوشمندانه در مورد فناوری شبکه مبتنی بر نرم افزار، سازمانهای میبایست مدلهای مختلف موجود را درک کنند. این دانش به آنها کمک میکند تا راهحلهای مناسب را برای محیطهای خاص خود به طور موثر پیادهسازی کنند.
سخن پایانی
در این مقاله به بررسی شبکههای مبتنی بر نرمافزار (SDN) پرداختیم که شامل سه سطح کنترل، داده و اپلیکیشن هستند. SDN با جداسازی سطح کنترل از سختافزار، مدیریت سادهتر و انعطافپذیری بیشتری را فراهم میکند. مدلهای مختلف SDN شامل کنترلکنندههای متمرکز، توزیع شده و مدل OpenFlow هستند که به سازمانها در بهینهسازی شبکه کمک میکنند.