فاطمه قرباوی
کارشناس شبکه و مجازی سازی

MTU چیست؟ بررسی مفاهیم Ports و Security در ESXi vSwitch

MTU چیست؟ قابلیت های بیشمار VMware ESXi را نمی توان طی چندین مقاله ارائه داد اما یکی از نکاتی که بسیار مهم این است که یک VMware ESXi Server تا زمانی که نتواند ترافیک ماشین های مجازی خود را جابجا کند ، به هیچ دردی نمی خورد . جهت رفع این مشکل ، VMware به صورت هوشمندانه دو راه حل ارائه داده است : vSphere Standard Switch و vSphere Distributed Switch . اینکه هر کدام از این سوئیچ های مجازی دارای چه عملکردی هستند و با یکدیگر چه تفاوتی دارند را به مرور مورد بررسی قرار می دهم.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
vSwitch

vSwitch Properties

  • Ports

یکی از ویژگیهای هر سوئیچ مجازی ، ویژگی Port می باشد. در واقع Ports به تعداد پورتهای مجازی که در حافظه نگهداری و در اختیار ماشین های مجازی ، VMKernal Ports و Uplick ها ( کارت شبکه های فیزیکی موجود در هاست ) قرار می گیرد . در vSS یا vSphere Standard Switch ، یکی از ایرادها در مورد پورتها این است که در صورت اعمال هرگونه تغییری در تعداد پورتهای سوئیچ مجازی استاندارد ، الزاما هاست باید ریستارت گردد تا تغییرات اعمال شود. این پورتها دقیقا مانند پورتهای یک سوئیچ فیزیکی می باشد . تعداد پورتهایی که هر سوئیچ مجازی به صورت پیش فرض دارد 128 عدد می باشد و این تعداد تا 4096 قابل ارتقا می باشد.

نکته : در بر خی مواقع در Classic vSphere Client تعداد 128 پورت پیش فرض ، 120 در نظر گرفته شده است ،که 8 تای آن کم است !! خوب چه اتفاقی افتاده است ؟؟؟ نگران نباشید ، این یک عملکرد طبیعی است . Hypervisor دوست عزیزمون 8 عدد از این پورتها را رزرو می کند تا در مواقعی که overhead شبکه به دلیل برخی فعالیت ها مانند Network Discovery ،ترافیک Cisco Discovery Protocol یا CDP و Physical Uplink ها ، افزایش پیدا می کند ، از این پورتهای رزرو استفاده کند. اما در نسخه های جدید vsphere web client ، تعداد واقعی پورتها نشان داده می شوند.

(Maximum Transmission Unit (MTU چیست؟

یکی از آیتم هایی که شما می توانید در تنظیمات خود انجام دهید ، آیتم MTU می باشد . MTU ماکسیمم دیتایی است که شما می توانید در Payload هر Frame قرار دهید ( لازم به توضیح و یادآوری است که بسته های دیتا از دو قسمت header و Data تقسیم شده است که در Header اطلاعات مربوط به مبدا و مقصد قرار دارد و قسمت بعدی که دیتاها قرار دارد به Payload معروفند . زمانی که Frame به مقصد رسید ، Header از آن جدا می شود و تنها Payload یا دیتای واقعی را خواهیم داشت ).

به صورت پیش فرض ، مقدار MTU به صورت پیش فرض 1,500 byte می باشد که این میزان استاندارد تعریف شده برای همه device های شبکه می باشد . خوب در وهله اول شما می توانید این اطمینان را داشته باشید که کلیه تجهیزات فیزیکی که جریان داده ها را از سوئیچ های مجازی دریافت و یا به آنها ارسال می کنند ، از 1,500 MTU یا MTU بزرگتر نیز پشتیبانی می کنند که این باعثت جلوگیری از Packet Fragmentation می شود .

MTU

یک آپشن دیگر جهت افزایش سایز فریم های داده نیز وجود دارد که این سایز به jumbo size معروف است . خوب Jumbo Frame ها چیستند ؟ Jumbo Frame ها ، Frame هایی هستند که سایز آنها از 1,500 بیشتر است .در صورتی که در تنظیمات MTU شما 1,501 را قرار دهید ، به طور فنی Jumbo Frame ها را فعال کرده اید .در بیشتر مواقع عبارت Jumbo Frame به Frame هایی تعلق می گیرد که MTU آنها 9000 و یا حتی بیشتر باشد .البته این را هم در نظر داشته باشید که ESXi حداکثر MTUای که پشتیبانی می کند 9,000 می باشد . خوب به صورت خلاصه MTU ، سایز Frame هایی می باشد که قرار است از سوئیچ مجازی شما راهی سوئیچ فیزیکی شود .

  • نکته : در بیشتر مواقع برخی از افراد بر این باورند که با فعال سازی Jumbo Frame ها در تجهیزات فیزیکی و مجازی خود قادر خواهند بود کارایی و یا Performance خود را افزایش دهند . خوب این مساله همیشه هم درست نمی باشد . حتما این را در نظر داشته باشید که تجهیزات فیزیکی که پشت تجهیزات مجازی شما قرار گرفته اند از قابلیت Jumbo Frame پشتیبانی می کنند یا خیر . چرا که افزایش سایز MTU در بسیاری موارد باعث کاهش Performance شده است . پس در هنگام تغییر میزان پیش فرض این قابلیت ، کلیه جوانب را بررسی نمایید .

Security چیست؟

سوئیچ های مجازی ( VSS و VDS ) دارای تنظیمات Security تقریبا یکسانی هستند . در برخی موارد آپشن های Security ممکن است سبب ایجاد برخی ابهامات شود . به صورت کلی در قسمت Security سه آپشن قرار دارد :

  1. Promiscuous Mode
  2. MAC address changes
  3. Forged Transmits
Security Tab

Promiscuous Mode چیست؟

یکی از قابلیتهای سوئیچهای فیزیکی این است که توانایی ارسال ترافیک یه یک مقصد با MAC address مشخصی را داشتند مگر اینکه شما تصمیم می گرفتید که این ترافیک به همه نودهای سوئیچ Broadcast شود . خوب در سوئیچ های مجازی این قابلیت تحت عنوان Promiscuous Mode تعریف شده است . بدین صورت است که زمانی که این حالت در حالت Reject قرار دارد ، ترافیک در حال جریان بنا بر Header های بسته ها به مقصد مورد نظر راهی می شوند که در این حالت Performance و Scalability شبکه افزایش پیدا می کند .

اما در شرایطی شما نیاز دارید که ترافیک در شبکه Broadcast شود و دیگر نودها و یا ماشین های مجازی نیز ترافیک در جریان را دریافت کنند . مثلا زمانی که شما در شبکه خود قصد اعمال مانیتورینگ VM ها را دارید ، در اینجا این حالت باید به صورت Accept قرار گیرد . از اینرو شما قادر خواهید بود ترافیک را در شبکه خود Share کنید . در صورتی که از VLAN بندی استفاده می کنید، با Accept شدن این حالت ، ترافیک سوئیچ مجازی بین VM های موجود در هر VLAN ، Share می شود .

  • نکته : Promiscuous Mode اجازه Share ترافیک بین VLAN های مختلف را نمی دهد . تنها VM های موجود در هر VLAN قادر به دیدن ترافیک Share شده می باشند و ترافیک بین Portgroup ها به اشتراک گذاشته نمی شود . این مفهومی است که در بیشتر مواقع سبب ایجاد ابهام می شود .

MAC Address Changes چیست؟

خوب این آپشن سبب ایجاد ابهام برای بسیاری از افراد شده است ، از اینرو در این مرحله و جهت درک هرچه بیشتر و بهتر دوستان ، به عمق داستان رفته و بررسی می کنیم که سوئیچ ها به چه صورت MAC Address را برای VM ها دنبال می کنند:

  • Initial MAC Address توسط کارت شبکه مجازی که درون VM ها قرار دارد ، ایجاد می شود و یا توسط شخص شما ( به عنوان مدیر شبکه ) در vSphere-Provided Value تغییر داده می شود . این Mac Address شبیه به BIA های کارت شبکه های فیزیکی است . ( physical NIC’s burned-in address )
  • Effective MAC Address توسط سیستم عاملی که بر روی ماشین مجازی نصب می شود، تنظیم می شود . معمولا این سیستم عامل VM ها می باشد که از Initial MAC Address استفاده می کنند ، دقیقا مثل PC شما که به صورت پیش فرض از BIA مربوط به NIC و یا کارت شبکه شما استفاده می کند .
  • Runtime MAC address ، آدرس واقعی و زنده ای می باشد که توسط پورت سوئیچ مجازی دیده می شود.

خوب حال که نگاهی گذرا به رویه Mac Address ها انداختیم به بحث اصلی خود بازمی گردیم . زمانی که شما گزینه Accept را برای آپشن MAC Address Change انتخاب می کنید ، Initial Mac Address با Effective MAC Address فرق می کند ! خوب این جمله یعنی چه ؟ یعنی به سیستم عامل ماشین مجازی ( Guess Operating System ) اجازه تغییر دادن MAC Address داده می شود.

در حالت معمولی ما نمی خواهیم این اتفاق بیفتد ، چرا که یک malicious user به راحتی می تواند با استفاده از تغییر MAC Address های VM های دیگر ، اقدام به جعل هویت و سواستفاده نماید .اما خوب موارد خاص نیز وجود دارد مثل Microsoft Network Load Balancing (NLB) ( یک سرویس Load Balancing مایکروسافت هست که ترافیک شبکه را که توسط IP های مجازی ارسال می شوند را مدیریت می کند . بحث در مورد این سرویس در این مقاله نمی گنجد ) . در حالت کلی نیز به هر حال ممکن است شرایط استثنا نیز وجود داشته باشد .

اگر این گزینه در حالت Reject قرار بگیرد ، سوئیچ مجازی به سیستم عامل های ماشین های مجازی یا همان Guess OS ها اجازه تغییر Effective MAC Address را به چیزی غیر از Initial Mac Address نمی دهد. بدین صورت پورت تا زمانی که Effective Mac Address همانند Initial Mac Address نباشد ، هیچ ترافیکی را دریافت نمی کند .به صورت خلاصه ، این آپشن امنیتی در سوئیچ های مجازی ، ترافیک های ورودی به ماشین های مجازی ( و همین طور VMKernal Ports ) بررسی می کند .

Forged Transmits چیست؟

مشابه آپشن MAC Address Changes Policy ، این Policy نیز با تغییر دادن Mac Address ها در ارتباط است با این تفاوت که این آپشن به ترافیک های انتقالی در ارتباط می باشد. در صورتی که این گزینه در حالت Accept باشد ، ماشین مجازی می تواند هر MAC Addressی را که دلش می خواهد در Source Address مربوط به فریم های لایه 2 قرار دهد و پورتهای سوئیچ مجازی با خوشحالی تمام به آن فریم ها اجازه حرکت به سمت مقصد را می دهد.

در صورتی که این گزینه در حالت Reject باشد ، پورت سوئیچ در ابتدا بررسی می کند که کل ترافیک توسط VM گردآوری شده است یا خیر و آدرس مبدا بسته ها دستکاری شده است یا خیر. در صورتی که آدرس مبدا یا همان Source MAC Address مساوی با Effective MAD Address باشد ، فریم ها مجوز لازم را از پورت خواهند گرفت ، در غیر اینصورت فریم ها drop خواهند شد .

در بسیاری موارد که از Nested Virtualization بهره می گیرید ، در Policy مربوط به Forged Transmit مشکلاتی خواهید داشت . در Nesting شما می توانید ESXi Hypervisor را به عنوان یک Guess OS در VM نصب کنید ، بدین صورت MAC Address های منحصر به فرد بسیاری تولید خواهند شد . در این موارد شما مجبور خواهید بود که آپشن امنیتی Forged Transit را در حالت Accept قرار دهید.در این قسمت به بررسی مفاهیم مشترک سوئیچ های مجازی پرداختم . در مقالات بعدی دیگر مفاهیم مورد بررسی قرار خواهند گرفت. موفق و سربلند باشید


فاطمه قرباوی
فاطمه قرباوی

کارشناس شبکه و مجازی سازی

کارشناس شبکه و مدیریت شبکه های مایکروسافتی ، دارای مدارک MCITP ، CCNA و VCP و علاقمند به مجازی سازی و توسعه شبکه های مجازی مبتنی بر VMware می باشم .

نظرات