در این مقاله یاد میگیریم چگونه یک شبکه NAT و Internal Virtual Switch در Hyper-V ایجاد کنیم. همچنین اتصال ماشین مجازی به این شبکه و تنظیم Static IP بر روی آن را بررسی می کنیم. در این مقاله فرض می کنیم مخاطب با مفاهیم شبکه آشنایی داشته باشد.
شبکه NAT
با استفاده از NAT ، ماشین های مجازی امکان دسترسی به منابع شبکه را از طریق آی پی هاست و یک پورت خواهند داشت. یکی از کاربرد های NAT در اینترنت، کاهش استفاده از IPv4 هست. همچنین گاهی لازم است تعدادی VM را به صورت ایزوله به همراه دسترسی به اینترنت داشته باشیم، در این مورد هم NAT به ما کمک می کند.
برای ایجاد یک شبکه NAT ابتدا نیاز به یک Internal Virtual Switch داریم. سپس Gateway و Networking را تنظیم می کنیم و در آخر، ماشین های مجازی را به این شبکه متصل می کنیم.
ساخت NAT Virtual Network
در Hyper-V Manager بر روی سرور کلیک راست کنید و پنجره Virtual Switch Manager رو باز کنید. سپس طبق تصاویر زیر، یک Virtual Switch از نوع Internal ایجاد کنید:
در تصویر بالا دقت کنید نوع شبکه حتما Internal انتخاب شود.
بجای استفاده از Hyper-V Virtual Switch Manger میتوانیم از دستورات PowerShell هم استفاده کنیم که سریعتر و راحت تر هم هستند. البته برای اجرای این دستورات باید PowerShell را به صورت Run as Administrator اجرا کنید:
New-VMSwitch -SwitchName "SwitchName" -SwitchType Internal
یا این دستور امکان ایجاد Switch از نوع Internal و نام مشخص شده در دستور وجود دارد. برای اطمینان از ایجاد موفق Switch میتوانیم از دستور زیر استفاده کنیم:
Get-NetAdapter
در خروجی این دستور جدولی وجود دارد که میتوانید نام Switch ایجاد شده را در آن پیدا کنید. ستون ifIndex مقدار متناظر با Switch ایجاد شده را بخاطر بسپارید که در آینده ای نزدیک به آن نیاز داری! در این مثال و در سیستم من این مقدار ۱۲۳ هست!
تنظیم NAT Gateway
در این مرحله باید Gateway شبکه NAT را تنظیم کنیم. از این مرحله تمامی دستورات لازم در PowerShell اجرا خواهند شد. پس حتما PowerShell را به صورت Run as Administrator اجرا کنید. دستور کلی برای این کار به شکل زیر است :
New-NetIPAddress -IPAddress <NAT Gateway IP> -PrefixLength <NAT Subnet Prefix Length> -InterfaceIndex <ifIndex>
میتوانید مقادیر دلخواهی در این دستور وارد کنید. برای مثال من از این مقادیر استفاده می کنم:
New-NetIPAddress -IPAddress 192.168.5.1 -PrefixLength 24 -InterfaceIndex 123
در این دستور آی پی ۱۹۲.۱۶۸.۵.۱ به عنوان Gateway انتخاب شده. مقدار ۲۴ هم معادل ۲۵۵.۲۵۵.۲۵۵.۰ و Subnet این شبکه هست. مقدار ۱۲۳ هم همان ifIndex مرحله قبل هست.
تنظیم NAT Network
دستور کلی برای تنظیم شبکه NAT به شکل زیر است:
New-NetNat -Name <NATOutsideName> -InternalIPInterfaceAddressPrefix <NAT subnet prefix>
در مثال ما مقادیر این دستور به این شکل هستند:
New-NetNat -Name MyNATnetwork -InternalIPInterfaceAddressPrefix 192.168.5.0/24
مقدار ۱۹۲.۱۶۸.۵.۰/۲۴ شبکه ما رو مشخص می کنه و نام MyNATnetwork هم برای مواردی مثل حذف شبکه NAT کاربرد داره!
در این قسمت شبکه NAT ما آماده و قابل استفاده هست!
اتصال ماشین های مجازی به شبکه NAT
برای این کار در Hyper-V Manager روی ماشین مجازی راست کلیک می کنیم و وارد پنجره Settings می شویم.
اکنون ماشین مجازی را به شبکه NAT متصل کرده ایم.
تخصیص آی پی ثابت به ماشین مجازی
برای این کار ماشین مجازی را روشن و به سیستم عامل لاگین کنید. در این مقاله از سیستم عامل Ubuntu 22.10 استفاده می کنیم. فایل تنظیمات در آدرس /etc/netplan/ قرار دارد:
ls /etc/netplan/
در مثال ما این فایل با نام ۰۰-installer-config.yaml وجود دارد. از ادیتور Nano برای ویرایش فایل استفاده می کنیم:
sudo nano /etc/netplan/00-installer-config.yaml
سپس مقادیر زیر رو جایگزین مقادیر قبلی می کنیم (مقادیر قبلی و جدید همزمان در کد زیر قابل مشاهده هستند):
# This is the network config written by 'subiquity' # OLD Values #network: # ethernets: # eth0: # dhcp4: true # version: 2 ######################################################### # New Values network: version: 2 renderer: networkd ethernets: eth0: dhcp4: no addresses: [192.168.5.4/24] gateway4: 192.168.5.1 nameservers: addresses: [1.1.1.1,8.8.8.8]
در اینجا آی پی ۱۹۲.۱۶۸.۵.۴ رو به این ماشین اختصاص دادیم. همچنین ۱۹۲.۱۶۸.۵.۱ که به عنوان Gateway در مراحل قبل مشخص کرده بودیم را به این ماشین معرفی می کنیم. برای DNS هم از ۱.۱.۱.۱ و ۸.۸.۸.۸ استفاده کردیم. پس از خروج از ادیتور با دستور زیر تغییرات رو اعمال کنید:
sudo netplan apply
سپس با استفاده از دستور ifconfig میتوانیم صحت اختصاص آی پی را بررسی کنیم. همچنین می توانیم با ping کردن سایر ماشین های موجود در این شبکه NAT از اتصال صحیح شبکه مطمئن شویم.
منابع :
Set up a NAT network | Microsoft Learn
How to create a NAT Switch in HYPER-V | Askme4Tech (تصویر پست)