У тестовому стенді на окремо-стоїть Hyper-V сервері потрібно було створити кілька внутрішніх IP підмереж і налаштувати маршрутизацію між ними. За замовчуванням Hyper-V НЕ маршрутизує трафік між підмережами на віртуальних комутаторах. Тому при вирішенні завдання в-лоб зазвичай створюють окрему ВМ з двома мережевими інтерфейсами на різних комутаторах Hyper-V (в різних подсетях) і налаштовують маршрутизацію на між інтерфесом засобами гостьовий ОС (це може бути як ВМ з Windows Server з маршрутизацією роллю RRAS або Linux хост з потрібною таблицею маршрутів). Цей спосіб незручний тим, що необхідно тримати окрему ВМ тільки для маршрутизації, і при додаванні нової IP підмережі доводиться додавати новий серевой інтерфейс і перенастроювати маршрутизацію на шлюзі. Але мені вдалося розібратися, як налаштувати Hyper-V хост, щоб він сам виконував роль маршрутизатора між різними віртуальними комутаторами / IP підмережами.

Отже, у мене на хості Hyper-V створені 2 віртуальні машини в різних подсетях з наступними IP адресами:

  • Msk-dc01: 192.168.13.11/24 (Шлюз 192.168.13.1)
  • Spb-dc02: 192.168.113.11/24 (Шлюз 192.168.113.1)

Щоб дозволити маршрутизацію в Windows Server потрібно включити спеціальний параметр реєстру IPEnableRouter (він розбирався в статті про налаштування форвардинга портів в Windows).

На хості Hyper-V відкрийте консоль PowerShell з правами адміністратора і внесіть зміну в реєстр і перезавантажте хост:

Set-ItemProperty -Path HKLM:systemCurrentControlSetservicesTcpipParameters -Name IpEnableRouter -Value 1
Restart-computer

IpEnableRouter включити маршрутизацію в windows через реєстр

Наступним етап – створити два нових віртуальних комутатора Hyper-V типу Internal. Можна створити комутатори з консолі Hyper-V Manager, а можна з PowerShell:

New-VMSwitch -Name vSwitchIntMSK -SwitchType Internal
New-VMSwitch -Name vSwitchIntSPB -SwitchType Internal

створити окремі hyper-v virtual switches для різних підмереж

Тепер на хості Hyper-V перейдіть в Control Panel Network and Internet Network Connections. Перед вами з’явиться список мережевих адаптерів хоста. Серед них повинні з’явиться є два нових віртуальних адаптера (Hyper-V Virtual Ethernet Adapter) для створених вами віртуальних комутаторів. Призначте їм IP адреси за допомогою PowerShell або через властивості мережевих адаптерів:

New-NetIPAddress -InterfaceAlias ‘vEthernet (vSwitchIntMSK)’ -IPAddress 192.168.13.1 -PrefixLength 24
New-NetIPAddress -InterfaceAlias ‘vEthernet (vSwitchIntSPB)’ -IPAddress 192.168.113.1 -PrefixLength
24

Як ви бачите, ми призначили цих інтерфейсів IP адреси шлюзів за замовчуванням в кожній підмережі.

призначити ip адреси шлюзів hyper-v комутаторів

Підключіть кожну ВМ до свого віртуального комутатора (якщо ви ще не зробили це):

Connect-VMNetworkAdapter -VMName Msk-dc01 -SwitchName vSwitchIntMSK
Connect-VMNetworkAdapter -VMName spb-dc03 -SwitchName vSwitchIntspb

Connect-VMNetworkAdapter підключити ВМ до комутатора Hyper-v

Тепер ваші ВМ будуть пересилати трафік через ці інтерфейси віртуальних комутаторів.

Перевірте, що тепер віртуальні машин Hyper-V з різних сегментів бачать один одного. Перевірте маршрутизацію за допомогою tracert і доступність TCP портів за допомогою PowerShell командлет Test-NetConnection:

Test-NetConnection 192.168.13.11 -port 445
tracert 192.168.13.11

перевірка маршрутизації між декількома IP підмережами в hyper-v

Як ви бачите, тепер хости відповідають на ICMP ping і TCP. Майте на увазі, що налаштування Windows Defender Firewall в ваших ВМ можуть блокувати трафік. Переконайтеся, що ви дозволили ICMP трафік в Windows Firewall і додали інші дозволяють правила брандмауера.

Отже, ми налаштували маршрутизацію між декількома віртуальними подсетями на хості Hyper-V. Ця методика працює як для Hyper-V на Windows 10, так і на Windows Server 2016/2019.

Leave a Reply

Your email address will not be published. Required fields are marked *