
در مقایسه با شبکههای رایج، عملکرد شبکههای SDN، بیشتر شبیه به رایانش ابری یا Cloud Computing میباشد. این به معنای انتزاع قسمت هوشمند شبکه، از تجهیزات سختافزاری ارسال دیتا است. معماری شبکه های SDN از سه لایه تشکیل گردیده است. در لایهی زیرساخت، سوییچهای شبکه، قرار دارند. تجهیزات شبکه در این لایه، تنها، نقش روانهسازی دیتا را دارند. در لایهی میانی، کنترلر(ها) قرار دارند. کنترلر، به عنوان واسطی است که، امکان مانیتورینگ و مدیریت شبکه را برای لایهی اپلیکیشن فراهم میسازد. در لایهی اپلیکیش، اطلاعاتی که توسط لایهی کنترل، جمعآوری شده، بررسی شده و نسبت به آنها تصمیمسازی میشود. همچنین در این لایه برای مدیریت ارسال دادهها، دستوالعملهای لازم، به لایهی کنترل، ارسال میگردد.
بسیاری از شبکههای SDN مبتنی بر، پروتکل openflow میباشند. openflow، پروتکلی است که برای ارتباط لایهی کنترل و لایهی زیرساخت از آن استفاده میگردد. در بررسی معماری شبکه های SDN، ابتدا مروری بر شکلگیری این شبکهها داریم:
مروری بر شکلگیری شبکه های SDN
ایدهی جداسازی قسمت کنترل از قسمت ارسال داده از سال 1995 مطرح گردید. مطالعات، در بارهی روشهای جداسازی واحد کنترل از واحد دیتا در شبکه، که توسط IETF آغاز شده بود، در سال 2004، منتشر شد و ForCES، نامگذاری گردید. در سال 2007، با استفاده از نرمافزارهای Open Source، پروتکل Ethan به منظور انتزاع قسمت کنترل از قسمت ارسال دیتا، توسط دانشگاه استانفورد معرفی گردید. با بهبود نواقص Ethan، پروتکل OpenFlow، در سال 2008، ارائه گردید و شبکههای SDN را وارد مرحلهی جدیدی نمود.
جداسازی قسمت کنترل، از قسمت دیتا دارای چالشهایی میباشد. در شبکههای SDN، دو مسئلهی مهم، یعنی امنیت ارتباط بین کنترلر و سوییچ، و همچنین، وجود استاندارد مشترک بین تمام سوییچها و واحد کنترل مطرح میباشد. پروتکل OpenFlow، با توجه به امنیت ارتباط و استاندارد مشترک تجهیزات شبکه، طراحی شده است. در سال 2011، ONF با حمایت شرکتهای بزرگی، مانند: AT&T، گوگل، Verizon و Deutsche Telekom تاسیس شد. وظیفهیONF، استاندارسازی در شبکهی SDN و توسعهی OpenFlow میباشد.
معماری شبکه های SDN
همانطور که گفته شد، شبکه های SDN از سه لایه تشکیل شدهاند: لایهی زیرساخت، لایهی کنترل و لایهی اپلیکیشن.
لایهی زیرساخت
لایهی زیرساخت، مجموعهای از منابعی است که، کار آنها ارسال ترافیک داده و پردازش آن میباشد. منابع این واحد برای اینکار از سختافزارهای فیزیکی استفاده مینمایند. تجهیزات این لایه باید همگی به پروتکل ارتباطی با کنترلر آگاه باشند. پروتکل رایح برای ارتباط با قسمت کنترل، پروتکل OpenFlow میباشد.
لایهی کنترل
لایهی کنترل، از یک یا بنا به نیاز، از چند کنترلر، تشکیل شده است. کار لایهی کنترل جمعآوری اطلاعات مختلف از سوییچهای شبکه و ارسال آن به قسمت اپلیکیشن برای تصمیم گیری است. همچنین این لایه، دستوالعملهایی که طریق بخش اپلیکیشن دریافت میکند را، به لایهی زیرساخت یا Data Plane ارسال مینماید. ارتباط با لایهی اپلیکیشن از طریق واسط شمالی (API) و ارتباط با لایهی زیرساخت، از طریق واسط جنوبی(OpenFlow) میباشد.
لایهی اپلیکیشن
لایهی اپلیکیشن، معمولا از چندین اپلیکیشن تشکیل شده است. اپلیکیشنها با توجه به اطلاعات دریافتی از لایهکنترلر، نسبت به عملکرد ارتباطی سوییچها تصمیم گیری نموده و دستوالعملهای لازم را به لایهی کنترل ارسال مینماید.
اصول پایهی شبکههای SDN
هدف از طراحی یک شبکهی SDN، شبکههای با قابلیت کنترل تجهیزات و مانیتورینگ شبکه و همچنین توسعهی آن از طریق نرمافزار میباشد. بر طبق نگاه جامع ONF، شبکههای SDN، مبتنی بر چندین اصول پایه هستند. اصول پایهی یک شبکهی SDN، به شرح زیر میباشد:
جداسازی واحد کنترل از واحد ارسال داده
در این اصل، در هر شبکهی SDN، واحد کنترل باید از واحد ارسال داده جدا باشد. در این معماری، کنترلر شبکه، باید بتواند با قسمت ارسال داده، ارتباط برقرار کرده و دستوالعملهای لازم را برای آن ارسال نماید. این ارتباط، از طریق اینترفیسی، به نام واسط جنوبی، صورت میپذیرد. پرتوکلهای ارتباطی باید به اندازهی کافی، حاوی اطلاعات لازم برای هدایت و مدیریت تجهیزات واحد ارسال داده باشد.
کنترل متمرکز
در معماری شبکههای SDN مدیریت متمرکز در شبکههای SDN، یکی از ارکان مهم در طراحی این شبکهها، میباشد. برای بسیاری از شبکههای طراحی شده، تعداد یک کنترلر، میتواند نیازهای آن شبکه را برآورده سازد. اما در شبکههای با مقیاس گسترده هدایت شبکه توسط یک کنترلر میتواند کارایی شبکه را پایین بیاورد. همچنین وجود تنها یک کنترلر، در شبکه، میتواند به مشکل تک نقطهی شکست تبدیل گردد. با از کار افتادن کنترلر، کل مدیریت شبکه از کار خواهد افتاد.
در شبکه های گسترده نیاز به کنترلرهای بیشتر، پیدا خواهیم نمود. در چنین شبکههایی، کنترلرها، به صورت فیزیکی توزیع شدهاند، اما توسط طراحی نرمافزاری، این شبکهها منطقا به صورت متمرکز دیده میشوند. تمام کنترلرها در این شبکه، از طریق ارتباط آنها با یکدیگر، به صورت یک شبکهی واحد دیده میشوند.
انتزاعی کردن شبکه
در معماری شبکههای SDN جدا کردن لایههای شبکه، بر حسب کارکردشان، مدیریت شبکههای SDN، را آسان نموده است. همچنین به علت انتزاعی بودن هر لایه از لایههای دیگر، این نوع شبکهها را توسعهپذیر نموده است.
نحوهی همبندی کنترلرها
در شبکههای گسترده، وجود یک کنترلر، به تنهایی، کارایی لازم را برای هدایت شبکه، نخواهد داشت. در شبکههای گسترده یا SD-WAN، کنترلرها به صورت توزیع شده، راهاندازی میشوند. اما این آرایش به صورت فیزیکی میباشد و منطقا، کنترلرها به صورت متمرکز عمل مینمایند. گویی که کل شبکه توسط یک کنترلر هدایت میگردد.
روش سلسلهمراتبی کنترلرها
در این روش برای همگامسازی کنترلر ها، بهصورت درختی عمل می نماییم. در این روش هر کنترلر برای همگامسازی با کنترلر ردهی بالاتر تعامل دارد. در این روش کنترلر ریشه نقش همگامسازی اصلی را دارا میباشد. این روش از نظر ترافیک بین کنترلرها، مناسبتر است. اما مشکل تک نقطهی شکست یا Single Point of Failure هنوز پابرجاست.
روش Flat یا تخت
در این روش کنترلرها نسبت به هم برتری نداشته و برای همگامسازی با یکدیگر تعامل دارند. در این روش مدیریت همگامسازی کنترلرها با یکدیگر پیچیدهتر میباشد.