شبکه های مبتنی بر نرم افزار(SDN)، یک نوآوری، در شبکههای کامپیوتری است. امروزه، بسیاری از شرکتهای فعال در حوزهی IT، به استفاده از این تکنولوژی، روی آوردهاند. در شبکههای کامپیوتری موجود، تجهیزاتی از قبیل روتر و سوییچ، از دو قسمت اصلی تشکیل شدهاند: Data Plane و Control Plane. وظیفهی Data Plane، فقط روانهسازی پکتها است. وظیفهی Control Plane، مدیریت ارسال پکتها و سیاستگذاری، برای شرایط ارسال آنها میباشد. در شبکههای سنتی، برای هر یک از دستگاههای شبکه، یک واحد کنترل، مربوط به خود دستگاه وجود دارد. در تجهیزات این شبکهها، معمولا واحد کنترل، با واحد دیتا، در یک BOX و یکپارچه، تولید میشوند. وجود داشتن تعداد زیادی واحد کنترل در یک شبکه، باعث پیچیدهشدن مدیریت شبکههای سنتی است.
در شبکه های مبتنی بر نرم افزار، واحد کنترل تمام تجهیزات شبکه، مجزا شده و به یک واحد کنترل متمرکز، مبدل گشته است. در اصل مهمترین هدف شبکههای SDN، متمرکز کردن، بخش هوشمند شبکه است. قسمت کنترل شبکه، از یک یا چند تجهیز شبکه، به نام کنترلر، تشکیل شده است. از کنترلر، به عنوان مغز شبکه، نام برده میشود. این امر، موجب مدیریت متمرکز شبکه، و انعطاف و کارایی بیشتر میگردد. در ادامه در مورد شبکه های مبتنی بر نرم افزار و دلایل ایجاد این نوآوری، بیشتر می گوییم.
ضرورتهای ایجاد شبکه های مبتنی بر نرم افزار
بنا بر گسترش روزافزون شبکههای کامپیوتری و افزایش ترافیک دیتا در این شبکهها، نیاز به مدیریت چابک و پویا، ضروری به نظر میرسد. در زیر به برخی از ضرورتهای ایجاد شبکههای مبتنی بر نرمافزار، اشاره میگردد.
تقاضای روزافزون پهنای باند
به طور روزافزونی، درخواست برای محتواهای چندرسانهای، افزایش مییابد. کاربران، در موضوعات سرگرمی، صنایع، پزشکی و مراکز آموزشی، بیش از پیش از تصاویرها، صداها و فیلمهای با کیفیت خوب، استفاده می نمایند. محتواهای چندرسانهای به علت حجم بالایی که در مقایسه با محتواهای متنی دارند، نیاز به پهنای باند بیشتری را طلب میکنند. این رشد انفجارگونهی درخواست پهنای باند، علاوه بر بستر ارتباطی، نیاز به تجهیزات کارامدتر برای پاسخگویی به این حجم داده برای پردازش در لایهی شبکه میباشد. همچنین نیاز به مدیریت منسجمتر و دارای انعطاف بیشتری در شبکههای کامپیوتری ضروری میباشد. در زیر به برخی از فناوریهای دنیای IT که باعث تقاضای بیشتر برای ترافیک شبکه شده است، اشاره میکنیم.
موبایلهای هوشمند
امروزه، استفاده از گوشیهای هوشمند، بسیار گسترده شده است. شبکههای اجتماعی، با محتواهای چند رسانهای، ترافیک زیادی را در شبکههای موبایل، ایجاد مینمایند.
سرویسهای ابری
بسیاری از نیازهای کاربران و شرکتها به زیرساختهای سختافزاری، انواع نرمافزار و بانکهای اطلاعاتی، توسط سرویسهای ابری تامین میشود. شرکتهای بزرگی همچون آمازون و مایکروسافت، سرمایهگذاریهای عظیمی برای ارائهی این سرویسها انجام دادهاند. کیفیت سرویسهای کلود و یا ابری، رابطهی مستقیمی با پهنای باند مناسب دارد.
Big Data
گسترش تولید اطلاعات در شبکههای کامپیوتری، رشد روزافزونی دارد. حجم اطلاعات در بعضی از شرکتها و سازمانها به پتابایت و بیشتر از آن رسیده است. تبادل این حجم اطلاعات در شبکههای کامپیوتری، پهنای باند زیادی را نیاز دارد.
مشکل قدیمی ناسازگاری
از مشکلات مهم در شبکههای کنونی، ناسازگاری برندهای مختلف در یک شبکه میباشد. تجهیزات مختلف شبکه، از فروشندگان متفاوت، دارای سیستم عاملها و تنظیمات مخصوص به خود هستند. در صورتی که در یک شبکه از تجهیزات با برندهای مختلف استفاده نمایید، سازگاری این تجهیرات و یکپارچگی شبکه، یکی از چالشها خواهد بود. در حالی که در شبکههای مبتنی بر نرمافزار به علت متمرکز شدن واحد کنترل و جداسازی آن از تجهیزات شبکه، مسئلهی عدم سازگاری مرتفع میگردد و سوییچها تنها به یک ارسالکننده پکت ساده تبدیل میشود.
مسئلهی کانفیگ شبکه
به علت اینکه هر دستگاه دارای واحد کنترل مخصوص به خود میباشد، برای کانفیگ هر دستگاه باید بهطور جداگانه تنظیمات را انجام دهیم. در صورتیکه بخواهیم تغییراتی را بر روی طیف وسیعی از سوییچها و روترها پیادهسازی کنیم، این کار زمانبر و دارای انعطافپذیری کمی میباشد. در شبکههای مبتنی بر نرمافزار به علت منسجم بودن واحد کنترلر، کانفیگ کل تجهیزات شبکه، به صورت متمرکز و با برنامه نویسی، قابل انجام است و تغییرات، بسیار آسانتر صورت می پذیرد.
دید کلی شبکه
در شبکههای جاری، سوییچها و روترها معمولا نسبت به شبکه و توپولوژی آن آگاهی ندارند و تصمیمگیریها برای ارسال پکتها را بر اساس جدول روتینگ انجام میدهند. در شبکههای SDN، در قسمت کنترلر، به علت کنترل تمام سوییچها، کنترلر، با یک دید کلی نسبت به توپولوژی شبکه عمل مینماید و تغییرات بر اساس این دید کلی صورت میپذیرد.
مزایای شبکه های مبتنی بر نرم افزار
قابلیت برنامه نویسی شبکه
یکی از مزیتهای مهم در شبکههای SDN قابلیت برنامه نویسی و خودکارسازی بسیاری از روالهای شبکه میباشد.
پویایی و انعطاف
متمرکز بودن واحد کنترل در شبکه باعث پویایی شبکههای SDN میشود. و شما با توجه به شرایط و ضرورتهای فوری، میتوانید به سرعت، وضعیت شبکه را تغییر دهید.
انتزاع شبکه و عدم وابستگی به برند خاص
بدلیل اینکه واحد کنترل از واحد دیتا مجزا میباشد، و واحد دیتا، تنها یک روانهساز سادهی پکتها میباشد، بنابراین شبکههای SDN، به برند خاصی وابسته نمیباشند. و واحد کنترل نیز از استانداردها و پروتکلهای خاصی، برای ارتباط با سوییچها پیروی میکند. استاندارد رایج برای ارتباط کنترلر با سوییچها OpenFlow میباشد. هر کدام از تجهیزات شبکه، که از این استاندارد پیروی نمایند، میتوانند با کنترلر ارتباط برقرار نمایند. نوع برند این تجهیزات، تغییری در تنظیمات شبکه ایجاد نمینماید.
مدیریت متمرکز شبکه
به علت متمرکز بودن این شبکهها به راحتی میتوانیم تغییرات را در تمام شبکه با سرعت و با استفاده از قابلیت برنامهنویسی، اعمال نمود.
کاهش هزینههای سختافزاری
با جدا کردن واحد کنترل، در تجهیزات شبکه، هزینههای سختافزاری کاهش مییابند. زیرا که تجهیزات شبکه، فاقد واحد کنترل و تبدیل به یک ارسال کنندهی سادهی پکتها میشوند. این امر باعث کاهش هزینهی تولید سوییچها میگردد.
مانیتورینگ و اشکالزدایی
با توجه به اشراف کلی واحد کنترل بر تمام شبکه مانیتورینگ و دید کلی شبکه براحتی انجام و اشکال زدایی یا Troubleshooting نیز، بسیار راحتتر صورت میپذیرد.
چالشهای شبکه های مبتنی بر نرم افزار
امنیت
به واسطهی جدا شدن واحد کنترل از واحد دیتا،برای فرامینی که از کنترلر به سوییچ ارسال میشود و یا دیتاهایی که از سوییچ به کنترل میرسد، نیاز به یک محیط واسط داریم. تامین امنیت تبادل اطلاعات بین سوییچها و کنترلر، یکی از چالشهای مهم در این نوع شبکهها میباشد.
گسترش پذیری یا Scalability
خیلی از شبکهها به مرور زمان گسترش مییابند. این گسترش هم از نظر تجهیزات شبکه و هم از نظر گستردگی فیزیکی و طولی شبکه میباشد. با گسترده شده شبکه، وجود تنها یک کنترلر، باعث ترافیک زیاد بر روی کنترلر و همچنین ایجاد تک نقطهی شکست یا Single point of Failure میباشد. در شبکههای گسترده نیاز به تعداد بیشتری کنترلر خواهیم داشت. همگام سازی این کنترلرها و شیوهی جایگذاری آنها، یکی از چالشهای شبکههای SDN میباشد.
SD-WAN
شبکههای گستردهی SDN یا SD-WAN، استفاده از تکنولوژی SDN در شبکههایی با مقیاس جهانی است. از چالشهای مهم این شبکهها، گسترشپذیری و امنیت میباشد.
OpenFlow
پروتکل رایج برای ارتباط کنترلر شبکههای SDN با سوییچهای شبکه، OpenFlow میباشد. پروتکل OpenFlow، بطور گسترده در شبکههای SDN استفاده می گردد. OpenFlow یکی از استانداردهای مهم و از پارامترهای تاثیرگذار در توسعهی SDN میباشد.
سازمان ONF
ONF یا Open Networking Foundation در سال 2011 برای استانداردسازی شبکه های مبتنی بر نرم افزار، توسط شرکتها و اپراتورهایی از قبیل: AT&T، گوگل، Verizon، Deutsche Telekom بوجود آمد. نظارت بر استانداردسازی و توسعهی OpenFlow بر عهدهی ONF میباشد.
NFV یا Network Function Virtualization
در شبکههای رایج، معمولا برای سرویسهایی مانند: DNS , Caching , NAT, FireWall، تجهیزات مجزایی تهیه شده است. این تجهیزات بطور وسیعی در شبکههای سنتی استفاده شده و هزینه بر هستند. با مجازی سازی این سرویسها و جدا کردن قسمت سیاست گذاری و کنترل این تجهیزات از قسمت روانهسازی باعث صرفهجویی و انعطافپذیری بیشتر در شبکههای کامپیوتری خواهیم بود. NFV برای مجازیسازی توابع شبکه طراحی شدهاست. در شبکههای سنتی معمولا هر سرویس بر روی یک دستگاه پیادهسازی میشود. در مجازی سازی با NFV شما میتوانید چندین سرویس را بر روی ماشینهای مجازی مختلف پیادهسازی کرد، بدون اینکه نیاز به تهیهی سختافزار جدیدی باشد. با این روش میتوانیم قابلیتهای هر کدام از سرویسها را بدون ارتقای سختافزاری، به طور نرمافزاری افزایش دهیم. با قابلیتهای NFV، انعطافپذیری زیادی را در منطبق کردن توابع شبکه، با شرایط مختلف پیدا خواهیم کرد. در اصل NFV باعث کاهش وابستگی به سختافزارهای مختلف در شبکه شدهاست.
NFV به همرا SDN
NFV و SDN هر دو از جهاتی شبیه به هم عمل میکنند. هر دو از تکنولوژی مجازیسازی استفاده میکنند. SDN و NFV، قسمت Data Plane را مجزا کردهاند. SDN قسمت روانهسازی را از واحد کنترل مجزا کردهاست اما NFV قسمت Data Plane را از قسمت اجرا کنندهی عملیات و فانکشنی که عهدهدار آن بوده است، جدا کردهاست. شبکههای که از تکنولوژی SDN و NFV استفاده میکنند، انعطافپذیری و پویایی زیادی پیدا میکنند.