Создание сетей NAT возможно в Windows Server 2016, Hyper-V Server 2016 и более поздних версиях, а также Windows 10. На одном гипервизоре может быть создана только одна сеть NAT. Также обратите внимание, что в отличие от настольных средств виртуализации (VMWare Workstation или VirtualBox), служба NAT в Hyper-V не предоставляет дополнительных сетевых служб (DHCP или DNS), поэтому сетевые настройки виртуальным машинам необходимо назначить самостоятельно.
Также настройка NAT производится исключительно в консоли PowerShell и недоступна в графическом интерфейсе.
Создаем новый виртуальный коммутатор с типом сети Внутренняя:
New-VMSwitch -SwitchName "VM_NAT" -SwitchType Internal
Смотрим ifIndex только что созданного коммутатора:
Get-NetAdapter
Задаем адресацию:
New-NetIPAddress -IPAddress 192.168.10.1 -PrefixLength 24 -InterfaceIndex 21
Пояснения:
Создаем Nat:
New-NetNat -Name "vNAT" -InternalIPInterfaceAddressPrefix 192.168.10.0/24
Проверим что NAT создался:
Get-NetNat
Теперь для вновь создаваемых виртуальных машин нужно указать сеть VM_NAT и при настройке сети прописать адрес шлюза 192.168.10.1
Удалить можно командой
Remove-NetNat
После этого потребуется удалить назначенный шлюзу IP-адрес:
Remove-NetIPAddress -IPAddress 192.168.10.1 -InterfaceIndex 21
Это может потребоваться, если вы захотите изменить адресное пространство NAT. В этом случае удаляете старую сеть NAT и создаете новую, с требуемыми параметрами. Виртуальный коммутатор и виртуальный сетевой интерфейс при этом остаются прежними.
Если вы полностью хотите полностью удалить NAT, то дополнительно удалите виртуальный коммутатор, это можно сделать через графический интерфейс, либо командой, указав в ней имя коммутатора:
Remove-VMSwitch -SwitchName «VM_NAT»
Создаем проброс порта 22 в виртуальную машину:
Add-NetNatStaticMapping -NatName "vNAT" -Protocol TCP -ExternalIPAddress 0.0.0.0/24 -ExternalPort 22 -InternalIPAddress 192.168.10.1 -InternalPort 22
Посмотреть список:
Get-NetNatStaticMapping
Удалить конкретное правило по ID:
Remove-NetNatStaticMapping -StaticMappingID <ID>
Удалить все правила:
Remove-NetNatStaticMapping
Установку компонент интеграции Hyper-V можно выполнить из официальных репозиториев Debian. После установки желательно перезагрузить гостевую ОС, чтобы убедиться в успешном автоматическом запуске служб:
# apt-get install hyperv-daemons # reboot
Проверим состояние служб после перезагрузки:
# systemctl status hyperv-daemons.hv-*