MidoNet و راهکار مجازی سازی شبکه
با فراگیر شدن و واقعی شدن بحث مجازی سازی شبکه و نگرش های جدید SDN رقابت و ارائه راهکار در این عرصه افزایش یافته است. نمی توان از غول بلامنازع بازار SDN یعنی vmware NSX براحتی گذشت ولی راه حل های دیگری در این حوزه نیز توسط رقبای دیگر مطرح بوده که بررسی و حتی عملیاتی کردن آنها خالی از لطف نیست. در این مقاله قصد دارم شما را با معماری راهکار ارائه شده Midokura به نام MidoNet آشنا کنم.
MidoNet یک مجازی سازی شبکه ای اپن سورس محسوب می شود که جداسازی زیرساخت بعنوان سرویس (IaaS) از شبکه های فیزیکی را پوشش می دهد. این راه حل یک جزء نرم افزار پوششی را ارائه می کند که تحت لایه فیزیکی قرار نمی گیرد. این ابزار بصورت کامل توزیع شده است و پلاگین OVS را با پلاگین MidoNet جایگزین کرده است که خود این پلاگین عملیات شبکه ای را بصورت کامل در اپن استک فرا گرفته است. MidoNet بعنوان یک پلاگین یکپارچه به داخل Neutron که یکی از اجزاء اپن استک است متصل می شود و مدلهای Neutron را به ساختمان های MidoNet ترسیم و مپ می نماید.(معماری اپن استک)
تصویر زیر اجزاء وابسته Midonet را نمایش می دهد:
این راهکار اپن سورس شامل دو عنصر اصلی است.
- اولین عنصر NSDB یا Network state database بوده که شامل دو بانک اطلاعاتی اپن سورس می باشد. این بانکهای اطلاعاتی بنام Zookeeper و Cassandra هستند. این دو بانک اطلاعاتی عملیات و نقش های متفاوتی دارند. Zoopkeepr اطلاعات توپولوژی و شبکه مجازی و mapping هاست ها را نگهداری می کند در حالیکه Cassandra چیزهای دیگری شبیه ورودی های NAT و کانکشن های دیگری را برای بکاپ و … ذخیره می کند.
- عنصر دوم، Midonet agent است که در محیط userspace اجرا می شود، و روی یک هایپروایزور compute واقعی و نودهای gateway نصب گردیده است. همانطور که در محیط userspace اجرا شده است، می تواند از طریق Netlink با کرنل لینوکس ارتباط برقرار کند و ماژول کرنلی OVS را استفاده نماید. از اینکار جهت اجرای عملیات فوروارد کردن data plane استفاده می شود. agent فوق الذکر همچنین روی نودهای gateway برای اتصالات خارجی نیز اجرا می شوند. agent روی گت وی و نودهای پردازشی در حقیقت همطراز با یکدیگر هستند. هر دوی آنها Midonet agent و ماژول کرنل OVS را اجرا می کنند.
گت وی ها هاست های فیزیکی هستند که پورتها را در لایه edge روی توپولوژی مجازی Midonet مال خود کرده و از Quagga استفاده می کنند. تفاوت اصلی این است که برای نودهای پردازشی، این پورتها معمولا به ماشین های مجازی متصل می شوند، در حالیکه در گت وی ها این پورتها به کارت شبکه های فیزیکی متصل شده به کلاود مپ شده اند. آنها بطور نمونه با پروتکل BGP جهت اتصال به دامین های مدیریتی متفاوت پیکربندی شده اند.
این اجزاء با یکدیگر یک لایه انتزاعی از شبکه های مبتنی بر نرم افزار Software-based Network را بین هاست های فیزیکی و شبکه های فیزیکی ایجاد می کنند. آنها حرکت از ماشین های آماده مبتنی بر سخت افزار را به کارکردهای شبکه ای تحت نرم افزار ممکن می سازند. Midonet یک راه حل مجازی سازی شبکه توزیع شده است که شکل شبکه های فیزیکی را تغییر میدهد و میتوان انرا در واقع حرکت از شبکه های سخت افزای به نرم افزاری دانست. در راستای شناخت کاملتر این راه حل می توانیم به Midonet بعنوان یک ابزار اپن سورس فقط نرم افزاری اشاره کنیم که سیستم مجازی سازی شبکه را با قابلیت توسعه پذیری بالا و حالت جهندگی بدنبال دارد. با معماری توزیع شده آن تامین کنندگان سرویس در سطح حرفه ای می توانند شبکه های مجازی را ایجاد، اجرا و برپا نموده و کنترل بیشتر، امنیت و انعطاف پذیری کاملی را در سطح شبکه مجازی خود بدست آورند.
همانطور که NSX می تواند شبکه های ایزوله شده مبتنی بر نرم افزار ایجاد نماید، Midonet نیز قادر به پوشاندن زیرساخت شبکه فیزیکی موجود در مد نرم افزاری است. Midonet یک شبکه کاملا مجازی از لایه ۲ تا لایه ۴ را پوشش می دهد. با کمک آن شما قادر به ایجاد و ساخت سوییچ ها، روترها، سرورهای DHCP و NAT , Loadbalancer هستید و مهمتر آنکه می توانید فایروالهای نرم افزاری نیز میان سرویس های شبکه ای تان برپا کنید. قابلیت های برجسته Midonet به شرح ذیل می باشد:
سوییچینگ منطقی:
- سوییچینگ مجازی توزیع شده – لایه۲ بر روی لایه ۳- جدا شده از شبکه های فیزیکی بدون هیچ محدودیتی در قراردادهای vLAN
- به هم متصل شدن شبکه های vLAN با vxLAN (شبکه های فیزیکی و مجازی) از طریق گت وی و روترهای منطقی لایه ۲
- مسیریابی بین شبکه های مجازی بدون استفاده از محتوای نرم افزاری موجود
فایروال منطقی:
- فایروال توزیع شده که بصورت یکپارچه و ادغام شده با کرنل لینوکس عرضه شده است
- وادار کردن و اجرای سیاست های امنیتی برای کارایی بهتر پردازش پکت ها
NAT در حالت stateful و stateless و تغییر آدرسهای IP:
Midonet از یک مدل NAT ایستا جهت شناور کردن آدرسهای IP بهره می گیرد.
- ترافیک را از یک شبکه خارجی به آدرس های IP شناور (متغیر) برای یک روتر موقت می آورد
- عملیات ترجمه آدرسهای شبکه را از آدرسهای IP خارجی به آدرسهای خصوصی و بالعکس انجام می دهد.
لود بالانسر لایه چهار منطقی:
- یک لودبالانسر برای نرم افزارها در لایه نرم افزاری محسوب می شود
- بصورت پویا تغییر مقیاس (scale up/down) را با پردازش همراه می کند
توابع MidoNet API:
توابع RESTful API برای ادغام کردن و یکپارچه سازی با هر نرم افزار مدیریتی کلاود ارائه شده است که از جمله می توان به ادغام شدن این محصول با اپن استک ، vSphere یا سایر پلتفرم های سفارشی شده اشاره کرد.
عالی