با به کارگیری مجازی سازی در ساختار شبکه و فراهم کردن امکان جداسازی و تمییز دادن عناصر مختلف تجهیزات شبکه ای (مسیریاب ها و راه گزین ها) از جمله Control Plane و Data Plane و به وجود آوردن دسترسی مستقیم به جداول مختلف ارسال بسته ها مانند CAM Table، مدیران شبکه ها را قادر می سازد بدون نیاز به دسترسی فیزیکی به تجهیزات، نسبت به مدیریت بهینه و متمرکز تمام آنها اقدام کنند[10]. در واقع این راهکار به گونه ای امکان برنامه ریزی متمرکز ترافیک شبکه را به وجود می آورد.
تا به حال مراکز تحقیقاتی سازوکارهای مختلفی برای استفاده از راهکار SDN در شبکه ها به وجود آورده اند که کامل ترین نسخه آنها OpenFlow است که یک رابط استاندارد برای مدیریت متمرکز تجهیزات شبکه های رایانه ای در اختیار می گذارد. در واقع با استفاده از OpenFlow می توان مسیر عبور بسته ها در شبکه روی تجهیزات شبکه ای مختلف را به صورت نرم افزاری تعیین و سیاست های پیچیده مسیریابی و امنیتی را بسادگی پیاده سازی کرد.
هدف نهایی و نتیجه مطلوبی که به وسیله راهکار SDN در شبکه ها به دست خواهد آمد، به نظارت دقیق لحظه ای و بررسی صحت عملکرد بستر شبکه و همخوانی با سیاست های مدنظر و عیب یابی سریع تر و دقیق تر مشکلات در شبکه منجر خواهد شد.
SDN هم اکنون برای یک مورد خاص بسیار مفید است: تنظیمات ابرهای ترکیبی (Hybrid Cloud)، یعنی جایی که برخی سرورهای شما در سازمان خودتان مستقر باشند و برخی در مراکز داده یا سرورفارمهای یک سرویسدهنده دیگر. درست به همین دلیل است که نیاز است شبکه های اجتماعی (و البته دیگران) از آنها برای اتصال تعداد زیاد سایتهای بینالمللیشان استفاده کنند. با OpenFlow آنها میتوانند به ظرفیتهای جدیدی در سرتاسر جهان دست پیدا کنند و تمام این ظرفیت را مانند یک مرکز داده واحد مورد استفاده قرار دهند.
با این همه، SDN نوشداروی تمام مشکلات نیست. در حال حاضر شاید برای مدیران IT بهتر باشد که تنظیمات و راهاندازی شبکهها را به صورت دستی انجام دهند تا بخواهند تمام زیرساخت موجود را دور ریخته و از تجهیزات جدید سازگار با SDN استفاده کنند. تولیدکنندگانی که سهم عمدهای در بازار تجهیزات زیرساخت شبکه دارند، هنوز از SDN و OpenFlow عقب هستند یا به سمت آن نمیروند. یک دلیل شاید این باشد که SDN را تهدیدی برای کسبوکار فعلیشان به شمار میآورند. البته با معمولتر شدن SDN و کاملتر شدن پروتکلها این وضعیت بهیقین تغییر خواهد کرد.
2.9.2 شبکه های نرم افزار محور
SDN یا شبکههای نرمافزارمحور سعی دارند هوشمندی شبکهها را بیشتر کرده و با انتقال بخش کنترل دادهها از سوئیچ و روتر سختافزاری به لایههای نرمافزاری مجازی شبکه و بهرهگیری از یک کنترلر نرمافزاری متمرکز، قابلیتهایی مانند برنامهریزی، مقیاسپذیری، انعطافپذیری، خودکارسازی، هوشمندی و توسعه نرمافزاری شبکه توسط سازمانها را فراهم کنند[9].
مدیریت و کنترل شبکههای بزرگ همیشه دردسرهای مخصوص به خود را دارد. یکی از آسانترین روشهای پیشگیری از بروز مشکلات و پیچیدگیهای مدیریت شبکههای بزرگ استفاده از محصولات یک تولید کننده در تمامی قسمتهای شبکه مورد نظر است. اتکا به یک تولید کننده، علاوه بر تحمیل هزینههای بیشتر (به خاطر محدودیتهای مربوط به لایسنس و حق نام…) میتواند خلاقیت را از سازمانها و شرکتها دور کند.
شبکههای امروزی شامل کاربرانی است که بوسیله سوئیچ ها و روترها با یکدیگر ارتباط یافتهاند. این تجهیزات به صورت دستگاه هایی عرضه میشود که سختافزار، سیستمعامل و نرمافزار توسط تولیدکننده به صورت یکپارچه در آنها تعبیه شده و تغییر در سیستمعامل تقریبا امکانپذیر نیست. از اینرو منطق معماری این تجهیزات را “عمودی” مینامند. در واقع در ساختارهای فعلی، در شبکههای بزرگ سوئیچ ها، روترها و سایر تجهیزات شبکه، هم داده و هم اطلاعات کنترلی را در بر دارند که کار بهینهسازی ساختار شبکه را بسیار مشکل میسازد.
شکل 2.7 معماری عمودی تجهیزات فعلی شبکه
اما تجهیزاتی که برایSDN و استفاده از OpenFlow تولید میشود، از منطق معماری “افقی” پیروی میکند. در این معماری، دیگر از دستگاههایی یکپارچه خبری نیست و تولیدکننده امکان استفاده از سیستمعامل و نرمافزار دلخواه مشتری را روی سختافزار تولید شده فراهم میکند تا بتوان بهطور سفارشی از سختافزار بهره جست. در واقع از دیدگاه شبکه میتوان گفت، قابلیت مدیریت دلخواه چند Control Plane مختلف و استفاده از نرمافزارهای کاربردی مجزا روی این تجهیزات فراهم میشود. در SDN، دادهها و اطلاعات کنترلی تجهیزات شبکه مانند سوئیچ ها و روترها، توسط یک API 20 یا رابط برنامهنویسی کاربردی، جدا میشود.
شکل 2.8 معماری افقی تجهیزات شبکه ی SDN
SDN یک معماری جدید برای شبکه های کامپیوتری است که طی آن کنترل اطلاعات از خود اطلاعات و انتقال اطلاعات مجزا می شود و لایه های زیرین شبکه مانند لایه پیوند داده ها و لایه سخت افزار شبکه به لایه های بالاتر مانند لایه برنامه ها منتقل می شود. روتر ها و سوئیچ های کنونی شبکه ها هرچقدر که پیشرفته و قدرتمند باشند عملیات انتقال و کنترل اطلاعات را با هم انجام میدهند. در معماری SDN کنترل اطلاعات از سخت افزار سوئیچ و روتر مجزا شده و به یک لایه با
لاتر رفته و توسط نرم افزار انجام می شود.
با مجزا شدن Control Plane از Data Plane در سخت افزارها ، شرکت ها می توانند نرم افزارها و ابزارهای زیادی برای کنترل اطلاعات نوشته و در نتیجه سرعت ، انعطاف پذیری ، مقیاس پذیری ، دسترس پذیری و قابلیت اعتماد شبکه را بیشتر کنند. شرکت های مختلف می توانند برای سخت افزارهایی با برند های مختلف API هایی بنویسند که قابلیت ها و امکانات بیشتری برای شبکه به همراه دارند و مدیریت شبکه را متمرکز و یکپارچه می کنند و همچنین امنیت شبکه بالاتر می رود زیرا کاربران با نوشتن نرم افزارهایی می توانند مدیریت و مانیتورینگ بهتر و بیشتری روی اطلاعات داشته باشند و بر اساس نیازهای شبکه و تهدیداتی که متوجه شبکه آنها است، فایروال ها و سیستم های کشف فیلترینگ را برنامه ریزی و سیاست گذاری کنند. مزیت دیگر پیکربندی مجدد شبکه و سخت افزار بدون نیاز به شرکت سازنده آن سخت افزار است. در شبکه های کنونی کاربران محدود به استفاده از فناوری و معماری ارائه شده توسط شرکت های سازنده سخت افزار هستند و نمی توانند خودشان دست به توسعه شبکه بزنند. برنامه نویسی رابط شبکه در SDN توسط خود کاربر صورت می گیرد و مطابق با نیاز های او می تواند بومی سازی شود. استاندارد SDN به گونه ای طراحی شده است که فرآیند ارسال اطلاعات در شبکه ها را آسان تر و انعطاف پذیری شبکه ها را تحت فضای برنامه ریزی شده هوشمند بیشتر می کند.
اگر بخواهیم شبکههای نرمافزارمحور یا SDN را خیلی ساده تعریف کنیم باید بگوییم: “نسل جدیدی از شبکهها که با استفاده از لایههای مجازی، سوئیچهای مجازی، کنترلر مرکزی، استانداردهای ارتباطی و API های سطح بالا سعی میکنند برخی از کارهای کنترلی و مدیریتی سوئیچها و روترهای شبکه را در لایههای بالاتر به صورت نرمافزاری انجام دهند”. به زبان دیگر SDN وابستگی به سختافزار را کاهش داده و قابلیتهای نرمافزاری و هوشمندی شبکه را افزایش میدهد. از این رهگذر سازمانها و شرکتهای گسترده میتوانند خودشان اقدام به برنامهریزی و برنامهنویسی برای شبکه خودشان کرده و قابلیتهای سفارشی و اختصاصی را به وجود بیاورند که نتیجه آن سرویسهای جدیدی برای مشتریان است. شکل زیر شمایی از SDN را نشان میدهد. لایه کنترل که میتواند یک سوئیچ مجازی یا یک محصول کنترلر مرکزی باشد دستورات لایه برنامههای کاربردی را با زبان OpenFlow به سختافزار منتقل و سختافزار دادهها را براساس نیازها و سیاستهای اعمال شده جابهجا و هدایت میکند.
* لایه زیرساخت : شامل عناصر شبکه و تجهیزاتی که Packet Switching و Forwarding را پشتیبانی می کنند.
* لایه کنترل : قابلیت تثبیت کنترل را فراهم می کند که بر روی رفتار حمل و نقل از طریق یک Open Interface نظارت دارد.
* لایه برنامه های کاربردی : شامل برنامه های کاربردی کاربر نهایی می باشد که از سرویس ها و خدمات SDN استفاده می کنند.
* API مرز بین لایه کنترل و لایه برنامه های کاربردی می باشد.
بر اساس این مدل، یک معماری SDN توسط سه ویژگی کلیدی، مشخص می شود:
0- هوش منطقی متمرکز : در یک معماری SDN، کنترل شبکه حمل و نقل با استفاده از یک رابط استاندارد توزیع شده (Open Flow) انجام می گیرد. با متمرکز شدن شبکه های اطلاعاتی، تصمیم گیری بوسیله یک دید جهانی نسبت به شبکه، نسبت به شبکه های امروزی که در آنها گره ها از حالت کلی شبکه بی اطلاع هستند راحت تر است.
1- قابلیت برنامه ریزی : شبکه های SDN ذاتا قابلیت برنامه ریزی توسط فروشندگان یا خود اپراتورهای شبکه را دارند. این قابلیت باعث می شود که الگوی مدیریت دستی با خودکارسازی جایگزین شود و همچنین با فراهم آوردن API های باز برای برقراری ارتباط برنامه های کاربردی با شبکه، شبکه های SDN می توانند نوآوری های زیادی را ایجاد کنند.
تجرید : در یک شبکه SDN ، برنامه های کاربردی کسب و کار که خدمات SDN را ارائه می دهند از تکنولوژی های زیربنایی شبکه مجزا شده اند. تجهیزات شبکه از لایه کنترل SDN مجزا شده و برنامه های کاربردی در این لایه ساکن شده اند.
2.9.3 معماری SDN :
شکل 2.8 ساختار منطقی SDN را نشان میدهد. کنترلکننده مرکزی وظیفه انجام تمام کارهای پیچیده از جمله مسیریابی، نامگذاری، سیاستگذاری و چکهای امنیتی را بعهده دارد. این صفحه شامل صفحه کنترل SDN و یک یا چند سرور SDN میباشد. شکل 2.10 ساختار منطقی SDN [8]
کنترلکننده مرکزیSDN جریانهای داده که در صفحه داده SDN جریان دارند را مشخص میکند. هر جریان داده در شبکه ابتدا باید از کنترلر که مشخص میکند ارتباطات از نظر سیاستهای شبکه مجاز است یا خیر مجوز بگیرد. اگر کنترلرجریانی را مجاز اعلام کند، مسیر را برای آن جریان محاسبه کرده و در طول مسیر یک ورودی به آن جریان در تمام سوئیچهای موجود در مسیر اضافه میکند. سوئیچها به آسانی جداول جریان داده را که دادههایشان فقط توسط کنترلر میتواند پر شود را مدیریت میکنند. ارتباطات بین کنترلر و سوئیچها از یک پروتکل و API استاندارد استفاده میکنند. در اکثر اوقات این رابط Openflow میباشد که بعدا در مورد آن توضیح داده میشود.
معماری SDN بسیار انعطافپذیر بوده و میتواند با انواع مختلفی از سوئیچها در لایههای مختلف پروتکلی کار کند. کنترلرهای SDN و سوئیچها را میتوان برای سوئیچهای Ethernet (لایه 2)، Internet Router ها (لایه 3)، Transport Switching (لایه 4) یا Application Layer Switching و Routing پیادهسازی نمود. معماری SDN و ابسته به عملکردهای متداولی که بر روی تجهیزات شبکه وجود دارد، میباشد که بصورت اساسی شامل هدایت بسته ها برمبنای مدل خاصی از تعریف جریان داده است.[8]
جدول 2.2 مدل مرجع OSI و تجهیزات SDN پیاده سازی شده بر روی این مدل
پروتکل های TCP/IP
SDN
مدل مرجع OSI NFS
SMTP
TELNET
TFTP
FTP Application
RIP Persentation OSPF
Session
Dns
Udp
Tcp
Transport Switching , Application Layer Switching & Routing
Transport
ICMP
IP
Internet Router
Network
RARP
ARP Others
BATMAN
PDN
Token Ring
Ethernet
Ethernet Switch
Datalink
Physical
در معماری SDN، سوئیچ کارهای زیر را انجام میدهد:
* سوئیچ اولین بسته جریان داده را بستهبندی کرده و به کنترلر SDN ارسال میکند و کنترلر را قادر میسازد که در مورد این که آیا آن جریان باید به جدول جریان داده سوئیچ اضافه شود یا خیر تصمیمگیری کند.
* سوئیچ بسته وارده را با توجه به جدول جریان داده به پورت مناسب ارسال میکند.
* سوئیچ میتواند بسته را برای جریان خاصی به طور موقت یا دایمی بر اساس آنچه کنترلر مشخص کرده، حذف کند. حذف کردن بسته میتواند برای اهداف امنیتی، مهار حملات DOS یا نیازمندهای مدیریت ترافیک باشد.
به عبارت سادهتر، کنترلر SDN وضعیت Forwarding سوئیچها را در SDN مدیریت میکند. این مدیریت توسط یک API انجام میشود که به کنترلر اجازه میدهد طیف وسیعی از نیازمندیهای کاربر را بدون تغییر جنبههای دیگر شبکه مثل توپولوژی، مدیریت کند. با جدا کردن کنترل و سطوح داده از هم، SDN برنامهها را قادر میسازد که بدون توجه به جزییات چگونگی کار کردن دستگاههای شبکه، با یک دستگاه شبکه بصورت مجزا کار کنند. برنامههای شبکه کنترلر را توسط یک API واحد میبینند بنابراین میتوان به سرعت برنامههای جدید را ایجاد کرد و گسترش داد.
2.9.3.1 دامنههای SDN:
در یک شبکه بزرگ، استقرار یک کنترلر واحد برای مدیریت تمام دستگاههای شبکه کار مناسبی نیست. یک سناریو محتملتر این است که مدیر شبکه، شبکه را همانطور که در شکل 2.9 نشان داده شده است، به تعدادی دامنه SDN که همپوشانی ندارند تقسیم کند. شکل 2.11 SDN Domain [8]
2.9.3.1.2 دلایل استفاه از دامنه های SDN شامل موارد زیر است:
* مقیاسپذیری : تعداد دستگاههایی که یک SDN کنترلر میتواند به طور عملی مدیریت کند محدود است. بنابراین، یک شبکه بزرگ ممکن است نیاز به استقرار چندین SDN کنترلر داشته باشد.
* حریم خصوصی (Privacy)
یک سازمان ممکن است سیاستهای حفظحریمخصوصیمتفاوتی را در دامنه های SDN متفاوت پیادهسازی کند. به عنوان مثال، یک دامنه SDN ممکن است به یک گروهی از کاربران اختصاص داده شود که سیاستهای حفظ حریم خصوصی بسیار خاصی را لازم دارند که در این صورت لازم است یکسری اطلاعات شبکهای در این دامنه (به عنوان مثال، توپولوژی شبکه) برای یک موجودیت خارجی افشا نشود.
* توسعه افزایشی (Incremental Deployment):
شبکه یک سازمان ممکن است شامل زیرساخت های قدیمی و جدید باشد. تقسیم شبکه به چندین دامنهSDN که به طور مجزا مدیریت میشوند، توسعه افزایشی انعطافپذیری را رقم میزند.
وجود چندین]]>