شبکه های SDN چیست و چه کارایی دارد ؟
مقدمه : با پیشرفت و توسعه شبکه چه در ابعاد اینترنت، اینترانت و یا حتی شبکه های محلی، پیچیدگی و حجم آنها نیز بصورت تصاعدی افزایش پیدا کرد. این پیچیدگی در سطوح نرم افزاری و سخت افزاری بوجود آمد و هر کدام باعث گردید تا مشکلات زیادی را در سر راه مدیران و سرپرستان شبکه قرار دهد.
با افزایش این پیچیدگیها نیاز به اپراتورهای بیشتر و حرفه ای تری حس می گردید که خود عاملی بر افزایش Opex می گردید.
علاوه بر آن هر پیچیدگی و تغییر جدید در شبکه باعث ناپایداری و یا خطای ناخواسته ای می شد که در برخی از موارد غیر قابل اجتناب به نظر می رسد.
هزینه های سربار Opex بار زیادی را بر روی سرمایه گذاران در عرصه شبکه قرار داده بود و از طرفی پیاده سازی و سرویس دهی شبکه و رسیدن به استانداردهایی در حد FCAPS، نیاز به یک انقلاب و تغییر در مدیریت شبکه را می طلبید.
در واقع اگر بخواهیم کمی وارد جزئیات شویم، مشکل از آنجا آغاز می شود که یک شبکه بزرگ عمدتاًً از ابزارهای گوناگون از تولیدکنندگان مختلف با توپولوژیهای گسترده تشکیل شده است که همگی نیز برای عملکرد صحیح نیاز به پیکربندی و مانیتور کردن هستند، چه پیکربندی و چه مانیتور کردن چنین شبکه هایی فقط برای بار اول و شروع کافی نیست و در ادامه عملکرد بسته به نیازهای کاربران و درخواستهای آنها باید تغییر نمایند. پس در همین جا با چالشی روبرو هستیم، چگونه می توان با کمترین خطا و کمترین زمان پائین بودن شبکه و حداقل پیچیدگی این کار را انجام دهیم.
هر تجهیز شبکه به شکل و ساختار خود پیکربندی می شود و هر کدام باید بصورت جداگانه مورد پیکربندی قرار گیرد، حال اگر شبکه با وسعت شبکه یک کشور داشته باشیم که از هزاران سویچ و روتر تشکیل شده، تفریباً کار بسیار سخت و زمان بری خواهد بود و چگونه می توان عدم بروز خطا را گارانتی نمود. به چند نفر و چند ساعت کار برای پیاده سازی یک تغییر کوچک که اتفاقاً باید در تمامی تجهیزات اعمال شود نیاز است.
پس در همین جا نیاز به یک سیستم یکپارچه کننده شبکه احساس می گردید. سیستمی که بتواند فراتر از هر پروتکل و پیچیدگی کار کاربران و مدیران شبکه را کم و به بهترین شکل پیاده سازی کند.
سیستمی که در واقع بتواند دستورات را از کاربر گرفته و به زبان و کدهای مختلف کامپایل کرده و به تجهیزات اعمال کند فارغ از هرگونه درگیر شدن کاربر و یا حتی اطلاع آن از پیچیدگی و تنوع شبکه.
در زمینه های نرم افزاری بحث مجازی سازی (ماشینهای مجازی) کارها را بسیار آسان کرده و با استفاده از آن می توان براحتی از یک سیستم بیشترین بهره وری را بدست آورد. در کنار این بهینه سازی، انعطاف پذیری و حرکت از یک سیستم به سیستم دیگر و افزایش و کاهش منابع از دیگر خصایص مجازی سازها بود که باعث شد به سرعت مورد توجه همه قرار گیرد.
در اینجا نیاز به یک مجازی سازی بر روی سخت افزارهای شبکه حس می گردید به شکلی که اجزاء شبکه بصورت منابع تحت کنترل قرار گیرند و همانند پردازنده و حافظه قابل مدیریت و برنامه ریزی باشند. بتوان این اجزا را در یک محیط مجازی تحت کنترل قرار داد. یک شبکه مجازی که اجزاء آن را منابعی همانند سویچها، روترها و تجهیزات شبکه تشکیل می دهند و براحتی می توان آنها را برنامه ریزی کرد. براحتی می توان یک کد را از طرف کاربر گرفته و به شبکه مجازی اعمال نمود.
این شبکه مجازی بر اساس بار موجود قدرت انعطاف داشته و می تواند بزرگ و یا کوچک شود. براحتی می تواند بر اساس بار و فشار سرویسها میزان مصرف برق خود را کم و زیاد کند، به این شکل شبکه ای خواهیم داشت که استهلاک و مصرف برق آن کمتر می-گردد.
علاوه بر این از منابع به شکل بهتری استفاده می شود و منابع در یک سگمنت از شبکه بدون استفاده و یا در سگمنتی دیگر سرریز نمی شوند، منابع بصورت المانهایی خواهند بود که براحتی قابل تخصیص به قسمتهای مختلف خواهند بود.
جدا از این قابلیت شگرف، بحث اعملا پیکربندی بر روی همه با یک دستور از دیگر خواسته ها بود. SDN تمامی نیازهای بالا را می توانست تامین کند. با استفاده از SDN کل شبکه و المانهای آن بصورت یک شبکه مجازی دیده می شد که با استفاده از نرم-افزارها و API ها طراحی شده قابل کنترل می گردید.
در اینجا نیاز به یک پروتکل ارتباطی بین نرم افزارها و سخت افزارها مشاهده می گردید. پروتکلی که بتواند کد را به تمامی ابزارهای گوناگون از تولیدکنندگان گوناگون اعمال کند. یعنی باید زبان همه را بفهمد. در اینجا Open flow مطرح گردید. هر المانی از شبکه که این پروتکل را پشتیبانی می کند می تواند در شبکه SDN قرار گیرد و تحت پوشش آن برود در واقع لایه های ارتباطی شبکه ما به شکل بالا تغییر می نماید.
در این مقاله در یک فصل به مفاهیم پایه ای SDN و توضیحات و شرح اولیه آن پرداخته خواهد شد و در نهایت که اصلی ترین قسمت این مقاله محسوب می گردد به بررسی یکی از ابعاد آن یعنی Elastic tree پرداخته می شود.
تاریخچه
از سال ۱۹۹۰ که بحث اینترنت جدی و فراگیر شد، یکی از دغدغه های سرپرستان شبکه چه در بعدهای مخابراتی و چه در شبکه داده، بحث مدیریت یکپارچه بود. بحث از آنجا جدی شد که با پیشرفت و توسعه این شبکه ها، پیکربندی آنها نیز پیچیده تر گردید و دیگر از دست یک اپراتور خارج می شد. در این زمان روشهای گوناگونی برای حل این مشکل پیشنهاد گردید که تا به امروز نیز ادامه داشته و در حال به روز شدن هستند. از این جمله می توان به مدل کپسول اشاره کرد که در این روش داده از In-band و کدهای کنترلی از Out-band هدایت می گردید.
از اواسط ۱۹۹۰ تا سال ۲۰۰۰ سازمان تحقیقات پیشرفته دفاعی آمریکا (DARPA) بحث شبکه های فعال و مدیریت آسان آنها را مطرح نمود، که اساس آن بر ایجاد بسترهای شبکه مبتنی بر قابلیت برنامه پذیری و انعطاف بود و استانداردهایی را نیز برای آن مطرح نمود. همزمان با آن ایده های دیگری مانند ״push & use pulls״ مطرح گردید که چیزی شبیه به SDN امروزی است.
اگر بخواهیم در تاریخچه پیدایش SDN وارد جزئیات بیشتری شویم باید پیدایش اولیه آن را در سال ۱۹۹۵ جویا شویم. در این سال شرکت سان سیستم جاوا را ارائه کرد و در همان زمان شرکت AT&T پروژه Geoplex را مطرح نمود. در این پروژه با استفاده از JAVA API میان افزار شبکه ای ایجاد گردید که با استفاده از سیستم عامل می توانست یکسری مدیریتهای شبکه و سرویسها را بر عهده گیرد.
اما AT&T به دنبال فراتر از این میان افزار بود، هدف اصلی ایجاد یک سویچ نرم افزاری با انعطاف بالا بود اما در مجموع پروژه Geoplex نتوانست این خواسته را فراهم کند و در پیکربندیهای مجد سخت افزارها به مشکل برخورد نمود. اما این پروژه سنگ بنایی برای SDN امروزی گردید.
در ۱۹۹۸ مارک مدویچ از شرکت سان سیستم جدا شد و اولین سیستم عامل شبکه که توانایی اعمال و کامپایل مدلها بصورت پویا را داشت ، ارائه نمود.
در تابستان سال ۲۰۰۰ شرکت اریکسون بر اساس تحقیقات انجام شد اولین نسل از سویچهای نرم افزاری خود را ارائه نمود که اولین قدم در دنیای SDN محسوب می گردید در همان سال گارتنی، مجازی سازی و قابل برنامه ریزی بودن شبکه ها را یکی از ۱۰ تکنولوژی برتر آینده معرفی نمود و نام Supranet را بر روی آن گذاشت.
در اوایل سال ۲۰۰۱ شرکت اریکسون و Websprocket اولین نرم افزار تجاری خود را در این راستا ارائه کردند.
در آپریل سال ۲۰۰۱، فردی به نام کالیم، دانشجوی دانشگاه اُهایو، که به عنوان محقق در OARNET فعالیت داشت، اولین آزمایش بر روی SDN را انجام داد و اولین SDN عملیاتی را مبتنی بر اینترنت ویرایش ۲ ارائه کرد.
پس از این موفقیت مدیرعامل شرکت OARNET اعلام کرد:
״ما شاهد اولین موفقیت در راستای شبکه های هوشمند بودیم. مجموعه ای دستورات که بصورت پویا به شبکه منتقل می شود و بدون آنکه نیاز به خاموش و روشن کردن یا ایجاد وقفه ای در کار شبکه باشیم، می توانیم تغییرات جدید را اعمال کنیم. این سرآغازی برای یک اینترنت و شبکه های جدید بزرگ خواهد بود.״
در سال ۲۰۰۳، SDN توسط باب بروک و زاک کارمن پتنت گردید و از همین سال استفاده و کار جدی بر روی آن آغاز شد.
این روند ادامه یافت تا در سال ۲۰۱۱، Open flow که در متن این مقاله توضیحات بیشتر در مورد آن داده خواهد شد، عرضه گردید.
این پروتکل ارتباطی پایه و اساسی برای پیاده سازی عملی بین تجهیزات گوناگون شبکه گردید. در واقع می توان تاریخچه SDN را از همان پیدایش شبکه محسوب کرد و از زمان که پیچیدگی در شبکه ها افزایش پیدا نمود نیاز به آن جدی تر گردید.
مفاهیم پایه
همانطور که اشاره شد، مشکلات زیادی در شبکه های بزرگ وجود دارد که با افزایش پیچیدگی آنها این مشکلات نیز زیادتر می-شوند. مدیریت شبکه های گسترده در تمامی ابعاد کاری سنگین، زمان بر و پر خطا است که باعث گردید تا طراحان پایه ای شبکه به فکر راه کاری برای آن باشند.
در طرح پایه ای که به SDN شهرت پیدا کرد تلاش گردید که به تمامی المانهای شبکه به دید یک منبع نگاه شود و همانند سیستم ماشینهای مجازی، شبکه را نیز مجازی سازی نمود.
جهت پیاده سازی این مفهوم ساختار زیر پیشنهاد گردید که همین ساختار پایه و اساس SDN می باشد.
همانطور که در شکل مشاهده می شود، کل شبکه از دو قسمت اصلی تشکیل شده است:
– Data Plane
– Control Plane
Data Plane
در این قسمت المانهای سخت افزاری و نرم افزاری همانند سویچها، روترها و فایروالها قرار گرفته اند و همانند یک شبکه سنتی عمل می کنند، اتصالهای بین این المانها از طریق مدیاهای رایج همانند فیبر یا کابل مسی برقرار شده و هر کدام عملکرد خود را دارند. در این قسمت تنوع المانها از یک طرف و از طرفی دیگر تعداد برندها باعث ایجاد شبکه ای پیچیده می شوند که در قبل برای پیکربندی هر کدام در مراحل نصب و یا در مراحل عملیاتی نیاز به دسترسی و پیکربندی جداگانه بود.
Control Plane
این قسمت لایه کنترلی است و تمامی کنترلرها در این قسمت قرار می گیرد، در واقع قلب اصلی سیستم SDN در این قسمت است.
این قسمت متشکل از یکسری نرم افزارها و سرویسها است که از لایه بالاتر خود یعنی لایه Application دستور دریافت می کنند. خود لایه کاربردی نیز توسط کاربر در حال استفاده و فرمان دهی می باشد.
عمدتاً ارتباط این دو قسمت توسط پروتکلهای مربوطه همانند Open flow برقرار می گردد. با چنین دیدی به شبکه، می توان در قسمت کنترل سیاستهای اصلی را لحاظ کرده و بر اساس امکانات شبکه آن را پیاده سازی نمود.
اگر بخواهیم مثال واضح تری در این راستا زده شود می توان ماشینهای مجازی را در نظر گرفت که بر روی یک یا چند سیستم عامل و نرم افزار مجازی ساز را نصب کرده و بر روی هر کدام از میزبانها چند میهمان (Guest) را اجرا کرد که هر کدام از سخت-افزارها می توانند با سخت افزار دیگر در ارتباط باشند و از منابع هم استفاده کنند. علاوه بر آن هر سیستم مجازی می تواند منابع خود را در اختیار دیگری قرار دهد.
در صورتی که سیستم مجازی دچار مشکل شود براحتی می توان یکی دیگر را جانشین آن نمود و یا حتی اگر سخت افزاری به مشکل برخورد نماید می توان ماشینهای مجازی را به سیستم دیگری مهاجرت داد.
دقیقاً همین ساختار را می توان بر روی یک شبکه با مفهوم SDN پیاده سازی نمود. در این حالت به جای پردازنده، حافظه روترها، سویچها منابع ما خواهند بود و از ترکیب آنها به یک سری سویچها و روترهای مجازی دست پیدا خواهیم کرد که نسبت به سخت افزارهای هم رده خود بسیار منعطف تر و قدرتمندتر هستند و براحتی قابلیت اشتراک گذاری و جدا پذیری مکانی را خواهند داشت.
اینکه دیگر سویچها و روترها وابسته به مکان قرار گرفتن خود نخواهند بود از محاسن SDN است که در ادامه هر کدام مفصل صحبت خواهد شد. به این شکل شبکه گسترده ما به یک شبکه مجازی یکپارچه تبدیل می شود که جابجایی در آن به مکان فیزیکی و یا برند خاصی وابسته نخواهد بود.
برخی از مزایایی که در شبکه های SDN می توان به آن دست یافت در ذیل آورده شده است:
* Centralization
کل شبکه چندگانه ما با یک دستور و از یکجا کنترل می شوند. سیستم یکپارچه و از یک نود مرکزی تحت کنترل قرار می گیرند، این مرکزی سازی، باعث می شود که سرپرست شبکه دل نگرانی از ساختار زیرین خود نداشته باشد.
* Dynamic
امکان تغییر در اندازه و حجم شبکه، یکی از مزایایی است که شبکه های SDN در اختیار ما قرار می دهند. بر اساس نیاز و بار پردازشی و ترافیک ایجاد شده برخی نودها می توانند به شبکه اضافه شده و یا در صورت کاهش از شبکه کم شوند.
امکان به اشتراک گذاری منابع بدون محدود شدن به مکان فیزیکی به دلیل پویا بودن چنین شبکه هایی یکی از مزایای این مدل شبکه ها محسوب می گردد.
منابع در این شبکه براحتی از یک قسمت می توانند به قسمت دیگر تخصیص داده شوند.
* Optimization
بهینه سازی از دیگر مزایای شبکه های SDN است، به دلایل مجازی سازی و پویا بودن چنین شبکه هایی می توان بصورت کاملاً بهینه از تمامی نودها با حداکثر بهره وری استفاده نمود. در این حالت در صورت وجود بار، دیگر عدم توازن و تعادل در شبکه بوجود نخواهد آمد و هر نود با بالاترین میزان بهره وری خود کار خواهد کرد.
* Power Management
در شبکه های SDN به علت یکپارچه بودن سیستم های کنترلی و مانیتور کردن کل شبکه و یکپارچه بودن آن، این امکان بوجود می آید که بر اساس نیاز موجود در شبکه نودهای فیزیکی را از مدار خارج و یا وارد نمود. این پویایی، این قابلیت را بوجود می آورد که در هنگام کاهش بار و عدم نیاز به برخی نودها، المانهای غیر قابل نیاز از مدار خارج شوند، به این شکل علاوه بر آنکه از استهلاک نودها در زمان غیر لزوم جلوگیری می شود، بحث کاهش توان و مصرف نیز مطرح می گردد.
در شبکه های بزرگ مصرف برق یک عامل افزایش قیمت سرویسها است که در بحثهای رقابتی رکن بزرگی را بازی می کند. اگر یک شبکه محلی داشته باشیم شاید این کاهش و افزایش مصرف پویا آنچنان مطرح نباشد اما در یک شبکه گسترده که متشکل از هزاران سرور، سویچ و روتر است و خود از چند مرکز داده و زیر ساخت تشکیل شده است این مصرف عدد بسیار بزرگی است. در کنار بالا رفتن مصرف برق، موارد جانبی همچون افزایش دمای تجهیزات بعلت مصرف برق و افزایش تعداد نودها به پیش کشیده می شود که نیازمند سیستمهای خنک کننده که خود آنها نیازمند مصرف برق، استهلاک و هزینه هستند را سبب می شوند. از این-رو کم تر کردن مصرف برق با خارج کردن نودهای اضافه و غیر ضروری بسیار مهم است.
البته ما در اینجا به ایجاد مشکلات زیست محیطی، گرم شدن زمین اشاره نکردیم که در راه اندازی مراکز داده سبز حتماً باید لحاظ گردند.
در شبکه های SDN براحتی با داشتن کنترل کل شبکه و دانستن میزان بار می توان براحتی در هر لحظه، نود یا نودهایی را بر اساس ضرورت، کم یا زیاد نمود تا بحث مصرف برق نیز به این شکل مدیریت شود.
* Load Balancing
توازن بار از دیگر امکانات ایجاد شده در شبکه های SDN است. به دلیل آنکه نودهای سخت افزاری مانند سویچها و روترها همه تحت کنترل واحد قرار دارند می توان توازن بار را بصورت کامل پیاده کرد و شبکه را در حالت تعادل قرار داد.
در حالت غیر SDN زمانی که بار یک قسمت افزایش پیدا می کرد به دلیل عدم شناخت قسمتهای دیگر از جمله قابلیت آن و میزان بار آنها، این امکان وجود نداشت که ازآنها کمک گرفت ولی با استفاده از امکانات موجود در SDN براحتی با دانستن کل بار و طریقه پخش آن با ابزارهای مانیتورینگ، بار را بر روی کل شبکه پخش نمود.
در این شبکه مجازی ایجاد شده هر نود فیزیکی المان و منبعی محسوب می گردد که در صورت افزایش بار، می بایست وارد عمل شده و در حالت بیکار نماند.
* HA (High Availability)
در این قسمت که مربوط به حداکثر دسترسی و یا حداقل خطا پذیری است، شبکه مجازی ما باید تحمل پذیری در مقابل بروز خطا را داشته باشد.
در هنگام پیاده سازی HA، برای رسیدن به حداکثر قابلیت دسترسی می بایست فاکتورهای مختلفی را مد نظر داشت.
زمانی که می خواهیم حداکثر دسترسی را بدست آوریم باید به این نکته توجه کنیم که المانهای نرم افزاری و سخت افزاری بری از خطا نبوده و ممکن است دچار خطا در کار و یا خطای سخت افزاری شوند. بطور مثال پردازنده یا پاور آنها بسوزد، در این زمان آن المان از سرویس دهی بازمانده و تا زمانی که مشکل آن برطرف نگردد امکان برگرداندن آن به مدار وجود ندارد. در این بازه زمانی سرویس متوقف می باشد. اگر این سرویس یک سرویس حیاتی همانند سیستم های بانکها، بیمه ها و یا بیمارستانی باشد به هیچ عنوان بروز خطا قابل قبول نیست، از طرف دیگر بروز خطا همیشه امکان پذیر است. در این حالت برای حل این مشکل می توان با استفاده از افزونگی به این مشکل فائق آمد.
در SDN، کل شبکه از منظر مجازی دیده می شود. پس زمانی که روتر و یا سویچی دچار مشکل شود، در لایه کنترلر به سرعت این مشکل شناسایی شده و یا بصورت خودکار و از طریق استفاده از منابع دیگر موجود مشکل حل شده و یا آنکه به اپراتور اطلاع داده شد و اپراتور دستور مورد نظر را به لایه کنترل داده و خود لایه کنترل با المانهای موجود، آن را جایگذاری می کند. به این شکل می توان به حداکثر دسترسی رسید.
* Simplicity (کاهش پیچیدگی)
با پیاده سازی شبکه در دو لایه کنترل و داده، براحتی پیچیدگیهای شبکه محو می شود چرا که دیگر اپراتور نیاز نیست از محتوی و پیچیدگیهای موجود مطلع باشد. لایه کنترلر این وظیفه را بر عهده خواهد داشت. از دید کاربر یک لایه نرم افزار کاربردی وجود دارد که دستورات لازم برای پیکربندی به آن داده می شود، این دستورات پس از تغییرات اولیه به لایه کنترلر داده می شود، بدون آنکه کاربر مطلع باشد در لایه زیرین سخت افزار چه المانهایی از چه تولید کننده ای وجود دارد. لایه کنترل این دستور یا دستورات را گرفته و از طریق پروتکلهای ارتباطی نظیر Open flow با لایه فیزیکی و سخت افزاری ارتباط برقرار کرده و بر اساس نوع المان دستور را کامپایل و اعمال می کند. ساده سازی که در این روش ایجاد شده، نیاز کاربر را به داشتن دانش در مورد پیچیدگیهای هر المان و هر برند برطرف می سازد.
* Automation
مکانیزه و اتوماسیون کردن شبکه از دیگرمحاسن شبکه های SDN است. با لایه بندی شدن شبکه در لایه کنترلر بر کل شبکه و فیزیک آن اشراف داریم در این نقطه با استفاده از نرم افزارهای اتوماسیون موجود برای شبکه می توان از حالت جدا جدا بودن المانها به حالت مکانیزه و اعمال دستورات از طریق نرم افزار رسید.
در اتوماسیون شدن بوسیله ی SDN می توان به مزایای زیر دست یافت:
– رفع اشکال (Trouble Shooting)
با اتوماسیون بودن شبکه براحتی می توان تمامی المانها و رفتارهای شبکه را مانیتور نمود و در صورت بروز خطا بسرعت آن را شناسایی و اقدام به رفع آن نمود.
در این حالت امکان دارد که کل شبکه را بصورت یکپارچه مورد ارزیابی و مانیتورینگ قرار داد و بر اساس مشکل بوجود آمده عکس العمل مناسب را اعمال نمود.
– کاهش زمان پائین بودن سرویس
در این باره در بالاتر صحبت گردید.
– اعمال سیاست
با استفاده از یک نرم افزار و مکانیزه بودن سیستم، براحتی می توان دستورات و سیاستهای مورد نظر را به کلیه المانهای شبکه درجا اعمال نمود.
در روشهای قبلی هر المان باید جداگانه مورد بررسی و پیکربندی قرار می گرفت، بر اساس هر نوع برند، پیکربندی خود را می طلبد و علاوه بر آن باید در هر پیکربندی روابط بین المانها در تغییر حاصله را نیز در نظر گرفت که خود باعث افزایش پیچیدگی می-گردد. ولی در این روش اعمال سیاست بسیار ساده می گردد.
* کاهش زمان
در این مدل، دیگر نیاز نیست که هر المان جداگانه پیکربندی شود، پیکربندی از طریق لایه کنترلر بصورت یکجا اعمال می شود که به لحاظ زمانی بسیار سریعتر از حالتهای قبل خواهد بود.
* افزودن بار جدید
در SDN فارغ از میزان پیچیدگی و بار موجود شبکه، در صورت وجود بار جدید می توان این بار را در شبکه وارد کرد. این که این بار در کجا باید اعمال گردد و کدام قسمت شبکه بار زیادتری دارد و کدام قسمت شبکه کمتر، بر عهده لایه کنترل می باشد.
بهره وری
از دیگر مزایای موجود در SDN بحث افزایش بهره وری است، با بالانس شدن بار در بین المانها و بیکار نبودن نودها می توان به حداکثر بهره وری دست یافت. این قسمت را می توان به زیر شاخه های زیر تقسیم کرد:
– ترافیک
با یکپارچه در نظر گرفتن کل شبکه و مجازی نمودن آن براحتی می توان کار مدیریت پهنای باند را بر روی آن انجام داد. بطور مثال اگر لینکی که در بین دو روتر قرار دارد به حد اشباع خود رسیده باشد براحتی لایه کنترل پی به این موضوع برده و ترافیکهای بعدی را از مسیرهای دیگر هدایت می کند. به این شکل به دلیل اشباع شدن یک خط، گلوگاه در سیستم بوجود نمی-آید.
– راهبری خطا
که در قسمتهای قبل در مورد آن صحبت شد.
– توازن بار
پخش بار در بین کل المانها و لینکها در شبکه یکی از دغدغه هایی است که سرپرستان شبکه همیشه با آن درگیر بوده اند. اینکه چگونه متوجه شویم که قسمتی از شبکه بیکار و قسمت دیگر شبکه از وجود بار اشباع شده است یک مقوله ای است که نیاز دارد شبکه بصورت پیوسته مورد ارزیابی و مانیتورینگ قرار گیرد. حال اگر هر کدام از المانها جداگانه عمل نمایند این مانیتورینگ پیچیده تر می شوند. علاوه بر آن عملکرد جداگانه باعث می شود که نتوان بار را در بین شبکه تقسیم نمود- هر المان جداگانه رفتار می کند- اما در مدل مجازی شبکه دیگر المانها همگی در خدمت یک شبکه واحد قرار دارند و می توان بر اساس حجم بار در قسمتهای مختلف شبکه، بار جدید را به قسمت آزادتر واگذار نمود.
* مانیتورینگ
در باب این موضوع در بخشهای بالا صحبتهای گسترده ای شد. در حالت معمول هم کلیه ابزارهای شبکه همواره در حال مانیتور شدن هستند. تا این قسمت چیز جدیدی وجود ندارد. اما مسئله جدیدی که در SDN بوجود می آید آنست که علاوه بر مانیتور کردن تک تک المانها، نیاز به مانیتور کردن روابط ایجاد شده در یکپارچه سازی و مجازی است، چرا که در این روابط امکانات و محدودیتهایی نسبت به قبل بوجود می آید که باید در طراحی و اعمال پیکربندیهای بعدی لحاظ شوند.
مانیتورینگ در چنین ابعادی نیازمند تجهیزات و نرم افزارهای ویژه ای است که غیر قابل مقایسه با زمانی است که هر کدام تک تک عمل می نمایند.
* کاهش هزینه ها
SDN باعث کاهش هزینه ها می گردد. این کاهش در ابعاد مختلف صورت می گیرد. اولین و مهمترین کاهش در لایه Opex خواهد بود. شبکه های پیچیده نیازمند به سرپرستان حرفه ای دارند که حقوق و دستمزد آنها به نسبت بالا می باشد علاوه بر آن به دلیل بالا رفتن حجم شبکه به تعداد بیشتری پرسنل جهت مدیریت و راهبری نیاز است که این نیز باعث افزایش هزینه-های پرسنلی می شود، اما با مجازی سازی و در قالب SDN بردن شبکه، خیلی از این وظایف به لایه کنترل محول خواهد شد، دیگر پیچیدگیها از دید سرپرستان شبکه مخفی بود و اصلاً نیازی به دانستن زیرساختها را ندارند، به همین دلیل به تعداد کمتری اپراتور و اپراتورهایی با دانش سطح متوسطی شبکه می توان شبکه را رهبری کرد.
از دیگر دلایلی که SDN باعث کاهش هزینه ها می شود می توان به استفاده بهینه از منابع و عدم نیاز به اضافه کردن منابع در صورت بالا رفتن بار و یا تغییرات جدید می باشد. در واقع در این مدل، هر المان، عنصری از کل مجموعه محسوب می شوند و در صورت نیاز در یک بخش از شبکه براحتی از المانهای دیگر موجود در بخشهای دیگر شبکه استفاده می کند، در حالی که در زمانی که شبکه بصورت SDN پیاده سازی نشده بود، المانها را نمی توانستیم در زمانهای مورد نیاز به اشتراک بگذاریم و مجبور بودیم که ابزار و منبع جدیدی به شبکه اضافه کنیم که خود باعث بالا رفتن هزینه ها می شد.
* Programmable
همواره در دست داشتن کل شبکه و استفاده از تمامی منابع و انعطاف پذیری یکی از نیازها بود که سالیان متمادی بدون پاسخ مانده بود. در راستای سیستم های کامپیوتری ما داری یکسری منابع همانند پردازنده، حافظه و کش هستیم که برنامه نویس با استفاده از امکانات زبانهای برنامه نویسی و API ها آنها را فراخوانی و در خدمت خود می گیرد، در واقع تمامی منابع سیستم در اختیار و اطلاعات برنامه نویس هستند و از تمامی آنها بصورت یک ابزار در راستای رسیدن به اهداف خود استفاده می کند.
در شبکه های مبتنی بر SDN نیز می توان چنین قابلیتی را داشت. در واقع کل شبکه ها و قسمتهای آنها در قالب یک شبکه مجازی درآمده اند و هر المان یک منبع از شبکه ای واحد محسوب می شود، حالا می توان در لایه کنترل و لایه بالادست آن بدون توجه به آنکه المانهای موجود دارای چه ماهیتی هستند، و یا آنکه از چه برند و چه توانایی برخوردارند، می توان درخواستها که بصورت کدهای اجرائی است را از طرف کاربر گرفته که این کار توسط یک برنامه واسط انجام می شود و از طریق یکسری API به لایه کنترل داده می شود. در لایه کنترل با استفاده از پروتکلهایی مانند Open flow این کدها به سمت سخت افزارها اعمال می شوند، همانند زبان برنامه نویسی که کاربر کد خود را به زبان برنامه نویسی دلخواه نوشته و پس از آن وظیفه کامپایلر است که آنرا به زبان قابل فهم ماشین تبدیل کند. برنامه نویس هیچ گونه درگیری در مورد شناخت سخت افزار خود ندارد. در SDN هم به همین شکل است، کدها که همان دستورات پیکربندی سطح بالا هستند از طرف کاربر درخواست و اعمال می شوند و از آن پس وظیفه لایه های بعدی است که کار را به جلو ببرند.
به این حالت اصطلاحاً:
″Make Network Programmable for Developers″
گفته می شود.
در واقع شبکه و المانهای آن در دست توسعه دهندگان سیستم و نرم افزار همانند یک سیستم کامپیوتری قابل کد نویسی می شود.
* Abstraction
یکی از محاسنی که در SDN توسط لایه کنترل ایجاد می شود بحث یکسان سازی است. یعنی با اینکه از سخت افزارهای مختلف استفاده می کنیم که هر کدام نیز از برندهای مختلفی تشکیل می شوند اما از دیدگاه نرم افزارهای کاربردی همگی به یک شکل دیده می شوند و برای برقراری ارتباط با آنها فقط کافی است که API مربوط به آن فراخوانی شود، API در رابطه مستقیم با لایه کنترل بوده و این مسیر تا لایه داده به پیش می رود.
این یکسان سازی کمک می کند که به همه چیز بتوان به یک شکل و یک دید نگاه کرد.
اما مسئله یکسان سازی کار ساده ای نیست و نیازمند زیر ساختهای خود می باشد. در لایه کنترل باید تمامی درایورها و کامپایلرهای مربوط به هر تولید کننده گنجانده شده باشد و در صورت ارائه محصول جدید، قابلیت افزودن درایور به آن وجود داشته باشد. حال این درایور می تواند توسط تولید کننده ارائه شود و یا حتی توسط توسعه دهندگان نرم افزار و یا حتی سرپرستان شبکه درست شده و به آن افزوده شود.
علاوه بر تعدد سخت افزارها و تولیدکنندگان آنها، در توپولوژی، همبندیها و ارتباطها نیز تنوع زیادی وجود دارد که کاربر از آن بی-اطلاع است و وظیفه شبکه هایSDN مدیریت آنها است.
این همبندیها می توانند بر اساس سیاستهای مختلف ایجاد شده در بازه های زمانی مختلف در شبکه تغییر یابند و حالت پویا داشته باشند که خود یک مزیت است و باعث افزایش بهره وری در شبکه می شود. اما این مسئله خود باعث پیچیدگی و کند شدن عمل پیکربندی می شود. اما با اعمال شبکه دو لایه براحتی می توان این همبندی را از چشم کاربر مخفی کرده و وظیفه لایه کنترل خواهد بود که مدیریت آنها را بر عهده گیرد.
* Mobility
همچون شبکه های موبایل، در شبکه های SDN، جابجائی نودها و هاستها در درون شبکه بسیار ساده تر انجام می شود. با استفاده از پروتکلهای مسیریابی همانند BGP یا OSPF و کنترل آنها و مانیتور کردن مداوم شبکه، حرکت نودها در قسمتهای مختلف شبکه و یا رسیدن به مقصد از مسیرهای مختلف به سادگی میسر خواهد شد.
* QOS
کیفیت سرویس، پیاده سازی کیفیت سرویسها و TOS (Type of Service) در شبکه های معمول نیز امکان پذیر است. اما در زمانی که کل شبکه را بصورت مجازی و یکپارچه داشته باشیم و تحت لایه کنترل قرار گیرند، رسیدن به QOS بسیار ساده تر می باشد و بر اساس عواملی همچون حرکت نودها، مسیرهای مختلف و توازن بار به راحتی می توان این امکان با درصد بیشتری دست یافت.
* Security
پیاده سازی امنیت، یکی از مباحث پیچیده در هر شبکه ای می باشد که نیاز به دانستن و داشتن دانش فنی توسط سرپرستان شبکه می باشد. دلیل پیچیدگی آنست که در امنیت باید تمامی المانها را لحاظ کرد و فراموش کردن حتی یک نود ممکن است کل مبحث امنیت در شبکه را به زیر سئوال ببرد، بطور مثال اگر یکی از سویچ ها در روند پیکربندی امنیت لحاظ نشود ممکن است براحتی کل پیکربندی امنیت را به زیر سئوال ببرد.
اما اگر از لایه کنترل جهت اعمال و پیاده سازی امنیت استفاده شود، درصد خطا به مراتب کمتر خواهد شد.
علاوه بر آن بحث امنیت در رده و لایه های مختلف و در برندهای مختلف نیاز دارد که به یک نگاه تمامی جوانب را در نظر بگیریم که غیر ممکن است. اما در لایه کنترل، این همه جانبه نگری میسر خواهد شد.
شبکه های منعطف – (Elastic Tree)
یکی از مطرح ترین مباحث در کاهش مصرف انرژی در حوزه فن آوری اطلاعات به مراکز داده برمی گردد که مصرف زیادی را شامل می شود. این مصرف هم برای راهبری سرورها و تجهیزات شبکه بوده و هم برای خنک کردن این تجهیزات می باشد. امروزه طراحان مراکز داده، طراحی خود را مبتنی بر استاندارد Green DCN انجام می دهند.
در شبکه های سنتی (Fat tree) میزان مصرف انرژی تناسبی با میزان ترافیک مصرفی شبکه ندارد و با هر میزان بار و ترافیک، مصرف برق و انرژی تقریباً یکسان باقی می ماند.
همانطور که در شکل نیز مشخص است در شبکه های Fat tree مصرف همواره ثابت است اما در مدل شبکه های منعطف میزان مصرف انرژی تابعی از میزان مصرف بار است و در صورت کم و زیاد شدن، میزان مصرف انرژی نیز افزایش و کاهش پیدا می کند، به این شکل می توان میزان مصرف انرژی را مدیریت کرد.
بررسی های آماری نشان داده است که ۷۰ درصد از هزینه های مصرف برق مراکز داده مربوط به سرورها و سیستم های خنک کننده می باشد، که با کمی تمرکز و بهینه سازی می توان از این مقدار ۱۰ تا ۲۰ درصد را کاهش داد. در سال ۲۰۱۰ در حدود سه بیلیون کیلو وات بر ساعت مصرف المانهای شبکه بوده است.
سال ۲۰۱۲ این میزان ۵/۶ بیلیون کیلو وات بر ساعت رشد داشته است. اما اگر همین مراکز داده را بر اساس ساختار SDN طراحی کنیم می توانیم برخی از المانهای غیر ضرورری را حذف کنیم تا مصرف برق و گرمایش را کاهش دهیم تحقیقات نشان داده که در صورت پیاده سازی SDN در کلیه مراکز داده در آمریکا سالانه یک میلیون کیلو وات بر ساعت صرفه جوئی در انرژی خواهیم داشت.
ساختاری که برای طراحی SDN در مراکز داده مورد استفاده قرار می گیرد همانند شکل زیر است:
مراکز داده به گونه ای طراحی شده اند که بتوانند در زمانهای پیک کاری نیز عمل نمایند اما بطور متوسط بار آنها پائین تر از پیک است.
در شبکه ای Fat tree نحوه عملکرد همیشه ثابت است و توپولوژی شبکه در طول فعالیت تغییر نمی کند.
اما اگر همین مراکز داده را بر اساس ساختار SDN طراحی کنیم می توانیم برخی از المانهای غیر ضروری را حذف کنیم تا مصرف برق و گرمایش را کاهش دهیم. هر چقدر بتوانیم المانهای بیشتری از شبکه را حذف و یا غیر فعال کنیم، میزان تولید گرما کاهش پیدا می کندکه خود نیز باعث می گردد تا نیاز کمتری برای مصرف انرژی جهت سیستم های خنک کننده باشد و کاهش بیشتری در مصرف انرژی را نتیجه دهد. در این قسمت از SDN تمرکز بر روی دو گزینه است (جهت بهینه کردن مصرف انرژی) :
– سرورها
– سرمایش
شکل بالا همبندی شبکه سنتی به روش SDN را نشان می دهد، حالا اگر در همین شبکه دو سرور که در Pod 0 قرار دارند بخواهند با یکدیگر ارتباط داشته باشند فقط از طریق سویچ محلی خود این ارتباط برقرا می کنند و بقیه لینکها و سویچها غیر فعال می شوند که مصرف انرژی بسیار کاهش پیدا می کند. حالا اگر یک گره در Pod 0 بخواهد با نود دیگری در Pod 3 ارتباط برقرار کنند فقط کافی است سویچهای Pod 0 و Pod 3 و سویچ بالادست آنها فعال باشند، اما دیگر نیازی به سویچهای Pod 3 و Pod 4 نمی باشد.
ساختار درخت منعطف در SDN
شبکه های SDN عموماً از ساختار ذیل استفاده می کنند :
همانطور که در شکل دیده می شود سه قسمت اصلی یک شبکه منعطف را ساختاردهی می کنند:
۱) Optimizer
۲) Power Controller
۳) Routing Modules
* Optimizer
وظیفه بهینه ساز پیدا کردن و محاسبه حداقل میزان مصرف انرژی بر روی شبکه برای رسیدن به میزان ترافیک درخواستی و فراهم کردن تضمین کیفیت سرویسها (QOS) است این قسمت بر اساس داده های بخش مانیتورینگ و استفاده از الگوریتم : RA-TAH تلاش در ساخت درخت انعطاف مبتنی بر تعداد سویچهای فعال و ترافیک حاضر می کند.
این الگوریتم بر اساس این درخت بصورت پویا میزان نرخ پردازش پردازنده ها و یا لینکها را کاهش می دهد، در همین راستا با کاهش ضرب آهنگ (Clock) ها اقدام به کند و یا تند شدن شبکه می کند. درهمین روندها درخت پیچیده ما (Fat tree) دارای نودهای هستند که توسط همین الگوریتم غیر فعال و خاموش می شوند.
در این مرحله شبکه ما دارای گراف جدیدی خوااد شد که بر اساس همین نقشه و گراف، جداول مسیریابی و الگوریتمهای آنها باید تغییر کنند.
* Power Controller
بر اساس دستورات و سیاستهای اتخاذ شده، گره های غیر ضروری شبکه به حالت خواب (Sleep) و یا خاموش شدن می روند.
نحوه عملکرد نیز استفاده از پروتکل ارتباطی Open flow می باشد. از طریق همین پروتکل فرمان Power-Saving به المانهای شبکه داده می شود.
دستورات لازم برای فعال و غیر فعال کردن پورتها و سویچها داده می شود، این دستورات در سه حالت زیر عمل می کنند:
۱- دستورالعمل ها برای خاموش و روشن کردن سویچها
۲- دستورالعمل ها برای فعال و غیر فعال کردنلینکها و پورتها
۳- دستورالعمل ها برای تطابق نرخ فعالیت لینکها با استفاده از تغییر Clock و فرکانس کاری
برخی از دستورات برای کنترل و یا خاموش کردن یک پورت :
OFPT_PORT_MOD message:
Type of message: Controller to Switch
Length: 32 Bytes
Functions:
Configure ports state
including ON, OFF and
LINK_RATE
Structure:
struct ofp_port_mod { struct ofp_header header;
uint16_t port_no;
uint8_t hw_addr[OFP_ETH_ALEN];
uint32_t config;
uint32_t mask;
uint8_t link_state ;
uint32_t advertise;
uint8_t pad[3];
};
طریقه فعال یا غیر فعال کردن یک کارت
OFPT_LINECARD_MOD message:
Type of message: Controller to Switch
Length: 20 Bytes
Functions:
Configure line card state
Structure:
struct ofp_linecard_mod {
struct ofp_header header;
uint64_t datapath_id;
uint16_t line_card_no;
uint8_t state;
uint32_t option ;
};
* Routing
آخرین ماژول مسیریابی است، وظیفه پیدا کردن بهترین مسیر و کم مصرف ترین مسیر، بر عهده این قسمت است.
در این مرحله بر اساس داده های مرحله بهینه سازی و گراف جدید شبکه، توپولوژی درخت منعطف شکل می گیرد. در واقع در این قسمت شبکه ما با الگوی مسیریابی جدید بوجود می آید.
استراتژیهای مطرح در SDN
در بحث انتخاب استراتژی، موضوع بسیار ساده است، هدف از استراتژی خاموش و غیر فعال کردن لینکها و سویچهای که بر اساس کاهش بار شبکه دیگر به آنها نیاز نداریم.
سه استراتژی کلی در درختهای منعطف وجود دارد:
* Formal Model
* Greedy Bin-Packing
* Topology-Aware Heuristic
هر کدام از این مدلها مزایا و معایب خود را دارند.
متدها می توانند بر اساس تاریخچه ترافیک مرکز داده تغییر کنند و یا انتخاب شوند.
* Formal Model
مدلی جهت بهترین میزان مصرف به گونه ای که بتواند ترافیک درخواستی را پاسخگو باشد. این مدل برای مراکز داده با حداکثر ۱۰۰۰ گره پیشنهاد می شود.
نحوه عملکرد آن مبتنی بر فرمول زیر است:
∑ (Link + Switch Power)
مدل Greedy Bin Packing
در این مدل مسیرها از چپ به راست در شبکه محاسبه می شوند. هر درخواستی که وارد گردد بهترین مسیر از سمت راست به آن تخصیص داده می شود و این روند تا زمان تکرار درخواستها ادامه پیدا می کند.
در این روش بهترین باند گارانتی نمی شود اما در عمل نتیجه کار کیفیت بالا در کل زیر شاخه ها خواهد بود.
مثال: سه جریان که هر کدام پهنای باند ۰٫۳Gb⁄S درخواست دارند.
آلترناتیوهایی که می توانیم داشته باشیم:
جریان [a ,d]
همانطور که دیده می شود برای داشتن جریان از a تا d یکسری سویچها باید فعال باشند که در شکل با خط پر رنگ نمایش داده می شود و مابقی لینکها و سویچها غیر فعال می شوند. از بین لینکهای فعال نیز، باید بهترین لینک و مسیر انتخاب شود و بقیه لینکهای دیگر غیر فعال شوند:
جریان [b ,d]
جریان [c , e]
و برای رسیدن به حداکثر اطمینان از اتصال، الگوی زیر را انتخاب می کنیم:
و در نهایت از ترکیب موارد فوق، المانهای غیر ضروری حذف و راهکار کامل زیر بدست می آید:
مدل Topology-Aware Heuristic
در این مدل به این نکته توجه خاصی می شود:
″ در این مدل فقط کل سویچهای فعال را در نظر می گیریم و توجهی به سویچهای لبه نداریم ″
مقایسه مدلهای مختلف در درخت منعطف
در سه مدل مطرح در پیاده سازی درختهای منعطف، هر چقدر تعداد هاستها بیشتر شود، زمان لازم برای محاسبه درخت و گراف مناسب، طولانی تر خواهد بود.
در مدل فرمال با یک سیستم کنترل کننده با پردازنده دو گیگا هرتز، زمان محاسبه گراف بهینه رابطه زیر را خواهد داشت:
O(n^3.5)
در مدل greedy bin این زمان برابر با O(n^2.5) خواهد بود. در گراف نشان داده شده در ذیل می توان اختلاف زمان محاسبه را بخوبی در بین هر سه مدل مشاهده کرد.
همانطور که در شکل نیز نشان داده شده است، هر چقدر تعداد نودهای موجود در شبکه افزایش می یابد زمان محاسبه درخت و گراف مناسب برای لایه کنترل بیشتر می شود. اما این افزایش در استراتژیهای مختلف متفاوت است و همین امر باعث می شود که تفاوت در نوع استراتژیها ایجاد شود. بطور مثال در مدل Topology-aware با افزایش تعداد هاستها از ۱۰۰ عدد تا ۱۰۰۰ عدد، زمان مورد نیاز برای محاسبه نیز ۱۰ برابر بیشتر می شود.
برای محاسبه شبکه ای با ۱۰۰۰۰ هاست زمانی در حدود ۱۰ ثانیه لازم داریم.
در مدل Topology-aware درجه پیچیدگی O(n) می باشدکه نسبت به دو مدل قبلی سریعتر می باشد. در ذیل چگونگی بهینه بودن در الگوریتم آخر نشان داده شده، به همچنین دیده می شود که تغییرات کوچک، امکان رسیدن به بهترین کیفیت را میسر می کند.
نحوه محاسبه آن جزء مبحث این مقاله نمی باشد و فقط در زیر نشان داده شده است:
در جایگاه مقایسه می توان مشاهده کرد که به لحاظ بهینه بودن مدل فرمال از بقیه بهینه تر ولی به لحاظ میزان گستردگی از همه کوچکتر است.
در شکل فوق میزان گسترش پذیری در مقابل بهینه بودن هر سه مدل نمایش داده شده، فرمال بیشترین بهینه سازی و کمترین گسترش پذیری و Topo-aware بالاترین گسترش پذیری و کمترین بهینه بودن را دارد.
رابطه میزان مصرف بر اساس فاصله
یکی دیگر از فاکتورها در میزان مصرف در یک شبکه منعطف (Elastic tree) بحث دوری و یا نزدیکی نودها با یکدیگر است. بطور مثال اگر ترافیک درخواستی همگی مربوط به یک مرکز داده باشد دیگر نیازی به خروج از شبکه و استفاده از شبکه خارجی نیست، در این حالت کمترین سویچها و المانهای شبکه با آن درگیر می شوند و بهترین حالت ذخیره سازی را خواهیم داشت.
در صورتی که ترافیکهای درخواستهای مربوط به راه دور باشد، باید المانهای زیادی در شبکه درگیر شوند و به همین دلیل کمترین ذخیره سازی را خواهیم داشت.
با توجه به فرمول:
U=(∑_i▒∑_j▒λ_ij )/(Total hosts)
λij : ترافیک مربوط به نود i به نود j که λij < 1Gb⁄S
در صورتی که U=100% باشد یعنی همه المانها و لینکها فعال هستند.
شکل فوق نمایش دهنده رابطه ذخیره سازی بر حسب ترافیک درخواستی بر اساس میزان دوری و یا نزدیکی نودها نسبت به یکدیگر است.
بطور مثال اگر درخواستها همگی مربوط به یک درخواست محلی باشد تا ۶۰ درصد ذخیره سازی خواهیم داشت، در حالی که اگر ترافیک ها مربوط به فواصل دور باشند این ذخیره سازی (U=100%) به صفر نزدیک می شود.
در عمل نمی توان کاملا ً درخواستهای ترافیک را صد در صد محلی یا از راه دور در نظر گرفت و در خیلی از موارد بصورت رندم عمل می نماید.
ناحیه امن
بحثی که در اینجا به پیش کشیده می شود بحث ناحیه امن است. بطور مثال اگر یک سیستم نیاز به ۱۰۰ مگابایت پهنای باند باشد و ما این میزان را از طریق یک شبکه منعطف در اختیار آن قرار دهیم، اگر همین هاست بخواهد کمی بالاتر از این استفاده کند، میزان از دست دادن بسته های اطلاعاتی و تاخیر آن افزایش پیدا می کند، برای حل این موضوع یک حاشیه ای برای این تخصیص در نظر گرفته می شود که اگر سیستم مد نظر از آن حد بالاتر رفت دچار مشکل نگردد. بدیهی است که هرچقدر این مقدار بالاتر باشد وقوع از دست دادن بسته ها و ایجاد تاخیر کمتر می شود اما با افزایش این حاشیه میزان بهره وری نیز کاهش پیدا می کند.
همانطور که در شکلها نیز مشخص شده در هر کجا که ما حاشیه پهنای باند بالاتری را در نظر گرفته ایم میزان تاخیر و از دست دادن پکتها کمتر شده است.
Switch Migration
در زمانی که بار ترافیک شبکه کم و یا زیاد می شود، شبکه باید خود را با این بار تطبیق دهد که چنین نیازی مستلزم داشتن قابلیت جابجایی از / به سویچها است.
کنترلرها در سه حالت قرار می گیرند یا اصلی هستند (Master) یا جانبی (Slave) و یا برابر (Equal).
بصورت پیش فرض کنترلرهای جانبی فقط امکان خواندن (Read only) را نسبت به سویچها دارند در حالی که Equal و Master امکان خواندن و نوشتن بر روی سویچ خود را دارند. هر سویچ می تواند یک Master و چند Equal و Slave داشته باشد.
کنترلرها با ارسال پیام Role – Change می توانند سویچ خود را تغییر دهند.
در هنگام جابجائی و مهاجرت یک سویچ به کنترلر دیگر، کنترلر اصلی (Master) به Slave تغییر پیدا کرده و Slave انتخاب شده نقش Master را از این به بعد بازی خواهد کرد.
نحوه انتخاب نیز به این شکل است که Slave پیامی به نام Role – Request به سویچ ارسال می کند که سویچ نیز با ارسال پیامهای Packet – In و یاPacket – Out می تواند قبول و یا رد کند.
انتخاب کنترلر اصلی از طریق الگوریتمهای مختلفی همانند الگوریتم انتخابات انجام می شود و می تواند بصورت پویا در بازه های زمانی مختلف تغییر کند.
هر کنترلر با کنترلرهای دیگر در ارتباط است که با استفاده از کانالهای ارتباطی پیامهایی را به یکدیگر ارسال می کنند.
انتخاب و مهاجرت چون جزء مبحث این مقاله نیست در اینجا از آن صرفه نظر می کنیم.
در ادامه مثالها و آزمایشهای عملی آورده می شود که مطالب گفته شده در قبل را اثبات می نماید. اما قبل از آن چند مورد زیر ذکر می گردد که در آزمایشها از آنها استفاده شده است:
طریقه محاسبه میزان درصد بار ذخیره شده:
استانداردی که برای اندازه گیری میزان مصرف برق بکار گرفته می شود ECODANE نام دارد.
در این مدل بهینه سازی مصرف انرژی بر اساس طراحی پویا مبتنی بر میزان ترافیک است. در این مدل، بصورت تجربی ثابت گردیده که با خاموش کردن و یا غیر فعال نمودن المانهای غیر ضروری شبکه می توان از ۲۵ تا ۴۰ درصد کاهش انرژی داشت.
جهت پیاده سازی قسمت کنترلر هم می توان از نرم افزارهای مختلف استفاده کرد که هر کدام به روش خود عمل می کنند. بطور مثال Onix برای پیاده سازی SDN از بانک اطلاعاتی استفاده می کند و تمامی قسمتهای شبکه اطلاعات مورد نیاز خود را از همین بانک اطلاعاتی مرکزی تهیه می کنند در حالی که در Hyper flow کلیه رویدادها به تمامی نودها ارسال می شوند و همه در هر لحظه ای موقعیت شبکه را می دانند.
تخمین مصرف انرژی
در کلیه محاسباتی که انجام گرفته، در همگی فرض بر آن بوده که شبکه ای ماتریسی داریم که بار زمان آینده از قبل مشخص شده است، اما در واقعیت چنین نیست و ما تخمینی از میزان ترافیک در زمانهای بعد برای شبکه نداریم.
در این حالت، تلاش می شود که از رفتار و تاریخچه شبکه در گذشته استفاده شود و برای تخمین مصرف از این اطلاعات استفاده شود.
نرم افزارهایی نیز وجود دارند که می توانند این اطلاعات را بررسی و نتیجه آنها را برای تخمین ترافیک به لایه کنترل دهند.
تخمین مصرف برق را می توان با شبیه سازی مانند mininet محاسبه نمود.
ساختار SDN
در شکل زیر ساختار بلوک دایگرام SDN نمایش داده شده است که هر بخش وظیفه مشخصی دارد:
North Bound
منظور همان APIها است که کاربر و یا برنامه های مدیریتی از طریق آن می توانند با لایه کنترل ارتباط برقرار کنند و درخواستهای خود را به آن ارسال کنند.
South Bound
منظور همان پروتکل Open flow است که کار تبدیل و کامپایل دستورات و رساندن آنها را به المانها بر عهده دارد.
East – west Bound
کار ارتباط کنترلرهای مختلف را بر عهده دارد.
سناریوها و آزمایشها
سناریو ۱
تقریباً به ازاء هر پورت سویچ، یک وات مصرف داریم که با خاموش کردن هر پورت می توان این مقدار را ذخیره کرد.
در یک سویچ رده متوسط خود شاسی در حدود ۷۰ وات مصرف دارد و به ازاء هر پورت یک وات، بنابراین در یک سویچ ۲۴ پورت میزان مصرف ۹۴ وات خواهد بود. اگر از این ۲۴ پورت،۲۰ پورت آنرا خاموش نمائیم، ۲۰ وات در مصرف برق صرفه جوئی نموده ایم که در حدود ۲۱ درصد خواهد بود.
بهترین حالت، زمانی خواهد بود که کل سویچ غیر فعال شود که صرفه جوئی به ۹۴ وات می رسد.
سناریو ۲
در آزمایش دیگر که در تصویر نیز نشان داده شده از یک NetFPGA که مداری برای کنترل و آزمایشهای شبکه است استفاده شده است. این ابزار امکان کنترل ۴ رابط را بصورت همزمان دارد.
از NOX نیز به عنوان نرم افزار لایه کنترل استفاده شده است.
سویچها نیز از طریق OSC کنترل می شوند.
در این صورت میزان مصرف از فرمول زیر تبعیت می کند:
Psw=Pchassis+ NPp+Pr+Pctrl
Psw : مصرف کل
Pchassis : میزان مصرف شاسی
Pp : میزان مصرف هر پورت
N : تعداد پورتها
Pr : میزان مصرف رله ها در Netfpga (حدوداً mw 50)
Pctrl : میزان مصرف مدار کنترلر OSC (حدود ۰٫۷ w)
حالا اگر مصرفها را بر اساس سناریوهای مختلف محاسبه کنیم می توانیم به نتایج زیر دست پیدا کنیم:
در این جدول میزان مصرف هر سویچ که با تعداد پورتهای آن مشخص شده با میزان سرباری که توسط سیستم تست و کنترلر به آن اعمال شده، مقایسه شده است.
همانطور که در جدول نیز مشخص شده است میزان سربار بسیار ناچیز بوده و می توان از آن در مقابل میزان ذخیره سازی انرژی صرفه نظر کرد.
بطور مثال در یک سویچ ۱۲۸ پورت، خود سیستم کنترلی ۷٫۱ وات برای عمل کنترل، مصرف خواهد کرد که نتیجه آن صرفه-جوئی ۱۹۸ واتی خواهد بود.
در این گراف هر چقدر تعداد پورتهای بیشتری غیر فعال شوند درصد ذخیره سازی مصرف انرژی بالاتر می رود.
جدول ذیل نشان می دهد که اگر حداقل و حداکثر تعداد پورتهای یک سویچ غیر فعال شوند ، به چه میزان درصد ذخیره سازی انرژی خواهیم داشت. هر چقدر تعداد پورتهای سویچ بیشتر باشد، درصد ذخیره سازی انرژی بیشتر می گردد.
در این سناریو سویچها با تعداد پورتهای مختلف مورد آزمایش قرار گرفته اند. حداقل و حداکثر پورتهایی را که امکان غیر فعال کردن می باشد را جداگانه مورد محاسبه قرار داده ایم که نتایج آن در جدول بالا دیده می شود. بطور مثال اگر یک سویچ ۳۲ پورت داشته باشیم، زمانی که یکی از پورتهای آن غیر فعال باشد در حدود ۰٫۷ درصد ذخیره سازی انرژی خواهیم داشت و اگر ۶۳ پورت آنرا غیر فعال نمائیم ۴۷ درصد دخیره سازی انجام می شود.
این مسئله نشان دهنده ی تناسب میزان تعداد نودهای غیر فعال با میزان مصرف انرژی است.
سناریو ۳
شبکه ای را فرض بگیرید که دارای ۱۰۰ هزار هاست است که هر ۳۲ عدد آنها در یک رک قرار داده شده است. پیک ترافیک ۳۰۰ مگابایت است که بطور متوسط برای هر هاست ۵/۱ تا ۱۰ مگابایت است. بر اساس همین فرض ۲ مگاپکت نیز در ثانیه میزان بهره وری لایه کنترل ما می باشد.
در این حالت مابین ۱ تا ۵ کنترلر بار خواهیم داشت (در حالت معمول) ولی در حالت حد بالا تعداد کنترلرهای ما باید تا ۱۵۰ عدد اضافه شوند.
در صورتی که شبکه به حالت انعطاف پذیر طراحی نشده باشد، در تمامی لحظات باید با یک نقشه ۱۵۰ کنترلر فعالیت نماید، در حالی که با امکان انعطاف پذیری می توان از یک تا ۱۵۰ کنترلر بر اساس نیاز فعال نمود که خود باعث کاهش میزان مصرف برق و از طرفی کمتر شدن استهلاک و گرما می گردد.
سناریو ۴
شبکه ای با مشخصات و اندازه جدول زیر را در نظر بگیرید:
چنین شبکه ای با دسترسی های دور و نزدیک، مصرفی به شکل زیر با میزان ترافیک مشخص شده خواهد داشت:
سناریو ۵
شکل زیر نمایش دهنده یک وب سایت فروش یک شرکت است که نشان می دهد در طول پنج روز کاری دارای ترافیک تقریباً ثابت و در دو روز تعطیل پایانی ترافیک آن افزایش پیدا کرده، اما همانطور که گراف نشان می دهد میزان مصرف انرژی همیشه ثابت بوده و تابعی از ترافیک نیست.
سناریو ۶
دو شکل زیر نشان دهنده میزان ترافیک یک پورت روتری در سایت گوگل است، محور y بر حسب Mb/s است.
شکل اول نشان دهنده ی تغییرات ترافیک در روزهای مختلف ماه و شکل دوم نشان دهنده میزان ترافیک در ساعتهای مختلف شبانه روز است.
این ترافیکها بسته به زمانهای مختلف، ترافیکهای مختلفی دارند. این امر نشان می دهد که میزان ترافیک مصرفی تابعی از زمان و فاکتورهای دیگری است که باعث نوسانات در آن می شود ولی در شبکه های سنتی، چون طراحی بر اساس بار حداکثری ایجاد شده امکان کوچک و یا بزرگ سازی بر اساس این ترافیکها وجود ندارد.
نتیجه گیری
پیاده سازی شبکه های مبتنی بر SDN ویژه گیهای خاصی را برای ما فراهم می کنند که از این جمله می توان به مواردی مانند موارد ذیل اشاره نمود:
– کاهش مصرف انرژی
– کاهش گرما
– مجازی سازی المانهای شبکه
– دیدگاه نرم افزاری به شبکه
– مدیریت آسان شبکه
– عدم وابستگی به میزان وسعت شبکه و برندهای استفاده شده
– انعطاف پذیری در ساختار شبکه
– پویا بودن توپولوژیها و همبندی شبکه
در بحث درختهای منعطف و پیاده سازی آن در مراکز داده ، این امکان میسر می گردد که بتوان ذخیره سازی انرژی را به میزان قابل قبولی کاهش داد.
این ذخیره سازی می تواند بین ۱۰ تا ۲۰ درصد باشد که به همین میزان نیز سیستمهای خنک کننده انرژی کمتری برای خنک کردن مراکز داده مصرف می کنند.
پویا بودن همبندی شبکه بدون توقف آن و تغییر توپولوژی شبکه در هنگام کار از دیگر مزایای است که در شبکه های SDN می توان به آن دست یافت.
در شبکه های مبتنی بر SDN با استفاده از Optimizer براحتی می توان بر اساس اطلاعات مانیتورینگ بدست آمده از شبکه اقدام به طراحی مجدد شبکه و کنترل میزان مصرف انرژی نمود.
در چنین شبکه هایی دیگر المانهای شبکه بطور مستقل عمل نمی کنند و هر کدام بصورت یک منبع از یک سیستم کلی در خدمت کل شبکه قرار می گیرند که چنین امکانی باعث می گردد تا بتوان توازن بار بر روی نودهای پر ترافیک و نودهای بیکار را براحتی انجام داد.
به همین ترتیب می توان حداکثر در دسترس بودن و حداکثر کارایی را از این شبکه ها بدست آورد ، .درصورتی که یکی از المانهای موجود در شبکه مانند یک سویچ ، دچار مشکل شود بصورت مجازی سویچ دیگری در شبکه براحتی جا ی آنرا پر می کند و دیگر ابعاد جغرافیای کمتر می تواند باعث عدم پیاده سازی آن گردد.
کنترل سادتر و عدم درگیر شدن کاربران با پیچیدگیهای شبکه و سپردن این مسئله به یک لایه کنترلی از دیگر محاسن آن محسوب می گردد. در این حالت به دلیل آنکه لایه کنترل کلیه ارتباطها را بر عهده می گیرد و لایه های زیرین سخت افزاری از دید سرپرست سیستم مخفی می ماند ، نیاز به اپراتورهای حرفه ای نمی باشد و فقط اپراتور باید درخواست خود را از طریق نرم افزارهای موجود به لایه کنترل ارسال کند ، که خود این نرم افزارها نیز نیاز به دانستن تمامی اطلاعات لایه زیر را ندارند که خود باعث ساده تر شدن و ارزانتر شدن آنها می شود.
علاوه بر این دیگر کاربر لازم نیست پیکر بندی تمامی برندهای مختلف را فرا بگیرد و بدون درگیر شدن با نوع برند ، خواستهای پیکر بندی خود را با یک فرمان به شبکه اعمال کند که تمامی درخواستها در یک زمان به کلیه المانهای مورد نیاز اعمال می شوند و تمامی روابط و وابستگی هایی که بین المانها وجود دارد و در تغییرات جدید می بایست مد نظر گرفته شود نیز بصورت خودکار اعمال می شود که در اکثر موارد همین مسئله (عدم توجه به روابط بین المانها در پیکر بندی جدید) باعث گردیده تا یک پیکربندی یا عمل ننماید و یا به درستی پیاده سازی نشود.