وب سایت آموزشی ، تحقیقاتی

moaveni

به نام خدا

من مسعود معاونی هستم دارای دانشنامه کارشناسی کامپیوتر در گرایش نرم افزار هستم وهم اکنون در مقطع ارشد در رشته امنیت اطلاعات مشغول به تحصیل هستم .

اطلاعات بیشتر ......


Open Flow »

دانلود نسخه پی دی اف این مقاله (لطفا امانتدار باشید )

به نام خدا

Open Flow :

فعال کردن نوآوری ها در شبکه های محیط دانشگاهی(باز) :

Open Flow : Enabling innovation in campus network

چکیده :

در این مقاله به ارائه پیشنهاد Open Flow می پردازیم : می خواهیم راه را برای محققان در اجرای پروتکل های تجربی در شبکه های که هرروزه از آن استفاده می کنیم باز کنیم .

Open Flow اساس کار سوئیچ های اترنت است است که در آن یک جدول جریان داخلی[۱] وجود دارد و یک رابط استاندارد شده برای حذف و افزودن جریان های ورودی دارد . هدف ما این است که فروشندگان تجهیزات شبکه را تشویق کنیم تا Open Flow را به محصولات سوئیچ خود اضافه کرده تا بوسیله آن به استقرار back bone های دانشگاهی و شبکه های سیمی خصوصی بپردازیم .

ما باور داریم که Open Flow در عمل سازگار است چرا که از یک سو به محققان امکان انجام آزمایشات را بر روی انواع سوئیچ های گوناگون (ناهمگن) را می دهد و از سوی دیگر لازم نیست که فروشندگان به افشای فعالیت داخلی سوئیچ ها بپردازند .

علاوه بر این به محققان اجازه می دهد تا ایده های خود را در یک ترافیک واقعی ارزیابی کنند . Open Flow می تواند به عنوان یک جزء از محیط باز برای محیط های مقیاس بزرگ [۲] مانند GENI استفاده شود .

دو ساختمان در دانشگاه استنفورد به زودی شبکه های Open Flow را اجرا خواهند کرد . آن  ها این کار را با استفاده از سوئیچ و روتر های اترنت تجاری[۳] انجام خواهند داد . ما برای استقرار این طرح در دیگر مدارس ، دیگران را تشویق می کنیم و به شما پیشنهاد می دهیم که به فکر استقرار Open Flow در شبکه دانشگاهی خود باشید .

کلمات کلیدی : سوئیچ اترنت ، مجازی سازی ، مبتنی بر جریان

امروزه شبکه ها به بخشی از زیر ساخت های حیاتی کسب و کار ما ، خانه ها و مدارس تبدیل شده اند . این موفقیت برای محققان شبکه هم مزیت دارد و هم عیب :

کار آن ها بسیار مناسب است و شانس خود را برای ساخت یک ارتباط از راه دور افزایش می دهند اما در دنیای واقهی نوآوری های شبکه را کاهش خواهند داد زیرا نیاز به نصب تجهیزات و پروتکل های زیادی دارند و یک بی میلی شدید برای ازمایشاتی که به تولید ترافیک می پردازد وجود دارد . این عوامل موانع بسیاری را برای ورود ایده های جدید ایجاد کرده اند .

امروزه تقریبا هیچ راه عملی برای آزمایش بر روی شبکه های جدید (برای مثال پروتکل های جدید مسیریابی ، یا جایگزینی برای IP ) در سایز واقعی وجود ندارد . (به عنوان مثال در مقیاس ترافیک واقعی ) . به همین دلیل به راحتی نمی توان به آن ها اعتماد کرد و ان ها را در یک محیط واقعی استقرار داد . نتیجه ای که می شود گرفت این است که بسیاری از ایده های شبکه که توسط محققان مطرح شده اند هرگز تست و ازمایش نشده اند . به همین دلیل این باور در زیرساخت های شبکه مرسوم شده است که اجرای آنها “سخت” [۴]می باشد .

پس از این که این مشکل به رسمیت شناخته شد ، محققان به شدت بر روی توسعه شبکه های قابل برنامه ریزی از جمله GENI کار می کردند . در پروژه GENI یک مرکز تحقیقاتی پیشنهاداتی را از سراسر دنیا برای آزمایش بر روی معماری شبکه های جدید و سیستم های توزیع شده دریافت می کرد . این شبکه های قابل برنامه ریزی برای پاسخ به سوئیچ های و روترهای قابل برنامه ریزی (با استفاده از مجازی سازی) بودند که می توانند به طور همزمان بسته ها را برای جداسازی در آزمایش ها پردازش کنند .

برای مثال در GENI محققین انتظار داشتند تا قسمتی [۵] از منابع در کل شبکه مورد استفاده قرار قرار گیرد و عناصر با استفاده از آن به پردازش بسته ها بپردازند .برنامه محققان slice ها را انطور که آنها مایل هستند ایجاد می کنند . یک برش(Slice) می تواند در سراسر back bone گسترش یافته و به شبکه ها و محیط دانشگاهی و آزمایشگاه های تحقیقات صنعتی و شبکه های سیمی و بی سیم و حتی شبکه های حسگر بی سیم دسترسی داشته باشد .

شبکه های مجازی قابل برنامه ریزی می توانند مانع ورود ایده های جدید که نرخ نوآوری پایینی در زیر ساخت های شبکه دارند بشوند . اما ایجاد یک برنامه سراسری امکانات بلندپروازانه ای (پرهزینه) را نیاز دارد و سال ها طول می کشد تا بتوان آن را ایجاد کرد .

این مقاله بر روی بررسی یک سوال کوتاه متمرکز می شود که : محققان ، چگونه می توانند آزمایشات خود را در یک شبکه دانشگاهی اجرا کنند ؟

اگر ما بتوانیم این موضوع را متوجه شویم ، می توانیم این تکنولوژی را در سایر دانشگاه ها و کل جامعه گسترش دهیم .

برای مواجه با این چالش نیاز است که به چند سوال پاسخ دهیم :

هدف ما این است که پیشنهاداتی را براساس ویژگی های جدید سوئیچ ها مطرح کنیم که به گسترش شبکه های سیمی قابل برنامه ریزی منجر شود .

یکی از این پیشنهادات (که ما آن را تایید نمی کنیم) این است که فروشندگان تجهیزات تجاری(دارای نام تجاری هستند) را متقاعد کنیم تا به ارائه یک پلت فرم مجازی و قابل برنامه ریزی بر روی سوئیچ و روترهای خود اقدام کنند ، به طوری که محققان بتوانند پروتکل های جدید خود را به راحتی بر روی آن ها مستقر کنند و مدیران شبکه ها می توانند به راحتی از تجهیزات خود پشتیبانی کنند . که این کار در کوتاه مدت ، درز از انتظار است .

سوئیچ و روترهای تحاری به طور معمول یک پلت فرم نرم افزاری باز را ارائه نمی دهند و هرگز حاضر به ارائه وسیله ای سخت افزاری یا نرم افزاری برای مجازی سازی نمی باشند .

کار شبکه های خارجی این است که رابط های خارجی استاندارد را به صورت محدود ارائه می دهند (به عنوان مثال فقط بسته را به جلو می فرستند ) و انعطاف پذیری داخلی سوئیچ ها از همه پنهان می باشد و این موضوع از  فروشنده ای با فروشنده دیگر متفاوت است و هیچ پلت فرم استانداردی برای آزمایش ایده های جدید محققان وجود ندارد .

علاوه بر این ، فروشندگان تجهیزات شبکه در مورد ارائه رابط های باز در box های خود بسیار حساس هستند؛ آن ها سالیان سال وقت خود را صرف استقرار و تنظیم و توزیع پروتکل ها و الگوریتم های شکننده خود کرده اند و از تجربه های جدید و شکست های احتمالی به شدت می ترسند . البته پلت فرم های باز موانع را برای ورود رقبای جدید کاهش خواهد داد .

تعدادی پلت فرم های نرم افزاری باز در حال حاضر وجود دارد ، اما عملکرد و تعداد چگالی پورت های آنها مناسب نیاز ما نمی باشد . ساده ترین مثال یک کامپیوتر با چندین رابط شبکه و یک سیستم عامل است .

همه به خوبی می دانند که سیستم عامل ها از مسیریابی بسته ها بین رابط ها و پروتکل های مسیریابی منبع باز پشتیبانی می کنند (به عنوان مثال می توان به لینوکس توزیع شده و یا XORP اشاره کرد) و در برخی موارد ممکن است نیاز به تغییر سیستم عامل برای پردازش بسته ها داشته باشیم ( مثلا استفاده از click ).

مشکل عملکرد این است که یک کامپیوتر نمی تواند از تعداد پورت مورد نیاز برای یک شبکه سیمی پشتیبانی کند .(بیش از ۱۰۰ پورت برای هر box مورد نیاز است ) و به کارایی پردازش بسته بستگی دارد (سوئیچ شبکه سیمی پردازش را با سرع ۱۰۰Gbit/s انجام می دهد در حالی که یک PC معمولی به زحمت از مرز ۱Gbit/s است).

پلت فرم های موجود با نرخ سرعت پردازش سخت افزارهای تخصصی شبکه های سیمی متناسب نیستند . به عنوان مثال روتر قابل برنامه ریزی مجازی ACTCA که super charged planet Lab platform نامیده می شودو در حال توسعه در دانشگاه واشنگتن است می تواند از پردازنده های شبکه برای پردازش بسته ها به طور همزمان از چندین رابط استفاده کند . این رویکرد در بلند مدت امیدوار کننده است اما در حال حاضر هدفی را مورد توجه قرار داده که بیش از حد برای استقرار در شبکه سیمی یک کالج گران است و از سوی دیگر NetFPGA هدف خود را استفاده در تدریس و آزمایشگاه های تحقیقاتی قرار داده است .

NetFPGA یک کارت PCI کم هزینه را با یک FPGA قابل برنامه ریزی کاربر برای پردازش بسته استفاده می کند و از ۴ پورت گیگابیتی اترنت بهره می برد .NetFPGA به ۴ رابط شبکه برای استفاده در شبکه های سیمی محدود شده است .

بنابراین راح خل های تجاری بیش از حد بسته و غیرقابل انعطاف هستند و راه حل های پژوهشی هم عملکرد کافی و یا گنجایش خروجی مناسبی ندارند و ا این که بیش از حد گران هستند .

به نظر بعید می رسد که راه حل های پژوهشی ، بتوانند به طور کامل و جامع بر عملکرد و یا محدودیت های هزینه ای خود غلبه کنند . بیشترین رویکردهای که ما را امیدوار نگه می داد تا به یک درجه از انعطاف پذیری در سوئیچ برسیم عبارتند از :

در این مقاله به توصیف مشخصات یک سوئیچ Open Flow می پردازیم که تلاش های مناسبی برای پاسخگویی به ۴ هدف بالا نموده است .

اساس این ایده به صورت ساده عبارت است از :

ما از این واقعیت بهره برداری می کنیم که بسیاری از سوئیچ ها و روترهای اترنت مدرن دارای جول جریان[۶] هستند که در اجرا و پیاده سازی فایروال ها ، QOS ، NAT و جمع آوری آمار مورد استفاده قرار می گیرند .

در حالی که جدول جریان هر فروشنده ای متفاوت است، ما مجموعه ای مشترک از توابع را که در بسیاری از سوئیچ ها و روترها اجرا می شوند را شناسایی کرده ایم . Open Flow از مجموعه این توابع مشترک استفاده و بهره برداری خواهد کرد .

Open Flow یک پروتکل باز را فراهم می کند تا بوسیله برنامه موجود در این پروتکل جدول جریان را در سوئیچ ها و روترهای مختلف کنترل نماید . مدیر شبکه می تواند ترافیک را به جریان تولیدی و پژوهشی (آزمایشی) تقسیم بندی کند . محققان می توانند جریان خود را کنترل کرده و با انتخاب مسیر بسته های خود را دنبال کرده و پردازش آن ها را دریافت کنند .

در این روش ، محققان می توانند پروتکل های جدید مسیریابی را تست کنند و مدل های امنیتی ، طرح های آدرس دهی و حتی جایگزین های IP را بررسی کنند . در همان شبکه ترافیک تولیدی از ترافیک آزمایشی جدا می شود و پردازش ها به مقصد خواهند رسید .

مسیر داده از یک سوئیچ Open Flow که متشکل از یک جدول جریان است تشکیل می شود و با هر جریان ورودی یک عمل (اقدام) خاصی را انجام می دهد .

مجموعه ای از اقدامات پشتیبانی شده توسط سوئیچ های Open Flow در حال توسعه است اما در ادامه حداقل های مورد نیاز برای تمام سوئیچ ها را توصیف می کنیم .

برای دستیابی به عملکرد بالا و هزینه کم در مسیر داده باید یک درجه از دقت و انعطاف پذیری وجود داشته باشد . این بدان معنی است که می توان از توانایی خاصی که در مدیریت هر بسته وجود دارد صرف نظر کرد و محدودیت را افزایش داد اما همچنان طیف وسیعی از اقدامات مفید را انجام داد . بنابراین ، در ادامه به تعریف پایه ای از تمامی اقدامات مورد نیاز برای تمام سوئیچ های Open Flow خواهیم پرداخت .یک سوئیچ Open Flow حداقل از سه بخش زیر تشکیل شده است :

با تعیین یک رابط استاندارد(پروتکل Open Flow) ورودی های داخل جدول جریان می توانند از آن خارج شوند و سوئیچ Open Flow از نیازمند بودن محققان به برنامه سوئیچ اجتناب می کند .

دسته بندی سوئیچ ها بسیار مفید و کاربردی است و این که سوئیچ های Open Flow پردازش های لایه های ۲و۳ نرمال را پشتیبانی نمی کنند و هدف کلی سوئیچ و روترهای تجاری Open Flow این است که از پروتکل جریان باز و رابط به عنوان یک ویژگی جدید استفاده کنند .

سوئیچ های اختصاص یافته به Open Flow :

یک سوئیچ Open Flow اختصاصی یک عنصر مسیر داده بی معنا است که بسته ها را بین پورت انتقال می دهد و یک فرآیند کنترل از راه دور را معرفی می کند .

Open Flow

اوپن فلو
Open Flow

شکل ۱ : ایده سوئیچ Open Flow . جدول جریان توسط یک کنترل از راه دور و از طریق یک کانال امن انتقال می یابد .

شکل ۱ نمونه ای از یک سوئیچ Open Flow را نشان می دهد .در این زمینه ، جریان به طور گسترده ای تعریف می شود . برای مثال یک جریان می تواند یک اتصال TCP را برقرار کند و یا همه بسته ها را از یک آدرس MAC خاص یا آدرس IP و یا تمام بسته ها را با برچسب VLAN متشابه یا همه بسته ها را از پورت سوئیچ مشابه دریافت کند .

برای آزمایش مربوط به بسته های غیر از IPv4 یک جریان می تواند تمام بسته ها را تعریف کرده (به جزء غیر استانداردها) و ان ها را با یک سرآیند خاص تطبیق می دهد .

هر جریان ورودی یک عمل ساده مرتبط با آن دارد ؛ سه کار اساسی آن ها (که تمام سوئیچ های Open Flow باید از آن پشتیبانی کنند ) عبارتند از :

یک جدول جریان ورودی دارای سه جز اصلی می باشد :

در نسل اول(TYPE 0) سوئیچ های Open Flow سرآیند یک جریان که ده تایی است را در جدول ۱ مشاهده می کنید :

جدول ۱ : سرآیند یک سوئیچ Open Flow نوع TYPE 0

یک جریان TCP می تواند در تمامی ده فیلد مشخص شده کار کند در حالی که یک جریان IP ممکن است در آن پورت های انتقال تعریف نشده باشد . هر فیلد سرآیند می تواند اجازه تجمع جریان ها را بدهد از جمله جریانی که در آن تنها IP ، VLAN تعریف شده است و ترافیک آن خاص می باشد .شرایط دقیق یک سوئیچ Open Flow بوسیله مشخصات سوئیچ های Open Flow تعریف می شود.

سوئیچ های Open Flow  فعال :

برخی سوئیچ و روترهای تجاری و نقاط دسترسی[۱] می توانند با افزودن ویژگی های Open Flow به جدول جریان خود و استفاده از کانال امن و پروتکل Open Flow ، از قابلیت های آن استفاده کنند .(لیست برخی از نمونه ها در بخش ۵ آمده است). به طور معمول ، جدول جریان دوباره توسط نرم افزار TCAMایجاد و استفاده خواهد شد . هم چنین کانال امن و پروتکل به سیستم عامل سوئیچ منتقل و اجرا می شوند .

شکل ۲ سوئیچ ها و نقاط دسترسی در یک شبکه تجاری Open Flow را نشان می دهد . در این مثال تمامی جداول جریان توسط کنترلر مدیریت می شوند و پروتکل Open Flow به یک سوئیچ اجازه می دهد که به وسیله دو یا چند کنترلر ، شبکه را کنترل کند تا بدین شکل عملکرد افزایش یافته و شبکه نیرومند تر شود .

شکل ۲ : مثالی از یک شبکه با روتر و سوئیچ های تجاری Open Flow

هدف ما این است که برای یک آزمایش در یک شبکه در کنار برنامه های کاربردی یک ترافیک منظم نیز تولید کنیم . بنایراین ، برای جلب اعتماد مدیران شبکه ، سوئیچ های Open Flow فعال باید ترافیک آزمایشی (تولید شده توسط جدول جریان ) را از ترافیک تولیدی که توسط لایه ۲ و خط لوله سوئیچ ها در لایه ۳ پردازش می شوند جدا کند .

دو راه برای این جدا سازی وجود دارد ، یکی از این راه ها این است که یک اقدام چهارمی را اضافه کنیم :

راه دیگر این است که برای مجموعه های جداگانه از VLAN ها برای تعریف ترافیک تجربی و تولیدی استفاده کنیم .

هر دو روش اجازه تولید ترافیک نرمال را می دهد اما تمامی سوئیچ ها امکان تولید نرمال ترافیک را ندارند . برخی از سوئیچ های Open Flow از یک رویکرد پشتیبانی می کنند و برخی دیگر از هر دو رویکرد پشتیبانی می کنند .

ویژگی های اضافه :

اگر یک سوئیچ از فرمت سرآیند و چهار اقدام اولیه ذکر شده پشتیبانی کند(مشخصاتی که در سوئیچ های Open Flow ذکر شد) ما آن را سوئیچ TYPE 0 می نامیم .

ما انتظار داریم که بسیاری از سوئیچ ها از اقدامات اضافه تری پشتیبانی کنند ، به عنوان نمونه به بازنویسی سرآیند بسته ها (به عنوان مثال برای NAT و یا آدرس های مبهم بر روی لینک های متوسط) بپردازند و بسته ها را در یک کلاس اولویت جای دهند .

به همین ترتیب برخی از جداول جریان قادر به مطابقت فیلدهای سرآیند بسته ها می باشند . بدین شکل آزمایشات قادر به کار با پروتکل های غیر IP جدید می شوند . مجموعه ای که این ویژگی های جدید در آن ظهور کند را ما به عنوان سوئیچ TYPE1 معرفی می کنیم .

کنترلرها[۱] :

یک کنترلر جریان های ورودی را به جدول کنترل اضافه و حذف می کند . به عنوان مثال یک کنترلر ثابت ممکن است یک برنامه ساده را بر روی یک PC اجرا نماید و یک جریان را برای اتصال به یک آزمایش ایجاد کند . این مورد جریان شبیه VLAN های است که در شبکه های فعلی یک مکانیزم ساده ترافیک آزمایشی را از ترافیک تولیدی شبکه جدا می کنند ، می باشد .

هم چنین می توانید کنترلرهای پیچیده تری را تصور کنید که به صورت پویا یک جریان را به یک آزمایش پیشرفته ، اضافه یا حذف می کنند . در این مدل یک محقق ممکن است با سوئیچ های Open Flowو تصمیماتی که به چگونگی انجام پردازش جریان مربوط می شود ، کنترل کامل یک شبکه را برعهده گیرد .

یک کنترلر پیچیده تر ممکن است از چندین محقق پشتیبانی کنند . این محققین هرکدام حساب ها و مجوزهای مختلفی دارند ولی همزمان قادر به انجام آزمایشات مستقل با مجموعه جریانات مختلف هستند .

جریان ها به شناسایی یک محقق خاص (به عنوان مثال با اجرای یک جدول سیاست در کنترلر ) می پردازند و سپس به تحویل داده ها در سطح کاربر بوسیله برنامه کنترل می پردازند و پس از تصمیم گیری می شود که اگر یک جریان جدید وارد شود آیا باید سوئیچی به شبکه اضافه شود یا نه .

به عنوان یک مثال ساده از این که یک سوئیچ Open Flow چگونه ممکن است استفاده شود ، تصور کنید که Amy (یک محقق) پروتکل Amy-OSPF را که یک پروتکل جدید مسیریابی است اختراع کرده و آن را جایگزین OSPF کرده است . او سعی می کند پروتکل خود را در یک سوئیچ Open Flow بدون ایجاد تغییر در نرم افزار هاست خود اجرا کند .

Amy-OSPF در یک کنترلر اجرا خواهد شد . هربار که جریان یک برنامه جدید  شروع می شود Amy-OSPF یک مسیر را از طریق سوئیچ Open Flow انتخاب می کند و آن جریان را به تمامی سوئیچ ها در مسیر می فرستد . Amy در آزمایش خود تصمیم به استفاده از Amy-OSPF برای ترافیک ورودی به شبکه Open Flow از PC خودش می گیرد بنابراین او اختلالی در کار دیگران در شبکه ایجاد نمی کند .

برای انجام این کار او به معرفی یک جریان ترافیک برای همه سوئیچ های Open Flow از طریق پورت سوئیچی که PC به آن متصل است می پردازد و جریان ورودی را با عمل کپسوله کردن و ارسال بسته ها به سمت کنترلر ادامه می دهد .

هنگامی که بسته به کنترلر برسد پروتکل جدید او یک مسیر را انتخاب کرده و جریان ورودی جدید را به هر سوئیچی که در طول مسیر باشد اضافه می کند . هنگامی که بسته به سوئیچی برسد ، آن باسرعتی معادل نرخ خط به پردازش بسته توسط جدول جریان می پردازد. سوالات درستی درباره عملکرد[۲] ، قابلیت اطمینان[۳] و مقیاس پذیری[۴] یک کنترلر که به صورت پویا جریان ها را به آزمایشات پیشرفته تر اضافه و یا حذف می کند وجود دارد :

آیا یک کنترلر متمرکز می تواند جریان جدید و برنامه سوئیچ ها را با سرعت کافی پردازش نماید ؟

زمانی که کنترلر از کار بیفتد چه اتفاقی خواهد افتاد ؟

تا حدی در مورد این پرسش ها در نمونه Ethane که از سوئیچ های ساده جریان و کنترل کننده مرکزی استفاده می کند پاسخ داده شده است . نتایج اولیه نشان می دهد که یک کنترلر Ethane در PC های کم هزینه می تواند تا ۱۰۰۰۰ جریان جدید را در هر ثانیه پردازش کند . که این اندازه برای یک محیط بزرگ(دانشگاهی)مناسب است . الیبته ،میزان جریان های جدید به پیچیدگی پردازش های محقق هم بستگی دارد . اما ما در مورد این اعداد که ذکر شد اطمینان داریم . مقیاس پذیری و افزونگی[۵] ممکن است در یک کنترلر ایجاد شوند که باعث می شود کنترلر در اجازه به تجهیزات جدا دچار مشکل شود .

۱-۳-  آزمایشات در یک شبکه تولیدی :

Amy در حال آزمایش پروتکل جدید خود در یک شبکه ای که توسط افراد دیگر در حال استفاده هست می باشد .بنابراین ما می خواهیم به شبکه دو ویژگی دیگر اضافه کنیم :

خصوصیت ۱ توسط یک سوئیچ Open Flow فعال بدست می آید . در آزمایش Amy ، اقدام پیش فرض برای تمام بسته ها که از کامپیوتر Amy نمی آمدند می توانستند از طریق خط لوله پردازش طبیعی انتقال داده شوند . بسته های خود Amy هم به طور مستقیم به پورت خروجی فرستاده می شد ، بدون این که در خط لوله نرمال پردازش شود .

خصوصیت ۲ به کنترلر بستگی دارد . کنترلر باید به عنوان یک پلت فرم محققان را قادر به اجرای آزمایشات مختلف سازد . محدودیت های خصوصیت ۲ را می توان با استفاده از مجوزهای مناسب و یا راه های دیگر از جمله محدود کردن اختیارات محققان در کنترل جریان های ورودی به دست آورد .

ماهیت دقیق مکانیزم اجازه بستگی به پیاده سازی کنترل دارد . ما انتظار داریم که کنترل های مختلفی پدیدار شوند . به عنوان مثال برخی از محققان در حال کار بر روی کنترلری هستند که NOX نامیده می شود و به عنوان پیرو کار Ethane محسوب می شود . کنترلرهای کاملا متفاوت ممکن است باعث گسترش ظهور نرم افزار مدیریت شبکه Open Flow شوند (GENI).

۳-۲- مثال های بیشتر :

همان طور که با هر پلت فرم آزمایشی ، مجموعه ای از آزمایش ها پیش خواهد آمد که تاکنون به غکر کسی نرسیده است . در این جا ما به بیان چند نمونه از این که چگونه با آزمایشات جدید می توان به معماری و برنامه های کاربردی جدید دست یافت می پردازیم .

مثال ۱ : مدیریت شبکه و کنترل دسترسی :

ما به بررسی Ethane به عنوان اولین مثال می پردازیم که در آن تحقیقات از Open Flow الهام گرفته است . در واقع یک سوئیچ Open Flow می تواند به عنوان تصمیمی از سوئیچ مسیرداده Ethane محسوب شود .

Ethane از پیاده سازی یک کنترلر خاص استفاده می کند که برای مدیریت شبکه و کنترل مناسب است و مدیریت پذیرش و مسیریابی جریان را برعهده دارد . ایده اصلی Ethane ای است که دست مدیران را برای تعریف سیاست های گسترده شبکه در کنترلر مرکزی باز گذاشته و مدیران می توانند به طور مستقیم بر تصمیم گیری کنترلر در پذیرش و اجرای جریان جدید نظارت داشته باشند.

یک کنترلر مجموعه ای از قوانین را برای یک جریان جدید بررسی کرده که از آن جمله می توان به بررسی “مهمان ها امکان برقراری ارتباط و استفاده از HTTP را دارند اما تنها از طریق یک پروکسی وب این کار را می توانند انجام دهند ” یا “تلفن های VOIP مجاز به برقراری ارتباط با لپ تاپ ها نمی باشند ” .

یک کنترلر بسته های مرتبط با فرستندگان را با همه اتصالات بین نام و آدرس های آن ها مدیریت کرده و پروتکل های DNS و DHCP و احراز هویت تمام کاربران را پس از پیوستن به کنترلر پیگیری کرده تا مطمئن شود که پورت سوئیچ بین آن ها (یا نقطه دسترسی) متصل است .

یک نفر می تواند فرمت خاصی از Ethane را در ذهن خود مجسم کند که در آن یک سیاست خاصی حکمفرما است که براساس آن یک کاربر می تواند یک جریان خاص را به یک کنترلر ارسال کند ، از این رو یک محقق می تواند یک پردازش خاص را در شبکه انجام دهد .

مثال ۲ : VLAN ها :

Open Flow به راحتی می تواند با شبکه های جدا شده مانند VLAN ها نیازهای کاربران را فراهم آورد . ساده ترین روش این است که به صورت استاتیک مجموعه ای از جریان ها که در دسترس یک پورت مشخص هستند بوسیله ترافیک در یک VLAN ID قرار دهد . ترافیک رسیده از یک کاربر (برای مثال نشات گرفته از پورت سوئیچ خاص و یا آدرس MAC ) برچسب ها را از طریق یک سوئیچ (از طریق یک اقدام) مناسب با شناسه VLAN خود دریافت می کند . در یک روش پویاتر ممکن است یک کنترلر برای مدیریت اعتبار کاربران از دانش و مکان کاربران برای برچسب گذاری ترافیک در حال اجرا استفاده کند .

مثال ۳ : مشتریان VOIP در شبکه های بی سیم سیار :

به عنوان مثال یک آزمایش از مکانیزم تماس دستی با تلفن های WiFi را در نظر بگیرید . در این آزمایش مشتریان VOIP یک اتصال جدید بر روی شبکه Open Flow ایجاد می کنند . کنترلر مکان مشتریان را شناسایی کرده و اتصالات را مجددا مسیریابی می کند و به برنامه ریزی مجدد جداول جریان همان گونه که کاربران در شبکه حرکت می کنند می پردازد و اجازه انتقال خط اتصال از یک نقطه دسترسی به نقطه دیگر انتقال یابد .

مثال ۴ : یک شبکه بدون IP :

تاکنون مثال های ما در مورد شبکه های دارای IP بودند ، اما Open Flow نیازی ندارد که همه بسته ها را با یک فرمت ارسال کند بنابراین جدول جریان قادر به تطبیق سرآیند بسته ها خواهد بود . این مساله باعث می شود تا در آزمایشات از نامگذاری های جدید استفاده شده و طرح های برای مسیریابی و آدرس دهی وجود داشته باشد .

راه های مختلفی برای یک سوئیچ Open Flow وجود دارد که می تواند ترافیک غیر IP را پشتیبانی کند . به عنوان مثال ، جریان ها می توانند با استفاده از شناسایی سرآیند اترنت(MAC src و آدرس های DST) یک مقدار جدید برای Ether Type قرار داده و یا در سطح IP بوسیله شماره نسخه IP جدید شناخته شوند .

به طور کلی ، ما امیدواریم که در آینده سوئیچ های کنترلرها اجازه ایجاد یک ماسک عمومی [۶] (آفست +ارزش+ماسک)[۷] را داشته باشند تا بتوانند بسته ها را در راه تحقیقات خاص پردازش نمایند .

مثال ۵ : پردازش بسته ها به جای جریان :

مثال های که در بالا ذکر شدند مربوط به جریان ها هستند که در آن یک کنترلر از زمانی که جریان شروع می شود اقدام به تصمیم گیری می کند . البته ، می توان آزمایشات جالب دیگری هم براساس نیاز هر بسته به پردازش انجام داد . برای مثال یک سیستم تشخیص نفوذ[۸] که به بررسی هربسته می پردازد و یک مکانیزم کنترل ازدحام صریح و روشن دارد و یا برخی مواقع به اصلاح محتویات بسته می پردازد مانند زمانی که فرمت یک بسته را از یک پروتکل به پروتکل دیگر اصلاح می کند . دو راه اساسی برای پردازش یک بسته در Open Flow وجود دارد :

اولین و ساده ترین راه این است که تمام بسته های یک جریان را مجبور کنیم از طریق یک کنترلر عبور داده شوند . انجام این کار باعث می شود که یک کنترلر امکان اضافه کردن یک جریان جدید ورودی را به جریان سوئیچ نداشته باشد . آن کار فقط به سوئیچ اجازه می دهد تا به صورت پیش فرض بسته ها را به سمت کنترلر انتقال دهد . این کار مزیت انعطاف پذیری خوبی دارد و در هزینه ها هم کارآمد است  (هزینه کم) . این کار ممکن است یک راه مفید برای آزمایش قابلیت های یک پروتکل جدید باشد اما بعید است که برای استقرار در شبکه های بزرگ مناسب باشد .

راه دوم برای پردازش بسته ها این است که مسیر آنها را به یک سوئیچ قابل برنامه ریزی بدهیم تا پردازش بر روی بسته ها را انجام دهد . به عنوان مثال یک روتر قابل برنامه ریزی NetFPGA. مزیت این کار این است که بسته را می توان در نرخ خط در یک روش قابل تعریف برای کاربر پردازش کرد . شکل ۳ یک مثال از چگونگی انجام این کار را نشان می دهد که در آن سوئیچ Open Flow اساسا به عنوان یک patch – panel عمل کرده و به بسته ها اجازه می دهد تا به NetFPGA برسند . در برخی از موارد بورد NetFPGA (یک بورد PCI که به یک PCلینوکس متصل است) ممکن است در داخل یک شبکه سیم کشی شده در کنار یک سوئیچ Open Flow (به احتمال زیاد) و یا در یک آزمایشگاه قرار داده شده باشد .

شکل ۳ : به عنوان مثالی از پردازش بسته ها از طریق یک قطعه پردازش بسته خارجی از قبیل روتر قابل برنامه ریزی NetFPGA

کنسرسیوم Open Flow با اهداف عامه پسند به تولید این پروتکل و حفظ محصولات سوئیچ Open Flow می پردازد . این کنسرسیوم متشکل از گروهی از محققان و مدیران شبکه است که در دانشگاه ها و کالج ها ، تحقیقات خود را با این باور که اگر سوئیچ Open Flow را در شبکه خود نصب کنند به ماموریت و رسالت خود دست خواهند یافت .

امکان عضویت آزاد و رایگان برای هر کسی که در یک مدرسه ، کالج ، دانشگاه یا سازمان دولتی قرار دارد ،وجود خواهد داشت . کنسرسیوم Open Flow به افرادی که در استخدام شرکت های که در کار ساخت و فروش سوئیچ ها و روترهای اترنت و یا نقاط دسترسی های بی سیم نیستند خوش آمد می گوید .(زیرا ما می خواهیم کنسرسیوم را از نفوذ فروشندگان حفظ کرده و آن را به صورت آزاد نگهداریم ) .

برای پیوستن به ما به آدرس Join@OpenFlowSwitch.org ایمیل بزنید و یا به آدرس وب سایت کنسرسیوم www.openflowswitch.org مراجعه کنید . در این وب سایت سوئیچ های Open Flow خاص وجود دارد و یک لیست از اعضای کنسرسیوم و مراجع پیاده سازی سوئیچ های Open Flow قرار داده شده است .

مدل مجوز :

مشخصات Open Flow  این است که برای همه استفاده های تجاری و غیر تجاری رایگان[۹] است . سوئیچ ها و روترهای تجاری مدعی هستند که Open Flow باید با سوئیچ های Open Flow ازنوع TYPE 0 مطابقت داشته باشد . همان طور که در ویژگی Open Flow تعریف شده است ، Open Flow دارای علامت تجاری دانشگاه استنفورد است و از طرف کنسرسیوم حفاظت خواهد شد .

ما اعتقاد داریم که در بازار یک فرصت بسیار جالب برای فروشندگان تجهیزات شبکه برای فروش سوئیچ های Open Flow به جامعه پژوهشی وجود دارد . در هر ساختمان در هزاران کالج و دانشگاه که شامل شبکه های سیم کشی شده با سوئیچ ها و روترهای اترنت هستند و به راحتی نقاط دسترسی بی سیم در سراسر محوطه دانشگاه ها یافت می شود .

ما به طور جدی با چند سوئیچ و روتر که تولید کنندگان آن ها در حال اضافه کردن ویژگی های Open Flow به محصولات خود هستند در حال همکاری هستیم . این تولید کنندگان نیازی به تغییرات سخت افزاری خاصی در محصولات خود ندارند چرا که یک جدول جریان در سخت افزار آن ها موجود می باشد و سوئیچ ها بر روی کانال امن نرم افزاری بر روی پردازنده های موجود اجرا می شوند .

ما فروشندگان تجهیزات شبکه بسیاری را پیدا کردیم که به دنبال ایده اضافه کردن قابلیت های Open Flow  باز بودند . اکثر فروشندگان به دنبال حمایت از جامعه پژوهش هستند ، بدون این که نیازی به افشای فعالیت های داخلی محصولات خود داشته باشند .

ما در حال گسترش شبکه های Open Flow بزرگ در بخش های مختلف علوم کامپیوتری و مهندسی برق دانشگاه استنفورد هستیم . شبکه های دو ساختمان با سوئیچ های Open Flow جایگزین شده اند . در نهایت همه ترافیک بر روی شبکه Open Flow قرار خواهد گرفت در حالی که ترافیک تولیدی با ترافیک تجربی متفاوت بوده و VLAN های مختلف تحت کنترل مدیران شبکه قرار دارند . محققان می توانند ترافیک خود را کنترل کرده و قادر به اضافه کردن یا حذف جریان های ورودی خود می باشند .

ما هم چنین انتظار داریم تا سوئیچ های Open Flow مختلف توسط محققان توسعه یابند . وب سایت Open Flow شامل پلت فرم های مختلف TYPE 0 می باشد : لینوکس (نرم افزار) ، open WRT (نرم افزاری برای نقاط دسترسی ) و NetFPGA (سخت افزار ۴پورتی ).

طرح های مرجع بیشتری توسط محققان در حال ایجاد و ارسال است . ما توسعه دهندگان را به تست سوئیچ های خود در برابر طرح های مرجع تشویق می کنیم . همه مراجع سوئیچ های Open Flow در وب سایت خواهد بود و استفاده تجاری و غیر تجاری از آنان آزاد و رایگان خواهد بود .(برخی از سیستم عامل ها ممکن است محدودیت های را برای اجرا قرار دهند ، به عنوان مثال ممکن است محدودیت های در Linux GPL وجود داشته باشد .

ما باور داریم که Open Flow در عمل سازگار است و اجازه می دهد تا محققان به اجرای آزمایشات خود بر روی سوئیچ ها و روترهای ناهمگون پرداخته ، بدون آن که نیازی باشد فروشندگان تجهیزات به افشای فعالیت های داخلی محصولات خود بپردازند و یا این که محققان نرم افزار کنترلی خود را به فروشنده خاصی ارسال کنند . اگر ما توانسته ایم در استقرار شبکه های Open Flow در محیط های دانشگاهی موفق باشیم ،می توانیم امیدوار باشیم که Open Flow به تدریج در محیط های دانشگاهی دیگر هم رونق گرفته و تعداد شبکه های که از این تجربه پشتیبانی می کنند افزایش یابد . ما امیدواریم که نسل جدیدی از نرم افزارهای کنترلی ایجاد گردد که به محققان امکان استفاده مجدد از کنترلر ها و آزمایشات را بدهد و امکان ساخت و ایجاد در کارهای دیگران را هم داشته باشد . هم چنین امیدواریم که در طول زمان ، شبکه های Open Flow در دانشگاه های مختلف بوسیله تونل ها و شبکه های پوششی[۱۰] و شاید شبکه های Open Flow مدرن تر که در back bone دانشگاه ها اجرا می شوند با یکدیگر ارتباط برقرار کنند .

تقدیرات ، منابع و مراجع .

ترجمه : مسعود معاونی

Email:moaveni1@gmail.com

[۱] Controllers

[۲] Performance

[۳] reliability

[۴] scalability

[۵] Redundancy

[۶] Generic Mask

[۷] Offset+Value+Mask

[۸] Intrusion Detection System

[۹] Commercial & Non Commercial

[۱۰] Overlay

[۱] Access Point

[۱] Line – Rate

[۲] Drop

[۳] Denial Of Service Attack(DOS)

[۱] Internal flow table

[۲] Large Scale

[۳] Commercial

[۴] Ossified

[۵] Slice

[۶] Flow Table

دانلود نسخه پی دی اف این مقاله .