آموزش سویچ مجازی در Hyper-V

آموزش سویچ مجازی در Hyper-V را از صفر تا صد بررسی می‌کنیم.

ما برای اینکه صلاحیت درست کردن یک VM جدید را پیدا کنیم باید دوتا Concept را یاد بگیریم تا بتوانیم VM درست کنیم:

  • VNetworking

  • VStorage

 Vnetworking

این مبحث جزء مهمترین مباحث Virtualization است. ما در دنیای فیزیکی برای اینکه کامپیوترها را باهم شبکه کنیم، باید به سوییچینگ فیزیکی در لایه Access وصل شویم. حالا بحث اینجاست که ما یک Virtual Machine داریم و این VM برای اینکه بتواند ارتباط Network ای داشته باشد (یا با دیگر VM ها یا با کامپیوترهای فیزیکی داخل شبکه) باید به سوییچ وصل شود. سوال اینجاست که VM را به چه سوییچی باید وصل کنیم؟ VM را به سوییچ فیزیکی که نمیتوانیم وصل کنیم. اینجاست که بحث Vnetworking به وجود می آید.

در V-Networking  دو مبحث داریم:

1

V-NIC کارت شبکه های مجازی ای است که روی VM هاست. هر VM میتواند چند  کارت شبکه مجازی داشته باشد. به کارت شبکه های مجازی ای که روی هر VM وجود دارد اصطلاحا V NIC گفته میشود.

V-Swich سوییچ های مجازی ای هستند که V NIC ها به آن ها متصل میشوند.

 انواع سوییچ های مجازی در Hyper-V

در آموزش سویچ مجازی در Hyper-V سه مدل سوییچ پیش فرض که داریم را بررسی می‌کنیم:

  • Private Switch
  • Internal Switch
  • External Switch

 

Private Switch

تمامی VM هایی که به یک Private switch وصل هستند فقط با هم میتوانند ارتباط Network ای داشته باشند ، نه با دنیای فیزیکی LAN ما میتوانند ارتباط برقرار کنند و نه با خود Host و نه با دیگر VM هایی که روی این Host هستند. Private switch در محیط آموزشی و آزمایشگاهی استفاده میشود.

Internal Switch

تمامی VM هایی که به یک Internal Switch وصل اند میتوانند با همدیگر و با Host ارتباط Network ای داشته باشند. یعنی تفاوت آن با Private فقط در همین ارتباط به Host است و هیچ تفاوت دیگری با همدیگر ندارند. Internal Switch به چه کاری می آید؟ این مورد هم خیلی کاربردی ندارد ولی باز در سناریوهای تست و پایلوت به کار می آید. برای مثال همه ی VM ها به Host وصل میشوند و از این طریق مانند ICS اینترنت میگیرند.

 External Switch

اصلی ترین سوییچی که  اصولا با آن کار میکنیم External Switch است. تمامی VM هایی که به یک External Switch وصل اند میتوانند با همدیگر و با دنیای فیزیکی Network ما ارتباط Network ای داشته باشند. شکل آن به صورت زیر است:

2

مجموعه VM های ما در شکل بالا قرار است با دنیای بیرون در ارتباط باشند. برای اینکه ارتباطشان با دنیای فیزیکی را برقرار کنیم یک V-switch از جنس External ایجاد میکنیم و تمامی V-NIC های این VM ها را به V-switch وصل میکنیم. حال باید از طریق این V-switch بتوانیم با دنیای بیرون ارتباط برقرار کنیم. برای اینکار باید v-swich را به سوییچ فیزیکی در سمت راست شکل وصل میکردیم. اگر این یک سوییچ فیزیکی بود باید با کابل این کار را انجام میدادیم. اما side سمت چپ ما سوییچ مجازی است.

سوییچ External به واسطه ی ماهیتش که میخواهد با دنیای بیرون ارتباط برقرار کند نیاز به یک Uplink فیزیکی دارد و  Uplink فیزیکی چیزی نیست جز یک NIC فیزیکی. یک کارت شبکه ی فیزیکی روی Host نقش یکی از پورت های سوییچ External را بازی میکند، پورتی که نقش Uplink هم دارد. وقتی  External Switch را ایجاد میکنید از شما میپرسد میخواهید کدام کارت شبکه فیزیکی ت را  به عنوان Uplink به من بدهید. سپس به وسیله ی کابل به هم متصل میکنیم و  ارتباط برقرار میگردد. در نتیجه سوییچ External نیاز به یک Uplink دارد و آن Uplink هم یک کارت شبکه فیزیکی روی Host است.

به شکل زیر دقت کنید:

3

حالا تنها راهی که وجود دارد تا بین VM های بالایی و پایینی ارتباط برقرار شود، یعنی VM1 بتواند VM2 را Ping کند این است که سوییچ ها باید هر دو External باشند و به یک سوییچ فیزیکی وصل شوند . به این ترتیب بین آنها ارتباط برقرار میشود.
یک Hyper-V داریم که روی آن فارغ از اینکه میتواند Private,Internal,External باشد دو سوییچ تعریف کردیم که مطابق شکل VM ها را به آن ها وصل کردیم. VM های بالایی با VM های پایینی ارتباط Network ای نمیتوانند داشته باشند. یعنی میخواهیم به اینجا برسیم که هیچ گونه ارتباط Networking ای بین سوییچ های مجازی در Hyper-V و حتی VMware وجود ندارد.

گفته بودیم اگر سوییچ Internal باشد با خودش و Host ارتباط دارند. میخواهیم ببینیم که چطور با Host ارتباط دارند.

4

یک hyperV داریم که یک کارت شبکه دارد و آن را به یک سوییچ فیزیکی (Cisco) متصل کرده است. و یک Internal Switch داریم که یک ست VM را به آن وصل کرده ایم. بدین ترتیب این VM ها باید با خودشان و همچنین Host ارتباط داشته باشند.  اتفاقی که در Host می افتد این است که به محض اینکه یک Internal Switch درست میکنید، یک V-NIC خود به خود روی Host ایجاد میشود. این V-NIC به V-switch وصل میشود. بدین ترتیب Host از طریق این V-NIC اش یک ارتباط Network ای میتواند با VM ها داشته باشد. همچنین به ازای ایجاد کردن هر Internal Switch یک V-NIC هم ساخته میشود که البته این V-NIC شما را فقط به سوییچ مربوطه خود متصل میکند.

برای Private switch دیگر این اتفاق ها نمیوفتد و با ساخت Private switch دیگر V-nic ای ساخته نمیشود زیرا Private switch به هیچ کارت شبکه ی فیزیکی ایی جهت uplink نیاز ندارد.

ابتدا کارت شبکه های Host را به صورت زیر نام گذاری میکنیم تا بدانید که هردو فیزیکی هستند:

5

برای ایجاد کردن سوییچ به صورت زیر عمل میکنیم:

 ایجاد سوییچ مجازی

حال به آموزش سویچ مجازی در Hyper-V می‌پردازیم.

روی Host کلیک راست میکنیم و روی گزینه مشخص شده کلیک میکنیم:

6

در پنجره ی باز شده باید مشخص کنیم که چه سوییچی میخواهیم بسازیم:

7

برای مثال ابتدا یک Private میسازیم. Private را انتخاب کرده و روی Create Virtual Machine کلیک میکنیم.

در پنجره ی باز شده اسم سوییچ را ابتدا میدهیم و اگر هم بخواهیم توضیحاتی را برای آن مینویسیم و ok میکنیم. با این کار یک v-switch از جنس Private ساخته میشود. همانطور که مشاهده خواهید کرد در ncpa.cpl هیچ کارت شبکه ی مجازی جدیدی ساخته نشده است.

بخش Vlan ID هم در آینده نزدیک یاد خواهیم گرفت اما به طور کلی در Private Switch قابل انتخاب شدن نخواهد بود زیرا همچین concept ای در Private switch وجود ندارد.

8

9

حالا که این سوییچ ساخته شد میتوانیم Virtual machine مان را به این سوییچ وصل کنیم:

ابتدا روی VM کلیک راست میکنیم و Setting را میزنیم.

10

با این کار انگار که درب کیس را باز کردیم. همانطور که مشاهده میکنید در بخش کارت شبکه هنوز به جایی وصل نیست:

از منوی انتخابی سوییچی که میخواهیم به آن وصل شود را انتخاب میکنیم و OK میکنیم:

11

12

با این کار Virtual switch به virtual machine وصل میشود.

حال دوباره یک V-Switch میسازیم. با این تفاوت که این بار Internal را انتخاب میکنیم.

13

همانطور که مشاهده میکنید گزینه ی VLAN هم در این قسمت فعال شده است که بعدا آن را توضیح خواهیم داد.

14

سپس در انتها ok میکنیم و تمام. حالا که یک Internal switch درست کردیم باید یک کارت شبکه مجازی هم برایمان ساخته شده باشد و آنرا در ncpa.cpl هاست ببینیم. همانطور که مشاهده میکنید این اتفاق افتاده است و داخل پرانتز هم نوشته شده که به یک internal switch متصل شده است.

15

اگر هم به Settings VM برویم در بخش کارت شبکه های آن مشاهده میکنیم که این سوییچ جدید نیز اضافه شده است:

16

حالا این بار یک سوییچ External میسازیم:

17-1

اسم این سوییچ را LAN میگذاریم؛ این به معنی این است که هر VM ای که به این سوییچ وصل شده انگار به LAN متصل شده است.

سوال: چه دلیلی دارد که در یک Hyper-V بیشتر از یک External Switch تعریف کنیم؟

اگر یک External Switch داشته باشیم هر نوع ارتباط بیرونی ای را میتوانیم داشته باشیم، اما برای اینکه دوتا Segment مجزای Network داشته باشیم باید دوتا External switch داشته باشیم. اینکار را با VLAN هم میتوانیم انجام دهیم اما یک بدی دارد.

تصور کنید یک Hyper V داریم که روی آن 80  VM وجود دارد. تمام این 80  VM قرار است از طریق یک Ex switch که با یک Uplink وصل است به شبکه ی فیزیکی ما وصل شوند. طبیعی است که تمام ترافیک 80 تا VM از طریق uplink سوییچ External بیرون میرود که یک کارت شبکه 1000 هم هست. بدین شکل ممکن است که پهنای باند آن پر شود و اگر این اتفاق بیوفتد ارتباطات شبکه ای VM ها کند میشود و پکت های آن ها Drop خواهد شد.  کاری که در این شرایط میکنیم این است که یک External switch دیگر اضافه میکنیم و این EX SW را از طریق یک V NIC دوم به سوییچ فیزیکی متصل میکنیم. سپس بخشی از VM ها را به این سوییچ وصل میکنیم. بدین ترتیب یک سری VM ها ترافیکشان از طریق یک Uplink بیرون میرود و یک سری هم از طریق یک سوییچ و یک uplink دیگر. باز هم باید به این نکته توجه داشته باشید که یک سوییچ External یک پورت Uplink بیشتر نمیدهد.

17

تا اینجا یک دلیل برای داشتن بیش از یک External Switch توضیح دادیم. اما دلیل بعدی به صورت زیر است:

تصور کنید در این حالت یک Hyper-V داریم که به یک DSL وصل است و DSL به اینترنت متصل است. این Hyper-V یک کارت شبکه ی دیگر دارد که به LAN وصل است. از طرفی ما یک VM داریم که Kerio است و قرار است این Kerio (یا یک Firewall یا ICS Server یا TMG و .. هرچیزی که NAT میکند) ما را به اینترنت وصل کند. این سرویس ها معمولا باید حداقل دو کارت شبکه داشته باشند. یک کارت شبکه که به LAN وصل باشد و یک کارت شبکه هم که به اینترنت وصل باشد. حالا ما در Hyper-V دو سوییچ درست کردیم که اسم یکی را Internet گذاشتیم و اسم دیگری را LAN گذاشتیم. برای VM ئه Kerio دو کارت شبکه گذاشتیم که یکی را به سوییچ Internet وصل کردیم و یکی را به LAN. حالا کلاینت ها از طریق سوییچ LAN به Kerio وصل میشوند و Kerio هم از طریق سوییچ Internet ، نت را برقرار میکند. بنابراین در اینجا هم دوتا سوییچ External نیاز داریم.

در نتیجه با توجه به تمامی مطالب گفته شده اسم کارت شبکه ها را طوری میدهیم که قابل فهم باشد. اگر در تصویر زیر دقت کنید از ما سوال میپرسد که کدام کارت شبکه را به عنوان Uplink به این سوییچ میدهیم؟ که در اینجا فقط یک کارت شبکه داریم.

18

یک نکته مهم این است که وقتی که یک کارت شبکه فیزیکی در Hyper-v ، Uplink یک سوییچ (Virtual Switch) میشود از آن زمان به بعد مالکیتش برای Hyper-V است و خود ویندوز نمیتواند از آن استفاده کند. حالا مشکل چیست؟ اگر خود Host کلا یک کارت شبکه داشته باشد دیگه از آن به بعد کارت شبکه ای ندارد و VM ها نمی­توانند با خود Host ارتباط برقرار کنند. به بیانی دیگر تمامی ارتباطات Network ای Host ازبین میرود. جالب توجه است که اگر Remote Desktop ای وصل هستید و  آن یک کارت شبکه Uplink شود ارتباط Network ای قطع خواهد شد. همانطور که در تصویر زیر مشاهده میکنید روی تنها کارت شبکه Host کلیک راست میکنیم و Properties میگیریم و می­بینید که تیک تمام پروتکل ها به جز پروتکل مربوط به Hyper-V برداشته شده است و این یعنی که ارتباطات Network با Host قطع شده است و این بدی و Challenge ای هست که برای ما به وجود آمده است.

19

حالا اگر یک کارت شبکه داشته باشیم میتوانیم که هم به عنوان Uplink استفاده کنیم و هم خود Host بتواند ارتباطات Networking اش را ازدست ندهد؟ بله یک راه وجود دارد. بار دیگر به تصویر زیر توجه کنید. همانطور که قبلا گفته شد در VM مربوطه به صورت زیر مشخص میکنیم که کدام کارت شبکه به کدام سوییچ وصل باشد. حالا یک سوالی در زیر آن پرسیده شده است که میگوید اجازه دهید یک OS به صورت اشتراکی از این کارت شبکه استفاده کند. اتفاقی که می افتد به این صورت است کارت شبکه ی فیزیکی به زیر مدیریت Hyper-V میرود و Host اختیار آن را دیگر نخواهد داشت. اگر این تیک را بزنیم یک Virtual NIC روی Host ساخته میشود و این V-NIC به سوییچ External وصل میشود و هرکسی هم که به سوییچ External وصل باشد با دنیای واقعی ارتباط دارد. سپس Host تمامی ترافیک هایش را از طریق این V-NIC به Virtual switch میدهد و از طریق Uplink آن با دنیای فیزیکی ارتباط برقرار میکند.

20

بعد از این کار مشاهده میکنید که یک کارت شبکه دیگر اضافه شده است:

21

قابل توجه است که کارت شبکه اصلی یعنی Physical1 دیگر IP ندارد زیرا مدیریت آن تحت HV است و IP ی آن روی vEthernet افتاده است. در حال حاضر Host میتواند از طریق این سوییچ با بیرون ارتباط داشته باشد و همچنین تمامی VM هایی که به این سوییچ وصل هستند. یعنی این Host به صورتی به بیرون دسترسی دارد که VM ها دسترسی دارند. این برای زمانی است که شما فقط یک کارت شبکه دارید. توجه داشته باشید که این Design پیشنهاد نمیشود چون تمامی ترافیک هایی که با خود Host میخواهید داشته باشید از طریق همان یک uplink وارد میشود و بیرون میرود. یعنی از طریق Uplink ای وارد و خارج میشود که VM ها ترافیکشان را میگیرند و بیرون میفرستند و این میتواند برای VM ها Overhead ایجاد کند و پهنای باند کم بیاورد. پیشنهاد میشود به جای این روش از Design زیر استفاده شود.

در آموزش سویچ مجازی در Hyper-V پیشنهاد میشود که Host باید حداقل دوتا کارت شبکه داشته باشد. برای مثال یکی را میگذاریم برای Management و یکی را هم میگذاریم برای اینکه فقط یک ارتباط لایه 2 ایی uplink برقرار کند برای وصل شدن به یک سوییچ دیگر و تیک گفته  شده ی بالا هم برای آن نمیزنیم که VM ها بتوانند با دنیای بیرون ارتباط برقرار کنند. کارت شبکه ی دیگر که Management است فقط برای ارتباط برقرار کردن با خود Host است که چه بسا اصلا در یک LAN مجزا است (یا در یک VLAN مجزا) که فقط در آن ادمین نشسته است.

به پایان آموزش سویچ مجازی در Hyper-V رسیدیم امیواریم تمام مطالب را به درستی اجرا کنید.

 نویسنده:مهندس محمد آجورلو

admin

    دیدگاه‌ها