بخشی از مقاله
چکیده
امروزه زیرساختهای شبکه درکاربردهای صنعتی، خانگی و تجاری به یک موضوع بحرانی تبدیل شده در حالی که شبکه کنونی استاتیک و غیر قابل برنامهریزی است. شبکه نرم افزارمحور به تازهگی قابلیت برنامهپذیری و نوآوری در شبکه را توسط OpenFlow به میان آورده که انعطافپذیری و مدیریت شبکه را در پی داشته است به طوری که هوش شبکه در کنترلر سوئیچ OpenFlow قرار گرفته و ترافیک شبکه را در سطح داده مدیریت میکند.
تاکنون پیاده سازیهایی از تجزیه کننده بسته بر روی FPGA در شبکه نرم افزارمحور مطرح شدهاند که فاقد انعطافپذیری لازم و برنامهپذیری بودهاند و تنها از یک گراف تجزیه پشتیبانی میکنند که این خود باعث بروز محدودیت در ایجاد پروتکلهای جدید شبکه میشود. در واقع تجزیه کنندههای بسته ثابت بودهاند و فاقد انعطاف پذیری لازم برای پشتیبانی از خصوصیات نسخههای مختلف سوئیچ OPEN FLOW می باشند.
دراین مقاله به تولید اتوماتیک، تجزیه کننده بسته برنامهپذیر برای سوئیچ OPEN FLOW با استفاده از Genesis بر روی FPGA پرداخته شده است که علاوه بر ایجاد انعطاف پذیری بالا در سوئیچ، قابلیت برنامهپذیری را دارا است و امکان پشتیبانی از گرافهای تجزیه متفاوت را در زمان اجرا فراهم میکند. با تولید این تجزیه کننده بسته برنامهپذیر بر روی FPGA موجب بهبود عملکرد سوئیچ و بالا بردن انعطافپذیری در سطح داده شبکه نرم افزارمحور خواهیم شد. شبیه سازهای انجام شده از تجزیه کننده بسته نشان دهنده عملکرد صحیح تجزیه کننده و برنامهپذیری آن در سطح شبکه میباشد.
مقدمه
زیرساختهای شبکه در اینترنت و شبکههای تجاری به یک موضوع بحرانی تبدیل شدهاند با توجه به افزایش دستگاههای تلفن همراه، افزایش خدمات ابر و محدودیتهای پهنای باند معماری شبکه به شکل پیچیدهای در آمده ا ست که با ظرفیت شبکه فعلی و نیازهای کاربران مطابقت ندارد. تکنولوژی شبکه فعلی شامل محدودیت هایی از جمله پیچیدگی، سیاستهای ناهماهنگ، عدم مقیاسپذیری و وابستگی به توسعهدهندگان میباشد که پاسخگوی نیازهای کاربران شبکه در شرکتها، خانهها و مدارس نیست .
[1] در این زمان الگوی شبکه تغییر کرد و شبکهنرمافزارمحور1 به میان آمد. SDN یک معماری جدید در دنیای شبکه ایجاد کرده که در آن قسمت کنترل شبکه از قسمت ارسال یا انتقال داده جدا شده است و رفتار شبکه را میتوان تغییر داد. SDN توسط بنیاد شبکههای باز مطرح شد که توجه بسیاری از محققان دانشگاهی و فروشندگان را به خود جلب کرد. بنیاد شبکههای باز یک سازمان که مسئول کنترل و انتشار مشخصات OpenFlow می با شد. OpenFlow یک تکنولوژی جدید برا ساس مفهوم شبکهنرمافزارمحور است که در آن سوئیچ تصمیم می گیرد که چه اقداماتی باید انجام دهد.
پیادهسازی های متعددی از سوئیچOpenFlow برروی ساختارهای مختلف صورت گرفته استOpenFlow .[2] توسط شبکهنرمافزارمحور برروی دستگاهای مختلف و نرم افزارهای شبکه اجرا شده که افزایش کارایی و کنترل ترافیک را برای ابزارهای شبکه به دنبال داشته است. به تازگی سوئیچ OpenFlow برروی ساختارهای مختلف نرم افزاری - Linux, Open-WRT - و سخت افزاری - - NetFPGA پیاده سازی شده است.[3] بیشتر محققان علاقه دارند که سوئیچ OpenFlow را برروی پلت فرم هایی برا ساس FPGA پیاده سازی کنند به دلیل اینکهFPGA ها انعطاف پذیری، سرعت و قابلیت برنامهریزی مجدد را دارند در مقایسه با ASIC ها که برای کاربردهای خاص استفاده میشوند و همه منظوره نیستند FPGA ها گزینه بهتری بوده و در ضمن اینکه ارزان تر و در دسترس تر هستند.
[4] آرایههای گیتی قابل برنامه ریزی میدانی2 شامل بلوکهای منطقی پیکرپذیر3 به همراه اتصالات میانی برنامهپذیر هستند .[5] بر خلاف مداهای مجتمع خاص منظوره4 که در تمام طول عمر خود تنها قادر به انجام یک عملیات هستند، یک تراشهی بازپیکرپذیر میتواند در عرض چند میکرو ثانیه به یک پیکربندی جدید برنامهریزی شود تا عملیات جد یدی را ان جام د هد.[6] بلوک های منطقی پیکر پذیر مهمترین م نابع منطقی برای پیادهسازی انواع مدارهای ترکیبی و ترتیبی هستند .[7] معمولا برنامهنویسی یک FPGA با استفاده از زبانهای توصیف سخت افزار نظیر VHDL و Verilog انجام میشود 9]،.[8در این مقاله به پیادهسازی و تولید اتوماتیک تجزیه کننده بسته برنامه پذیر توسط Genesis بر روی FPGA می پرداخته شده است که انعطاف پذیری و برنامه پذیری را در
سطح سوئیچ و در نهایت در سطح داده شبکه به میان می آورد .[1]
-2 کارهای مربوطه
در زمینه طراحی و پیادهسازی سوئیچ بر روی بسترهای سخت افزاری و نرم افزاری کارهایی صورت گرفته و این موضوع مورد علاقه بسیاری از محققان بوده از جمله کارهای صورت گرفته می توان به Naous و همکاران[10] اشاره کرد که سوئیچ OpenFlow را برروی NetFPGA پیاده سازی کرده اند. در این پیادهسازی تاخیر بالایی در وارد کردن یک جریان جدید به سوئیچ OpenFlow وجود دارد. با این حال این پیاده سازی شامل تاخیر بالا و انعطاف پذیری کمتری می باشد[11] Bosshart .[4] و همکاران معماری از سوئیچ ارائه دادند کهRMT نامیده شده این معماری را برروی ASIC پیاده سازی کردهاند که از حافظه TCAM برای عمل مطابقت ا ستفاده میکند که مدل OPEN FLOW را ارتقا داد ولی باز هم نتوانست محدودیت های OPEN FLOW را به طور کامل حل کند به طوری که نوی سندگان آن عنوان کردهاند که طرح شان به وا سطه تعداد مراحل پایپ لاین، جداول مطابقت، واحد عمل برای ساخت برروی تراشه ASIC محدود شده است.
از این محدودیت ها نمی توان در ساخت یک طرح برروی ASIC اجتناب کرد. Liu به پیاده سازی سوئیچ SDN برروی FPGA پرداخته است[3] که از تاخیر NetFPGA اجتناب کرده ولی بخش تجزیه کننده بسته آن ثابت می باشد که انعطاف پذیری و قابلیت بازپیکربندی برای پشتیبانی از سرآیندهای تعریف شده جدید بسته را ندارد و برای پشتیبانی از گرافهای تجزیه جدید باید مجددا برنامه VHDL بخش تجزیه کننده آن نو شته شود در واقع این بخش فاقد برنامه پذیری لازم باتوجه به خصوصیات OPEN FLOW می باشد. در این مقاله هدف اصلی تولید اتوماتیک یک تجزیه کننده بسته برنامه پذیر توسط Genesis برای سوئیچ OPEN FLOW برروی FPGA می باشد که انعطاف پذیری و قابلیت برنامه پذیری بالایی به سطح داده شبکه میدهد و اشکالات و نواقص کارهای قبلی را رفع می کند و از مزایای استفاده از FPGA بهره برده که در نهایت منجر به بهبود کارایی سوئیچ در شبکه می شود.
-3معماری شبکه نرم افزار محور
در شکل1 مولفه های اساسی SDN قرار دارد که از لایه کاربرد5، لایه کنترل و لایه زیرساخت تشکیل شده است. در این شکل واسط های6 مختلفی برای ارتباطات سطوح مختلف دیده می شود نظیر واسطهای شمالی و جنوبی که کنترلر اغلب از وا سط جنوبی برای ارتباطات با APIها ا ستفاده میکند. برنامه های کاربردی وا سط شمالی شامل سیا ستهای تجاری و پیکربندی شبکه می باشد. واسط جنوبی شبکه همان openflow است که پروتکل اصلی برای ارتباطات کنترلر با سوئیچ های فیزیکی و مجازی می باشد.[12,13] کنترلر در قسمت میانی این معماری قرار دارد و مشابه یک میان افزار شبکه عمل میکندکه اجزای فیزیکی لایه فیزیکی شبکه نظیر م سیریابها، سوئیچ ها و دیواره آتش را از یکدیگر تفکیک می کند. شرکتها با استفاده از SDN می توانند از طریق یک کنترلر مرکزی فارغ از سخت افزار و شرکت سازنده آن، شبکه را کنترل و مدیریت کنند.[14,2]
-1 سطح داده: در این قسمت المانهای سخت افزاری و نرم افزاری همانند م سیریابها، سوئیچ ها و دیواره آتش قرار گرفته ا ست و اتصالهای بین این المانها از طریق فیبر یا کابل مسی برقرار شده است .[14,2]
-2 سطح کنترل: در این قسمت لایه کنترلی است و تمامی کنترلرها در این قسمت قرار می گیرد این قسمت متشکل از یکسری نرم افزارها و سرویسها ا ست که از لایه بالاتر خود یعنی لایه کاربرد دستور دریافت می کنند.[14,2]
-1-3 پروتکل Open Flow
تکنولوژی OpenFlow سطح کنترل را از سطح داده جدا میکند و این اجازه را میدهد تا مدیران شبکه به منظور تو سعه الگوریتم های خود برای کنترل جریان دادهها، بستهها، مدیریت کارآمد تر شبکه و در نتیجه، انعطاف پذیری بیشتر در پاسخ به درخواستها و نوآوری در شبکه بپردازند.چندین نسخه از خصوصیات OpenFlow تا کنون منتشر شده از جمله OpenFlow1.0 ارائه مدلی با یک جدول جریان و مجموعه ای ثابت از زمی نه ها برای تطبیق، که از 12 سرآی ند بس ته پشتی بانی میک ند. OpenFlow1.1 گسترش یافته و سوئیچ را به حمایت از جداول جریان های متعدد، و پشتیبانی از MPLS، وا می دارد که از 15 سرآیند پشتیبانی میکند. OpenFlow1.2 به پ شتیبانی از IPv6 و تو سعه بخش تطبیق می پردازد که از 36 سرآیند پشتیبانی میکند.
OpenFlow 1.3 تونل زنی و انتزاع پورت منطقی، پشتیبانی سرویس های جدید، که از 40 سرآیند پ شتیبانی میکند.OpenFlow 1.4 پ شتیبانی از پورت ها نوری، گ سترش نظارت بر و ضعیت و تو سعه پروتکلها به آن ا ضافه شده ا ست که از 41 سرآیندپ شتیبانی میکند. برای اطلاعات بی شتر در زمینه خ صو صیات می توان به مراجع [2,3,15,16] رجوع کرد . باتوجه به خصوصیات مختلف OpenFlow و بروز رسانی آن سوئیچ همواره باید بتواند از این خصوصیات پشتیبانی کند در واقع اینجاست که نقش تجزیه کننده در سوئیچ برای پشتیبانی از سرآیندهای جدید و توالی سرآیندها در شبکه مشخص میشود که برنامه پذیری چه نقش به سزایی می تواند داشته باشد و انعطاف پذیری بالایی را به میان می آورد.
-4 معماری OpenFlow
انعطاف پذیری از مزایای کلیدی OpenFlow در مقایسه با پروتکل های موجود مانند IP و اترنت است. به طور کلی، استفاده از OpenFlow مزایایی در مجازی سازی شبکه و توزیع شدگی دا شته ا ست.[16] سوئیچ OpenFlow به طور عمده از جداول جریان و یک رابط برای ا صلاح مدخل های جدول جریان تشکیل شده است.[3] کنترلر OpenFlow در مورد م سیر ب ستههای ت صمیم گیری میکند. و کنترلر به سوئیچ OpenFlow از طریق لایه سوکت امن - SSL - متصل شده و تغییر مدخل جدول جریان از طریق همین رابط می با شد.کنترلر نقش به روز ر سانی جداول جریان را در سوئیچ را برعهده دارد.[3]
شکل :2 معماری سوئیچ [3] SDN
هر جدول جریان حاوی مدخلهایی برای شناسایی بسته های وارد شده است که براساس نوع سرآیند بسته که در جدول جریان می باشد اقدامات مربوط به آن انجام میشود. اگرسرآیند بسته ای با وارده های جدول مطابقت نداشته باشد به کنترلر فرستاده یا حذف میشود.
-5معماری سوئیچ برروی FPGA
معماری سوئیچ OPENFLOW V1.1 که توسط Li طراحی شده را در شکل زیر میبیند.[3] در این معماری سوئیچ دارای 4 پورت ورودی برای دریافت بسته می باشد که پس از تجزیه یسته ها، آن ها را برروی پورت خروجی مناسب براساس قاعده مشخص شده در جداول مطابقت میفرستد که به معرفی اجزای سوئیچ پرداخته میشود:
شکل :3 معماری سوئیچ [3]OPEN FLOW V1.1
: Packet_generator به تولید ب سته برای برای پورتهای ورودی سوئیچ می پردازد. : Pre_Processor ب سته های تولیدی را از پورت ورودی دریافت می کند و عمل تجزیه را برروی ب سته انجام میدهد. شنا سایی، ا ستخراج سرآیندها و زمینههای بسته در شبکه در این بخش است.