شبکه های مجازی محاسبات ابری، VPN ها و شبکه های مجازی را تامین می کنند
یک شبکه کامپیوتری همانطور که معمولا تصور می کنیم شامل کابل های مختلف (اترنت، فیبر نوری، کواکسیال) است که به وسایلی مانند روترها و سوئیچ ها متصل می شوند و بسته های داده را به جایی که باید بروند هدایت می کنند.
ظهور شبکههای Wi-Fi و دادههای سلولی جایگزین برخی از آن کابلها با سیگنالهای بیسیم شده است، اما حتی امواج رادیویی نیز در حوزه فیزیکی قرار دارند و به دکلهای مخابراتی یا نقاط دسترسی Wi-Fi متصل میشوند.
در مدل مرجع شبکه OSI که شامل هفت لایه است، تمام تجهیزات شبکه، پردازشها و ارتباطات در سه لایهی پایینتر قرار میگیرند: لایه ۳ (شبکه)، لایه ۲ (پیوند داده) و لایه ۱ (لایه فیزیکی).
در یک شبکه مجازی، تمام این فعالیتها بهطور کامل در نرمافزار انجام میشود.
شبکههای مجازی ممکن است بهطور کامل درون یک ماشین فیزیکی واحد – مانند یک سرور – وجود داشته باشند. یا ممکن است بهعنوان یک لایه انتزاعی روی یک شبکه فیزیکی اجرا شوند که پیکربندی و توپولوژی آن ممکن است کاملاً متفاوت از شبکه مجازی باشد.
ساختن یک شبکه مجازی یک کار پیچیده است، اما مزایای آن بسیار زیاد است: شبکهها را میتوان بهسادگی با تغییر یک فایل بازپیکربندی کرد، بهجای انجام کارهای فیزیکی طاقتفرسا که ممکن است شامل خزیدن در کانالها باشد.
یک شبکه مجازی چگونه کار می کند
در مدل مرجع شبکه OSI که شامل هفت لایه است، تمام تجهیزات شبکه، پردازشها و ارتباطات در سه لایهی پایینتر قرار میگیرند: لایه ۳ (شبکه)، لایه ۲ (پیوند داده) و لایه ۱ (لایه فیزیکی).
در یک شبکه مجازی، تمام این فعالیتها بهطور کامل در نرمافزار انجام میشود.
شبکههای مجازی ممکن است بهطور کامل درون یک ماشین فیزیکی واحد – مانند یک سرور – وجود داشته باشند. یا ممکن است بهعنوان یک لایه انتزاعی روی یک شبکه فیزیکی اجرا شوند که پیکربندی و توپولوژی آن ممکن است کاملاً متفاوت از شبکه مجازی باشد.
ساختن یک شبکه مجازی یک کار پیچیده است، اما مزایای آن بسیار زیاد است: شبکهها را میتوان بهسادگی با تغییر یک فایل بازپیکربندی کرد، بهجای انجام کارهای فیزیکی طاقتفرسا که ممکن است شامل خزیدن در کانالها باشد.
یک شبکه مجازی چگونه کار می کند؟
برای درک نحوه عملکرد یک شبکه مجازی، بیایید با یک مفهوم مرتبط و کمی آشناتر شروع کنیم: ماشین مجازی (VM). بیشتر ما با ماشینهای مجازی آشنا هستیم که امکان اجرای چندین نمونه از برنامهها را روی یک ماشین فیزیکی فراهم میکنند.
این ماشینهای مجازی واقعاً «نمیدانند» که مجازی هستند؛ تمام فراخوانیهای سیستم و ارتباطات دیگری که معمولاً با سختافزار زیرین دارند، توسط یک لایه نرمافزاری به نام هایپر وایزر (Hypervisor) بازداشت میشود. هایپر وایزر درخواستهای چندین ماشین مجازی که روی همان ماشین اجرا میشوند را مدیریت میکند تا از منابع سختافزاری زیرین به طور بهینه استفاده کند.
یک ماشین مجازی حتی میتواند دستورالعملها را بین پلتفرمهای سختافزاری مختلف ترجمه کند، به طوری که مثلاً یک ماشین مجازی میتواند روی یک ماشین x86 اجرا شود، حتی اگر برای پردازندههای ARM طراحی شده باشد. هایپر وایزر قادر است نتایج را به شکلی بازگرداند که ماشین مجازی انتظار دریافت آنها از سختافزار را داشته باشد.
یک شبکه مجازی بر اساس اصول مشابهی ساخته شده است. نرمافزار بهگونهای پیکربندی میشود که یک شبکه با توپولوژی خاص مورد نظر مدیران خود را شبیهسازی کند. همانطور که در مورد ماشینهای مجازی وجود دارد، یک شبکه مجازی قادر است به عملکرد خود ادامه دهد زیرا سیستمعاملها و برنامههایی که با آن ارتباط برقرار میکنند، نمیدانند (و اهمیتی نمیدهند) که آیا با یک سوئیچ واقعی یا یک سوئیچ مجازی (vSwitch) در حال ارتباط هستند.
آنها تنها بستههایی را که با اطلاعات خاص مسیریابی شبکه در هدرهای خود علامتگذاری شدهاند ارسال میکنند و انتظار دارند بستههای مشابهی را در پاسخ دریافت کنند. از آنجایی که این نوع ارتباط استاندارد شده است، ساختن نرمافزاری که بتواند رفتار یک کارت شبکه فیزیکی، سوئیچ، یا روتر را شبیهسازی کند، آسان است. واقعاً ابزارهایی مانند Open vSwitch میتوانند هم روی هایپر وایزر اجرا شوند و هم بهعنوان لایه کنترل برای سختافزار شبکه فیزیکی عمل کنند.
پس از دریافت این بستهها توسط هایپر وایزر، باید تصمیم بگیرد که چگونه آنها را به مقصدشان هدایت کند، مشابه با عملکرد سختافزار شبکه فیزیکی. تفاوت این است که هایپر وایزر باید اطلاعات مربوط به شبکه مجازی تعریفشده توسط نرمافزار—که کامپیوتر ما “فکر میکند” به آن متصل است—را به اطلاعات مربوط به محیط فیزیکی واقعی زیرین ترجمه کند.
یک کامپیوتر ممکن است فکر کند که در حال ارسال یک بسته به کامپیوتر دیگری در همان شبکه محلی است، اما در واقع ممکن است دو ماشین در کشورهای مختلف باشند—یا ممکن است دو ماشین مجازی باشند که روی یک سرور واحد اجرا میشوند.
هایپر وایزر معمولاً این مشکل را با قرار دادن بسته اصلی درون بستهای دیگر که دارای اطلاعات مسیریابی متفاوت در هدر خود است، حل میکند و سپس آن بسته را به زیرساخت شبکه فیزیکی منتقل میکند. هنگامی که آن بسته به مقصد خود میرسد، بسته خارجی از آن جدا میشود؛ سیستمی که بسته را دریافت میکند، آن را بهعنوان بستهای که از طریق شبکه مجازی ارسال شده است، نه از طریق شبکه فیزیکی واقعی که از آن عبور کرده است، درک میکند.
بدیهی است که پیادهسازی یک شبکه مجازی نیاز به کار و خلاقیت زیادی دارد. اما چرا باید این زحمت را کشید؟ توصیف انواع مختلف شبکههای مجازی درک بهتری از سناریوهای واقعی که در آنها مفید هستند، ارائه خواهد داد.
انواع شبکه های مجازی
یک تفاوت مهم میان شبکههای مجازی داخلی و خارجی وجود دارد. شبکه مجازی داخلی برای اتصال چندین ماشین مجازی که بر روی یک سرور اجرا میشوند، استفاده میشود. در این حالت، هایپر وایزر نیازی به محصور کردن بستههای شبکه و ارسال آنها از طریق یک شبکه واقعی ندارد؛ بلکه فقط مشخص میکند که بستهها برای کدام ماشین مجازی ارسال شدهاند و آنها را تحویل میدهد.
استفاده از پروتکلهایی که برای ارتباطات بین کامپیوترها توسعه یافتهاند، برای ارتباط دو فرآیند که بر روی همان سختافزار فیزیکی در حال اجرا هستند، ممکن است عجیب به نظر برسد. اما به یاد داشته باشید که یکی از مزایای مجازیسازی این است که میتوانید چندین سیستمعامل آماده و مستقل را بهعنوان فرآیندهای کاملاً جداگانه و مستقل بر روی همان سرور اجرا کنید.
استفاده از بستههای شبکه و پروتکلهای استاندارد برای این منظور، همراه با زیرساختهای امنیتی مربوطه، به این معنی است که این ماشینهای مجازی میتوانند بدون نیاز به تغییرات اجرا و با یکدیگر ارتباط برقرار کنند.
از سوی دیگر، شبکههای مجازی خارجی شامل کامپیوترهای فیزیکی جداگانه (یا ترکیبی از ماشینهای مجازی و ماشینهای فیزیکی) هستند. در این سناریو، ماشینها توسط تجهیزات شبکه فیزیکی سنتی (از جمله اتصالات از طریق اینترنت باز) متصل میشوند، اما مدیر شبکه یک توپولوژی شبکه مجازی ایجاد میکند که با توپولوژی فیزیکی زیرین متفاوت است.
سه کلاس شبکه مجازی وجود دارد که می تواند داخلی یا خارجی باشد:
شبکه خصوصی مجازی (VPN) ساده ترین شکل شبکه مجازی است. متداول ترین سناریو شامل اتصال یک کامپیوتر منفرد از طریق اینترنت باز به یک شبکه شرکتی محلی است. از منظر آن رایانه و سایر رایانههایی که با آنها تعامل دارد، پس از ایجاد VPN، رایانه بخشی از شبکه محلی است، حتی اگر از راه دور باشد.
یک شبکه محلی مجازی (VLAN) پیچیده تر است: از کل شبکه محلی تشکیل شده است که به صورت مجازی تعریف شده است. یک VLAN را می توان با تقسیم یک LAN فیزیکی به چندین VLAN یا ترکیب شبکه های محلی مجزای فیزیکی در یک VLAN ایجاد کرد.
یک شبکه محلی توسعهپذیر مجازی (VXLAN) یک نسخه پیشرفته از یک VLAN است که به شبکههای محلی بزرگ اجازه میدهد تا به VLANهای مجزای بیشتری تقسیم شوند و همچنین انتقال ماشینهای مجازی بدون وقفه در سرویسها را آسانتر میکند، که هر دو برای ابر کلیدی هستند.
مزایای شبکه های مجازی
شبکهسازی مجازی یک نیاز مطلق است زمانی که چندین ماشین مجازی بر روی همان سختافزار در حال اجرا باشند—که در رایانش ابری یک سناریوی رایج است. ایجاد VLANها و VXLANها بر روی شبکههای فیزیکی موجود به مدیران شبکه این امکان را میدهد که شبکهها را به سرعت بهگونهای که نیازهایشان را برآورده کنند، بازساخت کنند—و اغلب، در دوران زیرساخت بهعنوان کد، بهطور خودکار. این کار بهطور دستی و با بازسازی شبکههای فیزیکی ممکن است دشوار یا حتی غیرممکن باشد.
مزایای شبکه مجازی عبارتند از:
کاهش هزینه و نگهداری مرتبط با سخت افزار شبکه فیزیکی.
ساده کردن مدیریت شبکه با متمرکز کردن و خودکار کردن کنترل.
ارائه گزینه های پیکربندی شبکه انعطاف پذیرتر و دقیق تر.
همه این مزایا به افزایش بهرهوری فناوری اطلاعات و کاهش هزینههای اداری کمک میکنند، که دلیل بزرگی برای ماندن شبکههای مجازی است.