در این مقاله یاد میگیریم چگونه یک شبکه 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 ایجاد کنید:

create new virtual switch in hyper-v virtual switch manager.

create new virtual switch in hyper-v virtual switch manager.

در تصویر بالا دقت کنید نوع شبکه حتما 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 می شویم.

change virtual switch for a vm in hyper-v

اکنون ماشین مجازی را به شبکه 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

Canonical Netplan

How to create a NAT Switch in HYPER-V | Askme4Tech (تصویر پست)