رایانش ابری، مجازیسازی و SDN در سیسکو – روز 3
Cloud, Virtualization, and SDN
رایانش ابری و مجازیسازی از خدمات مهمی هستند که شبکهها به کاربران ارائه میدهند. شبکههای سازمانی میتوانند از راهکارهای مختلف ابری برای افزایش بهرهوری و کاهش هزینهها استفاده کنند. همچین برنامهپذیری شبکه با استفاده از SDN به بخش مهمی از شبکههای سازمانی تبدیل شده است، زیرا مدیران شبکه میتوانند هزاران دستگاه شبکهای را بهصورت سریع و کارآمد مدیریت کنند. امروز، به بررسی تکنولوژیهای رایانش ابری، مجازیسازی و SDN خواهیم پرداخت.
رایانش ابری (Cloud Computing)
رایانش ابری شامل تعداد زیادی کامپیوتر متصل از طریق شبکه است که میتوانند در هر مکانی مستقر باشند.
مزایای رایانش ابری شامل موارد زیر است:
- دسترسی به دادههای سازمانی از هر مکان و در هر زمان
- بهینهسازی عملیات IT با ارائه خدمات موردنیاز بهصورت انتخابی
- کاهش نیاز به حضور تیم IT در محل برای نگهداری، تعمیر و مدیریت تجهیزات
- کاهش هزینههای سختافزار، انرژی، فضا و نیروی انسانی موردنیاز
- پاسخ سریع به افزایش حجم دادهها و نیازهای ذخیرهسازی
ارائهدهندگان خدمات ابری، وابستگی زیادی به مجازیسازی برای ارائه راهکارهای خود دارند.
مجازیسازی سرور (Server Virtualization)
در مدل سنتی، سازمانها چندین سرور سختافزاری داشتند که مدیر سیستم باید چندین اپلیکیشن شبکهای مانند ایمیل سرور یا فایل سرور را روی آنها نصب میکرد.
سرور اختصاصی با یک سیستمعامل
هر سرور دارای CPU، حافظه (RAM)، کارت شبکه (NIC) و فضای دیسک مجزا بود. این مدل با چند چالش روبهرو بود:
- در صورت خرابی یک قطعه، سرویس تا زمان تعمیر یا تعویض در دسترس نخواهد بود.
- برخی از سرورها ممکن است برای مدت طولانی بیکار بمانند و فقط در مواقع خاص استفاده شوند.
- اشغال فضای زیاد و مصرف بیش از حد انرژی
مجازیسازی سرور، از ظرفیتهای بلااستفاده بهرهبرداری کرده و تعداد سرورهای فیزیکی موردنیاز را کاهش میدهد. این فناوری، سیستمعامل (OS) را از سختافزار سرور جدا میکند و امکان اجرای چندین سیستمعامل روی یک سرور سختافزاری را فراهم میکند. هر نمونه از یک سیستمعامل، یک ماشین مجازی (VM) نامیده میشود. سرورهایی که دارای چندین VM هستند، از Hypervisor برای مدیریت منابع فیزیکی استفاده میکنند.
مدیریت چندین VM توسط Hypervisor
Hypervisor بین ماشینهای مجازی و سختافزار قرار میگیرد و مدیریت منابع را انجام میدهد.
مجازیسازی شبکه با Virtual Switch
- در مراکز داده (Data Centers)، چندین سرور در یک رک (Rack) قرار دارند.
- NICهای فیزیکی در این سرورها، به سوئیچهای ToR (Top of Rack) متصل میشوند.
- VMها به کارتهای شبکه مجازی (vNIC) متصل شدهاند.
- سوئیچ مجازی (Virtual Switch) بین VMها و شبکه فیزیکی ارتباط برقرار میکند.
- سرورها از Trunk Links برای اتصال به سوئیچهای فیزیکی استفاده میکنند.
توپولوژی سنتی مرکز داده
در مراکز داده سنتی، سرورها در رکهای مجزا قرار گرفته و توسط سوئیچهای ردیفی (End of Row – EoR) مدیریت میشوند.
مراکز داده مدرن به سمت استفاده از مجازیسازی شبکه و رایانش ابری حرکت کردهاند، که باعث افزایش مقیاسپذیری و بهرهوری میشود.
خدمات رایانش ابری (Cloud Computing Services)
برای درک ارزش رایانش ابری، توجه به مدیریت ماشینهای مجازی (VMs) در یک مرکز داده سنتی اهمیت دارد.
روند کاری بهصورت زیر است:
- مرحله 1: مشتری یک ماشین مجازی (VM) یا مجموعهای از VMها را درخواست میکند.
- مرحله 2: مهندس مرکز داده، نرمافزار مجازیسازی را پیکربندی میکند.
- مرحله 3: نرمافزار مجازیسازی، ماشینهای مجازی را ایجاد میکند.
ویژگیهای سرویسهای ابری بر اساس استاندارد NIST
اگرچه این فرآیند کاربردی است، اما ویژگیهای اصلی سرویس رایانش ابری را طبق تعریف مؤسسه ملی استاندارد و فناوری ایالات متحده (NIST) ندارد:
- On-demand self-service (سرویس سلفسرویس بر اساس درخواست):
کاربر میتواند بدون نیاز به تعامل انسانی، سرویس را سفارش داده، تغییر داده یا مدیریت کند. - Broad network access (دسترسی گسترده به شبکه):
سرویس را میتوان از طریق دستگاههای مختلف در هر شبکهای مورد استفاده قرار داد. - Resource pooling (اشتراکگذاری منابع):
ارائهدهنده ابر منابع را در یک مخزن پویا تجمیع کرده و بر اساس نیاز به کاربران مختلف تخصیص میدهد.
معمولاً کاربر از محل دقیق منابع فیزیکی آگاهی ندارد. - Rapid elasticity (مقیاسپذیری سریع):
منابع به نظر نامحدود میرسند و میتوانند بر اساس نیاز کاربر گسترش یا کاهش یابند. - Measured service (سرویس اندازهگیریشده):
ارائهدهنده ابر مصرف منابع را اندازهگیری کرده و گزارش آن را به کاربر ارسال میکند تا امکان شفافیت و مدیریت هزینهها فراهم شود.
مدلهای سرویس در رایانش ابری
ارائهدهندگان خدمات ابری، مدلهای مختلفی برای تأمین نیازهای کاربران ارائه میدهند، از جمله:
- (SaaS) Software as a Service – نرمافزار به عنوان سرویس:
ارائهدهنده ابر دسترسی به نرمافزارهایی که از طریق اینترنت ارائه میشوند را بر عهده دارد (مانند ایمیل، ارتباطات و Office 365).
کاربران فقط نیاز به ارائه دادههای خود دارند. - (PaaS) Platform as a Service – پلتفرم به عنوان سرویس:
ارائهدهنده ابر دسترسی به ابزارهای توسعه و زیرساخت لازم برای اجرای اپلیکیشنها را فراهم میکند.
کاربران میتوانند روی سختافزار مجازیشده، اپلیکیشنهای خود را توسعه دهند. - (IaaS) Infrastructure as a Service – زیرساخت به عنوان سرویس:
ارائهدهنده ابر دسترسی به تجهیزات شبکه، سرویسهای مجازیسازی و زیرساخت شبکه را فراهم میکند.
مدلهای مختلف رایانش ابری
چهار مدل اصلی ابر وجود دارد:
- (Public Cloud) ابر عمومی:
برنامهها و خدمات مبتنی بر ابر در محیط عمومی ارائه شده و در دسترس کاربران عمومی قرار میگیرند.
ابر عمومی از اینترنت برای ارائه خدمات استفاده میکند. - (Private Cloud) ابر خصوصی:
برنامهها و خدمات مبتنی بر ابر در محیط خصوصی ارائه شده و برای یک سازمان خاص یا نهاد مشخص (مانند دولت) طراحی شدهاند.
ابر خصوصی از شبکه داخلی سازمان استفاده میکند. - (Hybrid Cloud) ابر ترکیبی:
ترکیبی از دو یا چند مدل ابر (مثلاً ابر خصوصی و ابر عمومی) است.
هر بخش بهعنوان یک سیستم مجزا عمل میکند، اما ارتباط بین آنها با یک معماری یکپارچه برقرار میشود. - (Community Cloud) ابر جامعهمحور:
ابر جامعهمحور بهطور اختصاصی برای یک جامعه خاص از کاربران طراحی میشود.
تفاوت اصلی میان ابرهای عمومی و جامعهمحور، در سفارشیسازی خدمات برای نیازهای آن جامعه است.
زیرساخت شبکه مجازی (Virtual Network Infrastructure)
زیرساخت شبکه مجازی شامل مجموعهای از توابع شبکه مجازی (VNFs) است که شامل موارد زیر میشود:
- سوئیچهای مجازی (Virtual Switches)
- توزیعکنندههای بار سرور مجازی (SLB – Server Load Balancers)
- روترهای مجازی (Virtual Routers)
- فایروالهای مجازی (Virtual Firewalls)
شبکه مجازی پیادهسازیشده توسط مشتری یک ارائهدهنده ابر
ارائهدهنده خدمات ابری میتواند یک راهکار IaaS شامل یک SLB مجازی را به مشتریان (Tenant) ارائه دهد.
مشتری میتواند توابع شبکه مجازی (VNFs) را نصب کند، مانند:
- نسخه مجازی Cisco Adaptive Security Appliance (ASAv) بهعنوان فایروال مجازی
- نسخه مجازی Cisco Cloud Services Router (CSR) بهعنوان روتر مجازی
این توابع به مدیریت ترافیک شبکه برای مشتری (Tenant) کمک میکنند.
شبکهسازی مبتنی بر نرمافزار (Software-Defined Networking – SDN)
قابلیت برنامهنویسی شبکه به گرایش فزایندهای در جهت شبکهسازی مبتنی بر نرمافزار (SDN) اشاره دارد. در هستهی خود، SDN، سطوح داده (Data Plane)، کنترل (Control Plane) و مدیریت (Management Plane) را از دستگاه فیزیکی جدا کرده، آنها را مجازیسازی میکند و عملکردهای شبکه را در نرمافزار تعریف مینماید. این معماری، امکان مدیریت کارآمدتر و مؤثرتر شبکه را از طریق کنترل برنامهنویسی فراهم میکند.
سطوح داده، کنترل و مدیریت (Data, Control, and Management Planes)
یک دستگاه شبکهی سنتی شامل دو سطح است. سطح داده مسئولیت ارسال بستههای داده را با بیشترین سرعت ممکن بر عهده دارد. برای انجام این کار، از جداولی که در سطح کنترل ایجاد شدهاند استفاده میکند. اقدامات انجامشده توسط سطح داده شامل موارد زیر است:
- بازپوشانی/پوششزدایی (De-encapsulation/Encapsulation) در لایه 2 و 3
- افزودن یا حذف یک هدر 802.1Q برای Trunking
- جستجوی آدرس MAC
- جستجوی مسیرهای مسیریابی IP
- رمزگذاری داده و افزودن یک هدر IP جدید (مانند VPNها)
- تغییر آدرس IP مبدا یا مقصد (مانند NAT)
- ارسال پیام بر اساس یک فیلتر (مانند ACL یا امنیت پورت)
سطح کنترل تمام محاسبات مربوط به ایجاد جداولی که سطح داده از آنها استفاده میکند را انجام داده و پیامهای کنترلی بین دستگاههای شبکه را مدیریت میکند. شکل زیر نمونهای از عملکرد OSPF در سطح کنترل را نشان میدهد، در حالی که سطح داده مسئول ارسال بستهها بر اساس بهترین مسیر است.
پروتکلهای رایج سطح کنترل شامل موارد زیر هستند:
- پروتکلهای مسیریابی (OSPF, EIGRP, RIP, BGP)
- ARP در IPv4
- NDP در IPv6
- یادگیری آدرس MAC در سوئیچها
- STP
سطح مدیریت (Management Plane) مسئولیت تمامی عملکردهایی را دارد که مستقیماً مربوط به کنترل سطح داده نیستند. پروتکلهای مدیریتی، همانند موارد نمایشدادهشده در شکل زیر، نمونههایی از عملکرد سطح مدیریت هستند.
سطح مدیریت شامل پروتکلهایی مانند Telnet، SSH، SNMP و Syslog است. این سطح بر ارتباطات مدیریتی بین تجهیزات شبکه نظارت داشته و با کنترل سطح داده و سطح کنترل تعامل دارد.
کنترلکنندهها (Controllers)
بهطور سنتی، سطح کنترل بخشی از سیستمعامل دستگاه بوده و در تمام تجهیزات شبکه توزیع شده است. این بدان معناست که هر دستگاه مقداری از منابع خود را برای محاسبه و نگهداری ساختارهای دادهای لایه 2 و 3 (مانند جداول ARP، جداول مسیریابی و غیره) صرف میکند. از دید کلی، سطح کنترل شبکه بین تمام تجهیزات شبکه توزیع شده است.
در SDN، عملکردهای سطح کنترل میتوانند بهطور کامل از دستگاههای فیزیکی حذفشده و در یک برنامهی متمرکز که کنترلکننده (Controller) نامیده میشود، قرار گیرند. این امر باعث آزاد شدن منابع در تجهیزات شبکه و تمرکز آنها بر وظایف سطح داده میشود.
کنترلکننده در بالای نمودار توپولوژی شبکه قرار دارد و ارتباطات آن با دستگاههای شبکه تحت عنوان رابط سمت جنوب (Southbound Interface – SBI) شناخته میشود.
همچنین، یک رابط سمت شمال (Northbound Interface – NBI) میان کنترلکنندهی SDN و برنامههایی که بر روی آن اجرا میشوند، وجود دارد. این برنامهها، قابلیت برنامهنویسی شبکه را امکانپذیر میکنند.
نمونههای SDN باز و OpenFlow
بنیاد شبکهبندی باز (Open Networking Foundation – ONF) مدل SDN خود را با استفاده از SBI به نام OpenFlow ارائه میدهد. OpenFlow یک پروتکل است که بین کنترلکننده و دستگاههای شبکه برای مدیریت جریان ترافیک عمل میکند. کنترلکنندهی ONF، که OpenDaylight نام دارد، نتیجهی همکاری چندین فروشندهی بزرگ از جمله Cisco است.
شکل زیر یک کنترلکنندهی OpenDaylight SDN را همراه با نمونههایی از NBI و SBI و واسطهای برنامهنویسی کاربردی (APIها) نشان میدهد.
علاوه بر OpenFlow، کنترلکننده دارای SBIهای دیگری برای فعالیتهایی مانند پیکربندی دستگاههای شبکه (NetConf)، مدیریت مسیریابی (BGP-LS و PCEP) و سوییچ ترافیک بین ماشینهای مجازی (OVSDB) است.
NBIها معمولاً شامل Java API برای برنامههای کاربردی و RESTful API هستند. REST (Representational State Transfer) از پیامهای HTTP برای تعامل با برنامههای کاربردی اجراشده روی کنترلکننده استفاده میکند.
تعریف و عملکرد پروتکلهای SBI و NBI فراتر از این مبحث است. تنها نکتهی مهم این است که ONF بهطور مستمر در حال تحقیق برای بهبود این پروتکلها جهت پیادهسازی در پروژهی OpenDaylight است.
نسخهی تجاری کنترلکنندهی OpenDaylight در Cisco Open SDN Controller (OSC) ارائه شده است. OSC در تعداد محدودی از روترها و سوییچهای Cisco موجود است.
زیرساخت مبتنی بر برنامهی سیسکو (Cisco Application Centric Infrastructure – ACI)
راهکار SDN داخلی Cisco برای مراکز داده، Application Centric Infrastructure (ACI) است. ACI بر مفهوم گروههای پایانی (Endpoint Groups – EPG) و سیاستها (Policies) تمرکز دارد. یک EPG مجموعهای از ماشینهای مجازی مشابه است، مانند مجموعهای از سوییچهای مجازی که برای یکی از مستأجران مرکز داده استفاده میشوند. سیاستها تعیین میکنند که کدام گروههای پایانی میتوانند با یکدیگر ارتباط داشته باشند.
کنترلکنندهی سیاست زیرساختی ACI یا Cisco Application Policy Infrastructure Controller (APIC) از توپولوژی پایانی (Endpoint Topology) و سیاستها (Policies) برای هدایت ترافیک شبکه به مقصد موردنظر استفاده میکند و تعیین میکند که چگونه میتوان بهسادگی تغییرات ماشینهای مجازی را در شبکه اعمال کرد.
ACI از یک سطح کنترل نیمهمتمرکز، APIهای RESTful و بومی و OpFlex بهعنوان SBI استفاده میکند. این موارد در شکل زیر نمایش داده شدهاند.
OpFlex راهکار Cisco برای ارتباط SBI با تجهیزات شبکه است. برخلاف OpenFlow که کنترل شبکه را با اعمال دستورات از کنترلکنندهی SDN متمرکز میکند، OpFlex به سیاستها اجازه میدهد تا بهطور توزیعشده روی کنترلکنندههای شبکه اجرا شوند.
معماری Spine و Leaf
Cisco ACI از یک معماری Spine و Leaf استفاده میکند. در این طراحی، شبکه فیزیکی دارای تعدادی سوییچ Spine و تعدادی سوییچ Leaf است، همانطور که در شکل زیر نشان داده شده است. این شکل اتصالات بین سوییچها را نمایش میدهد که میتوانند بهصورت اتصالات تکی یا لینکهای موازی متعدد باشند.
اتصالات بین سوییچهای Spine و Leaf طبق دستورالعملهای طراحی زیر انجام میشود:
- هر سوییچ Leaf باید به تمام سوییچهای Spine متصل باشد.
- هر سوییچ Spine باید به تمام سوییچهای Leaf متصل باشد.
- سوییچهای Leaf نباید به یکدیگر متصل شوند.
- سوییچهای Spine نباید به یکدیگر متصل شوند.
- نقاط انتهایی (Endpoints) فقط به سوییچهای Leaf متصل میشوند.
ماژول سازمانی Cisco APIC (APIC-EM)
APIC-EM راهکار SDN شرکت Cisco برای سازمانها است. این راهکار از کنترلکننده (Controller) برای مدیریت دستگاههای شبکهی موجود استفاده میکند و همچنین از نسلهای جدید روترها و سوییچهای Cisco با استفاده از SBIهایی که برای مدیران شبکه آشنا هستند، پشتیبانی میکند. برخی از این SBIها شامل دسترسی از راه دور به CLI (Telnet و SSH) و پشتیبانی از SNMP هستند.
Cisco همچنین مجموعهای از برنامههای کاربردی (Applications) را که روی کنترلکننده اجرا میشوند، ارائه میدهد. برخی از این برنامهها اطلاعاتی را از کنترلکننده دریافت میکنند و برخی دیگر عملیات دستگاههای شبکه را کنترل میکنند. استفاده از یک RESTful Northbound API، جمعآوری اطلاعات از کل شبکه را تسهیل میکند.
برای حفظ زیرساخت شبکهای موجود شامل سوییچها و روترها، سطوح کنترل (Control Plane) و داده (Data Plane) بدون تغییر باقی میمانند.
شکل بالا یک نمای کلی از معماری APIC-EM را نمایش میدهد که شامل برخی از برنامههای APIC-EM، REST API و لیستی از SBIها است.
مقایسه ویژگیهای سه کنترلکننده SDN
ویژگی | OpenDaylight, Cisco OSC | APIC | APIC-EM |
---|---|---|---|
تغییر نحوه عملکرد Control Plane در مقایسه با شبکه سنتی | بله | بله | خیر |
ایجاد یک نقطه مرکزی که در آن افراد و فرآیندهای خودکار شبکه را کنترل میکنند | بله | بله | بله |
میزان تمرکز معماری روی Control Plane | عمدتاً متمرکز | تا حدی متمرکز | اصلاً متمرکز نیست |
SBIهای مورد استفاده | OpenFlow | OpFlex | CLI، SNMP |
سازمان اصلی توسعهدهنده/مالک | ONF | Cisco | Cisco |
این جدول مقایسهای بین سه کنترلکننده SDN را ارائه میدهد، مشخص میکند که چگونه هر یک سطح کنترل (Control Plane) را مدیریت میکنند و از کدام SBIها استفاده میکنند.