در ماشینهای مجازی، برای اهداف مختلفی، از آداپتورهای شبکه مجازی که به NIC نیز معروف هستند استفاده میشود. این آداپتورها، در ماشینهای مجازی همان وظیفهی آداپتورها در یک سرور فیزیکی را دارند. در واقع اتصال بین ماشینهای مجازی و همچنین اتصال ماشینهای مجازی به خارج را انجام میدهند. این آداپتورها انواع مختلف و دستهبندیهای متفاوتی دارند که در این مقاله سعی داریم همهی آنها را صورت کامل، شرح دهیم. با این مطلب از بلاگ کندو همراه باشید.
آشنایی ابتدایی با VMWare ESXi
VMWare ESXi، هایپروایزور نوع ۱ در پلتفرم مجازی سازی VMWare vSphere است. ESXi، یک جز کلیدی برای کنترل ایجاد و اجرای ماشینهای مجازی است. این هایپروایزور، مستقیما روی بخش سخت افزاری سرور اجرا میشود. این ورژن یکی از آخرین ورژنهای هایپروایزورهای VMWare است که مستقل از سیستم عامل، نقش خود را ایفا میکند. وظیفه ESXi، ایجاد ماشین مجازی، تخصیص منابع به آن و کنترل و مدیریت منابع سخت افزاری است. ESXi را میتوان یکی از قویترین نرم افزارهای مجازی سازی دنیا دانست که در بزرگترین دیتاسنترهای جهان استفاده میشود.
برای کار با نرم افزار VMWare، باید دوره vmware را بگذرانید.
وظایف NICها
همانطور که پیش از این گفتیم، اداپتورهای ماشین مجازی، وظایفی مشابه آداپتورهای شبکه در یک سرور فیزیکی را دارند. در ادامه به طور مختصر به برخی از این کاربردها اشاره خواهیم کرد.
- اتصال شبکه
NICها بین ماشینهای مجازی در حال اجرا روی پلتفرم ESXi و سایر دستگاههای موجود در شبکه مثل دیگر ماشینهای مجازی، سرورهای فیزیکی، سیستمهای ذخیره سازی و همچنین شبکههای خارجی مانند LAN یا WAN، اتصال برقرار میکنند.
- دسترسی به شبکههای خارجی
این آداپتورها به ماشینهای مجازی این امکان را میدهند که به شبکههای خارجی مانند اینترنت، شبکههای سازمانی و یا خدمات فضای ذخیره سازی ابری عمومی(public cloud services)، متصل شوند.
- شبکهسازی بین ماشینهای مجازی
Network adapterها، امکان ارتباط بین ماشینهای مجازی را فراهم کرده و به آنها امکان ارسال و دریافت ترافیک شبکه را میدهد. معمولا هر ماشین مجازی، دارای یک یا چند شبکه مجازی است که به سوئیچهای مجازی پیکربندی شده در پلتفرم ESXi، متصل میشوند.
- بخشبندی و جداسازی شبکه
یکی از وظایف مهم آداپتورها، تقسیمبندی و جداسازی شبکه در محیط مجازی است. با استفاده از این سوئیچهای مجازی میتوان برای ایجاد بخشهای شبکه یا VLAN مجزا برای اهداف مختلف، مانند جداسازی محیطهای تولید و توسعه یا جداسازی بارهای کاری حساس برای اهداف امنیتی، پیکربندی کرد.
انواع Network Adapter
برای ماشینهای مجازی مختلف، انواع متفاوتی هم آداپتور وجود دارد که بسته به سیستم و نوع استفاده و حجم کاری، میتوان از انواع مختلفی از آداپتور استفاده کرد. دستهبندیهای مختلفی برای آداپتورهای شبکه وجود دارد. انتخاب صحیح آداپتور با توجه به نیاز، میتواند به بهبود عملکرد کل سیستم منجر شود. در ادامه با برخی از دستهبندیهای مختلف آداپتورها آشنا خواهیم شد و سپس پرکاربردترینها را بیشتر شرح میدهیم.
آداپتورهای Emulated
این نوع آداپتورها، کارتهای رابط فیزیکی شبکه را شبیهسازی کرده و به ماشینهای مجازی ارائه میدهند. از ویژگیهای مهم این نوع، میتوان به سازگاری بالای آنها با طیف گستردهای از هاستها اشاره کرد. بهعنوان مثال، این آداپتورها را میتوان هم در نسخههای قدیمی ویندوز استفاده کرده و همچنین در لینوکس و در سیستمهای دیگر مشابه یونیکس نیز قابل استفاده هستند. این آداپتورها، عملکرد و ثبات خوبی ارائه میدهند اما ممکن است باتوجه به نیاز شما، گزینههای بهتری نیز وجود داشته باشد.
از این نوع Network Adapter، میتوان به موارد زیر اشاره کرد:
- E1000
همانطور که ذکر شد، این آداپتورها، شبیهسازی شده هستند. نوع e1000، نیز شبیهسازی شدهی یک کارت شبکه اترنت، محصول شرکت اینتل، Intel 82545EM Gagabit است. این آداپتور طیف گستردهای از سیستم عاملها، از نسخههای قدیمی ویندوز، لینوکس و… را پشتیبانی میکنند. این نوع نتورک آداپتورها، معمولا زمانی استفاده میشوند که قصد ایجاد سازگاری در سیستم وجود دارد. خصوصا زمانی که سیستم هاست، قدیمی باشد.
- E1000E
نوع دیگری از آداپتورهای Emulated است که نسخه پیشرفته و بهبودیافتهی e1000 است. آداپتورهای e1000e، ویژگیهایی مانند پشتیبانی از Jumbo Frames و تخلیه سختافزار را دارد. معمولا این آداپتور برای ماشینهای مجازی مدرن، خصوصا زمانی که عملکرد شبکه بالاست، پیشنهاد میشود. این نوع Network Adapter نیز شبیهسازی شده آداپتور شبکه اترنت شرکت اینتل 82574 گیگابایتی است.
این آداپتور در ویندوز 8 به صورت پیشفرض قرار گرفته است. البته باید توجه داشت که در لینوکس پشتیبانی نمیشود.
آداپتورهای Para-virtualized
این آداپتورها، به عنوان نیمه مجازی شده نیز شناخته میشوند. این آداپتورهای استفاده و کاربرد زیادی دارد. از این نوع آداپتورها میتوان به VMXNET، VMXNET3 اشاره کرد. این نوع آداپتورها، در مقایسه به نوع شبیهسازی شده، عملکرد و کارایی بهتری ارائه میدهند و از آنها برای ماشینهای مجازی مدرن و بار کاری بالا، استفاده میشود.
- VMXNET
یک آداپتور نیمه مجازی شده است که عملکرد و کارایی بهتری نسبت به آداپتورهای شبیهسازی شده مانند E1000 ارائه میدهد. این آداپتور برای عملکرد صحیح نیاز به نصب vmware روی سیستم عامل مهمان دارد که در واقع این vmware tools شامل درایورها و ابزارهایی است که عملکرد و مدیریت ماشینهای مجازی را بهبود میبخشند. اما باید توجه داشت که این نوع آداپتور، قدیمی است و اکنون کمتر مورد استفاده قرار میگیرد.
- VMXNET3
جدیدترین و پرکابردترین نوع Network Adapter نیمه شبیهسازی شده است که در واقع کارآمدترین نوع است. قبل از آمدن این نسخه، VMXNET2 نیز عرضه شده بود که بهعنوان مثال، عملکرد بالا و مانند پشتیبانی از Jumbo Frames و تخلیه سختافزار را داشت.
اما نسخه VMXNET3، علاوه بر این امکانات ذکر شده، از multiple queues، IPv6 offload نیز پشتیبانی میکند. این نوع آداپتور، بسیار مقیاسپذیر است و همچنین میتوند توان عملیاتی شبکه و نرخ پردازش را بالا ببرد. این ویژگیها آداپتور VMXNET3 را برای حجمهای کاری سخت و برنامههای نیازمند کارایی بالا، مناسب میکنند.
جمعبندی
ماشینهای مجازی، توسط آداپتورهای مختلف، به سایر ماشینها، اترنت، شبکههای دیگر و… متصل میشوند. پیش از این، انواع قدیمیتر آداپتورها، مانند Vlanceها و Flexibleها استفاده میشدند اما اکنون دیگر کارایی ندارند. همانطور که در بخشهای مختلف مقاله اشاره شد، Network Adapterها در دو دستهی کلی شبیهسازی شده و نیمه مجازی شده، دسته بندی میشوند. از آداپتورهای شبیهسازی شده، در حال حاضر E1000E کاربرد بیشتری دارد. اما پرکاربردترین آداپتور، VMXNET3 که از نوع نیمه مجازی است.